
chapi.ast.antlr.CSharpParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of chapi-ast-csharp Show documentation
Show all versions of chapi-ast-csharp Show documentation
Chapi is A common language meta information convertor, convert different languages to same meta-data model
// Generated from CSharpParser.g4 by ANTLR 4.9.3
package chapi.ast.antlr;
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 CSharpParserBase {
static { RuntimeMetaData.checkVersion("4.9.3", 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, EMPTY_DELIMITED_DOC_COMMENT=3,
DELIMITED_DOC_COMMENT=4, SINGLE_LINE_COMMENT=5, DELIMITED_COMMENT=6, WHITESPACES=7,
SHARP=8, ABSTRACT=9, ADD=10, ALIAS=11, ARGLIST=12, AS=13, ASCENDING=14,
ASYNC=15, AWAIT=16, BASE=17, BOOL=18, BREAK=19, BY=20, BYTE=21, CASE=22,
CATCH=23, CHAR=24, CHECKED=25, CLASS=26, CONST=27, CONTINUE=28, DECIMAL=29,
DEFAULT=30, DELEGATE=31, DESCENDING=32, DO=33, DOUBLE=34, DYNAMIC=35,
ELSE=36, ENUM=37, EQUALS=38, EVENT=39, EXPLICIT=40, EXTERN=41, FALSE=42,
FINALLY=43, FIXED=44, FLOAT=45, FOR=46, FOREACH=47, FROM=48, GET=49, GOTO=50,
GROUP=51, IF=52, IMPLICIT=53, IN=54, INT=55, INTERFACE=56, INTERNAL=57,
INTO=58, IS=59, JOIN=60, LET=61, LOCK=62, LONG=63, NAMEOF=64, NAMESPACE=65,
NEW=66, NULL_=67, OBJECT=68, ON=69, OPERATOR=70, ORDERBY=71, OUT=72, OVERRIDE=73,
PARAMS=74, PARTIAL=75, PRIVATE=76, PROTECTED=77, PUBLIC=78, READONLY=79,
REF=80, REMOVE=81, RETURN=82, SBYTE=83, SEALED=84, SELECT=85, SET=86,
SHORT=87, SIZEOF=88, STACKALLOC=89, STATIC=90, STRING=91, STRUCT=92, SWITCH=93,
THIS=94, THROW=95, TRUE=96, TRY=97, TYPEOF=98, UINT=99, ULONG=100, UNCHECKED=101,
UNMANAGED=102, UNSAFE=103, USHORT=104, USING=105, VAR=106, VIRTUAL=107,
VOID=108, VOLATILE=109, WHEN=110, WHERE=111, WHILE=112, YIELD=113, IDENTIFIER=114,
LITERAL_ACCESS=115, INTEGER_LITERAL=116, HEX_INTEGER_LITERAL=117, BIN_INTEGER_LITERAL=118,
REAL_LITERAL=119, CHARACTER_LITERAL=120, REGULAR_STRING=121, VERBATIUM_STRING=122,
INTERPOLATED_REGULAR_STRING_START=123, INTERPOLATED_VERBATIUM_STRING_START=124,
OPEN_BRACE=125, CLOSE_BRACE=126, OPEN_BRACKET=127, CLOSE_BRACKET=128,
OPEN_PARENS=129, CLOSE_PARENS=130, DOT=131, COMMA=132, COLON=133, SEMICOLON=134,
PLUS=135, MINUS=136, STAR=137, DIV=138, PERCENT=139, AMP=140, BITWISE_OR=141,
CARET=142, BANG=143, TILDE=144, ASSIGNMENT=145, LT=146, GT=147, INTERR=148,
DOUBLE_COLON=149, OP_COALESCING=150, OP_INC=151, OP_DEC=152, OP_AND=153,
OP_OR=154, OP_PTR=155, OP_EQ=156, OP_NE=157, OP_LE=158, OP_GE=159, OP_ADD_ASSIGNMENT=160,
OP_SUB_ASSIGNMENT=161, OP_MULT_ASSIGNMENT=162, OP_DIV_ASSIGNMENT=163,
OP_MOD_ASSIGNMENT=164, OP_AND_ASSIGNMENT=165, OP_OR_ASSIGNMENT=166, OP_XOR_ASSIGNMENT=167,
OP_LEFT_SHIFT=168, OP_LEFT_SHIFT_ASSIGNMENT=169, OP_COALESCING_ASSIGNMENT=170,
OP_RANGE=171, DOUBLE_CURLY_INSIDE=172, OPEN_BRACE_INSIDE=173, REGULAR_CHAR_INSIDE=174,
VERBATIUM_DOUBLE_QUOTE_INSIDE=175, DOUBLE_QUOTE_INSIDE=176, REGULAR_STRING_INSIDE=177,
VERBATIUM_INSIDE_STRING=178, CLOSE_BRACE_INSIDE=179, FORMAT_STRING=180,
DIRECTIVE_WHITESPACES=181, DIGITS=182, DEFINE=183, UNDEF=184, ELIF=185,
ENDIF=186, LINE=187, ERROR=188, WARNING=189, REGION=190, ENDREGION=191,
PRAGMA=192, NULLABLE=193, DIRECTIVE_HIDDEN=194, CONDITIONAL_SYMBOL=195,
DIRECTIVE_NEW_LINE=196, TEXT=197, DOUBLE_CURLY_CLOSE_INSIDE=198;
public static final int
RULE_compilation_unit = 0, RULE_namespace_or_type_name = 1, RULE_type_ = 2,
RULE_base_type = 3, RULE_tuple_type = 4, RULE_tuple_element = 5, RULE_simple_type = 6,
RULE_numeric_type = 7, RULE_integral_type = 8, RULE_floating_point_type = 9,
RULE_class_type = 10, RULE_type_argument_list = 11, RULE_argument_list = 12,
RULE_argument = 13, RULE_expression = 14, RULE_non_assignment_expression = 15,
RULE_assignment = 16, RULE_assignment_operator = 17, RULE_conditional_expression = 18,
RULE_null_coalescing_expression = 19, RULE_conditional_or_expression = 20,
RULE_conditional_and_expression = 21, RULE_inclusive_or_expression = 22,
RULE_exclusive_or_expression = 23, RULE_and_expression = 24, RULE_equality_expression = 25,
RULE_relational_expression = 26, RULE_shift_expression = 27, RULE_additive_expression = 28,
RULE_multiplicative_expression = 29, RULE_switch_expression = 30, RULE_switch_expression_arms = 31,
RULE_switch_expression_arm = 32, RULE_range_expression = 33, RULE_unary_expression = 34,
RULE_primary_expression = 35, RULE_primary_expression_start = 36, RULE_throwable_expression = 37,
RULE_throw_expression = 38, RULE_member_access = 39, RULE_bracket_expression = 40,
RULE_indexer_argument = 41, RULE_predefined_type = 42, RULE_expression_list = 43,
RULE_object_or_collection_initializer = 44, RULE_object_initializer = 45,
RULE_member_initializer_list = 46, RULE_member_initializer = 47, RULE_initializer_value = 48,
RULE_collection_initializer = 49, RULE_element_initializer = 50, RULE_anonymous_object_initializer = 51,
RULE_member_declarator_list = 52, RULE_member_declarator = 53, RULE_unbound_type_name = 54,
RULE_generic_dimension_specifier = 55, RULE_isType = 56, RULE_isTypePatternArms = 57,
RULE_isTypePatternArm = 58, RULE_lambda_expression = 59, RULE_anonymous_function_signature = 60,
RULE_explicit_anonymous_function_parameter_list = 61, RULE_explicit_anonymous_function_parameter = 62,
RULE_implicit_anonymous_function_parameter_list = 63, RULE_anonymous_function_body = 64,
RULE_query_expression = 65, RULE_from_clause = 66, RULE_query_body = 67,
RULE_query_body_clause = 68, RULE_let_clause = 69, RULE_where_clause = 70,
RULE_combined_join_clause = 71, RULE_orderby_clause = 72, RULE_ordering = 73,
RULE_select_or_group_clause = 74, RULE_query_continuation = 75, RULE_statement = 76,
RULE_declarationStatement = 77, RULE_local_function_declaration = 78,
RULE_local_function_header = 79, RULE_local_function_modifiers = 80, RULE_local_function_body = 81,
RULE_labeled_Statement = 82, RULE_embedded_statement = 83, RULE_simple_embedded_statement = 84,
RULE_block = 85, RULE_local_variable_declaration = 86, RULE_local_variable_type = 87,
RULE_local_variable_declarator = 88, RULE_local_variable_initializer = 89,
RULE_local_constant_declaration = 90, RULE_if_body = 91, RULE_switch_section = 92,
RULE_switch_label = 93, RULE_case_guard = 94, RULE_statement_list = 95,
RULE_for_initializer = 96, RULE_for_iterator = 97, RULE_catch_clauses = 98,
RULE_specific_catch_clause = 99, RULE_general_catch_clause = 100, RULE_exception_filter = 101,
RULE_finally_clause = 102, RULE_resource_acquisition = 103, RULE_namespace_declaration = 104,
RULE_qualified_identifier = 105, RULE_namespace_body = 106, RULE_extern_alias_directives = 107,
RULE_extern_alias_directive = 108, RULE_using_directives = 109, RULE_using_directive = 110,
RULE_namespace_member_declarations = 111, RULE_namespace_member_declaration = 112,
RULE_type_declaration = 113, RULE_qualified_alias_member = 114, RULE_type_parameter_list = 115,
RULE_type_parameter = 116, RULE_class_base = 117, RULE_interface_type_list = 118,
RULE_type_parameter_constraints_clauses = 119, RULE_type_parameter_constraints_clause = 120,
RULE_type_parameter_constraints = 121, RULE_primary_constraint = 122,
RULE_secondary_constraints = 123, RULE_constructor_constraint = 124, RULE_class_body = 125,
RULE_class_member_declarations = 126, RULE_class_member_declaration = 127,
RULE_all_member_modifiers = 128, RULE_all_member_modifier = 129, RULE_common_member_declaration = 130,
RULE_typed_member_declaration = 131, RULE_constant_declarators = 132,
RULE_constant_declarator = 133, RULE_variable_declarators = 134, RULE_variable_declarator = 135,
RULE_variable_initializer = 136, RULE_return_type = 137, RULE_member_name = 138,
RULE_method_body = 139, RULE_formal_parameter_list = 140, RULE_fixed_parameters = 141,
RULE_fixed_parameter = 142, RULE_parameter_modifier = 143, RULE_parameter_array = 144,
RULE_accessor_declarations = 145, RULE_get_accessor_declaration = 146,
RULE_set_accessor_declaration = 147, RULE_accessor_modifier = 148, RULE_accessor_body = 149,
RULE_event_accessor_declarations = 150, RULE_add_accessor_declaration = 151,
RULE_remove_accessor_declaration = 152, RULE_overloadable_operator = 153,
RULE_conversion_operator_declarator = 154, RULE_constructor_initializer = 155,
RULE_body = 156, RULE_struct_interfaces = 157, RULE_struct_body = 158,
RULE_struct_member_declaration = 159, RULE_array_type = 160, RULE_rank_specifier = 161,
RULE_array_initializer = 162, RULE_variant_type_parameter_list = 163,
RULE_variant_type_parameter = 164, RULE_variance_annotation = 165, RULE_interface_base = 166,
RULE_interface_body = 167, RULE_interface_member_declaration = 168, RULE_interface_accessors = 169,
RULE_enum_base = 170, RULE_enum_body = 171, RULE_enum_member_declaration = 172,
RULE_global_attribute_section = 173, RULE_global_attribute_target = 174,
RULE_attributes = 175, RULE_attribute_section = 176, RULE_attribute_target = 177,
RULE_attribute_list = 178, RULE_attribute = 179, RULE_attribute_argument = 180,
RULE_pointer_type = 181, RULE_fixed_pointer_declarators = 182, RULE_fixed_pointer_declarator = 183,
RULE_fixed_pointer_initializer = 184, RULE_fixed_size_buffer_declarator = 185,
RULE_stackalloc_initializer = 186, RULE_right_arrow = 187, RULE_right_shift = 188,
RULE_right_shift_assignment = 189, RULE_literal = 190, RULE_boolean_literal = 191,
RULE_string_literal = 192, RULE_interpolated_regular_string = 193, RULE_interpolated_verbatium_string = 194,
RULE_interpolated_regular_string_part = 195, RULE_interpolated_verbatium_string_part = 196,
RULE_interpolated_string_expression = 197, RULE_keyword = 198, RULE_class_definition = 199,
RULE_struct_definition = 200, RULE_interface_definition = 201, RULE_enum_definition = 202,
RULE_delegate_definition = 203, RULE_event_declaration = 204, RULE_field_declaration = 205,
RULE_property_declaration = 206, RULE_constant_declaration = 207, RULE_indexer_declaration = 208,
RULE_destructor_definition = 209, RULE_constructor_declaration = 210,
RULE_method_declaration = 211, RULE_method_member_name = 212, RULE_operator_declaration = 213,
RULE_arg_declaration = 214, RULE_method_invocation = 215, RULE_object_creation_expression = 216,
RULE_identifier = 217;
private static String[] makeRuleNames() {
return new String[] {
"compilation_unit", "namespace_or_type_name", "type_", "base_type", "tuple_type",
"tuple_element", "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", "switch_expression", "switch_expression_arms",
"switch_expression_arm", "range_expression", "unary_expression", "primary_expression",
"primary_expression_start", "throwable_expression", "throw_expression",
"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", "isTypePatternArms", "isTypePatternArm", "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", "declarationStatement", "local_function_declaration", "local_function_header",
"local_function_modifiers", "local_function_body", "labeled_Statement",
"embedded_statement", "simple_embedded_statement", "block", "local_variable_declaration",
"local_variable_type", "local_variable_declarator", "local_variable_initializer",
"local_constant_declaration", "if_body", "switch_section", "switch_label",
"case_guard", "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",
"stackalloc_initializer", "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"
};
}
public static final String[] ruleNames = makeRuleNames();
private static String[] makeLiteralNames() {
return new String[] {
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'", "'unmanaged'", "'unsafe'", "'ushort'", "'using'", "'var'",
"'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, null, null, null, "'define'",
"'undef'", "'elif'", "'endif'", "'line'", null, null, null, null, null,
null, "'hidden'", null, null, null, "'}}'"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "BYTE_ORDER_MARK", "SINGLE_LINE_DOC_COMMENT", "EMPTY_DELIMITED_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", "UNMANAGED", "UNSAFE", "USHORT",
"USING", "VAR", "VIRTUAL", "VOID", "VOLATILE", "WHEN", "WHERE", "WHILE",
"YIELD", "IDENTIFIER", "LITERAL_ACCESS", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL",
"BIN_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", "OP_COALESCING_ASSIGNMENT",
"OP_RANGE", "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", "DIRECTIVE_WHITESPACES",
"DIGITS", "DEFINE", "UNDEF", "ELIF", "ENDIF", "LINE", "ERROR", "WARNING",
"REGION", "ENDREGION", "PRAGMA", "NULLABLE", "DIRECTIVE_HIDDEN", "CONDITIONAL_SYMBOL",
"DIRECTIVE_NEW_LINE", "TEXT", "DOUBLE_CURLY_CLOSE_INSIDE"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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(437);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==BYTE_ORDER_MARK) {
{
setState(436);
match(BYTE_ORDER_MARK);
}
}
setState(440);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) {
case 1:
{
setState(439);
extern_alias_directives();
}
break;
}
setState(443);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==USING) {
{
setState(442);
using_directives();
}
}
setState(448);
_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(445);
global_attribute_section();
}
}
}
setState(450);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,3,_ctx);
}
setState(452);
_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 - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NAMESPACE - 65)) | (1L << (NEW - 65)) | (1L << (OVERRIDE - 65)) | (1L << (PARTIAL - 65)) | (1L << (PRIVATE - 65)) | (1L << (PROTECTED - 65)) | (1L << (PUBLIC - 65)) | (1L << (READONLY - 65)) | (1L << (REF - 65)) | (1L << (SEALED - 65)) | (1L << (STATIC - 65)) | (1L << (STRUCT - 65)) | (1L << (UNSAFE - 65)) | (1L << (VIRTUAL - 65)) | (1L << (VOLATILE - 65)) | (1L << (OPEN_BRACKET - 65)))) != 0)) {
{
setState(451);
namespace_member_declarations();
}
}
setState(454);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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(461);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) {
case 1:
{
setState(456);
identifier();
setState(458);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) {
case 1:
{
setState(457);
type_argument_list();
}
break;
}
}
break;
case 2:
{
setState(460);
qualified_alias_member();
}
break;
}
setState(470);
_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(463);
match(DOT);
setState(464);
identifier();
setState(466);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,7,_ctx) ) {
case 1:
{
setState(465);
type_argument_list();
}
break;
}
}
}
}
setState(472);
_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 Type_Context 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 Type_Context(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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitType_(this);
else return visitor.visitChildren(this);
}
}
public final Type_Context type_() throws RecognitionException {
Type_Context _localctx = new Type_Context(_ctx, getState());
enterRule(_localctx, 4, RULE_type_);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(473);
base_type();
setState(479);
_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(477);
_errHandler.sync(this);
switch (_input.LA(1)) {
case INTERR:
{
setState(474);
match(INTERR);
}
break;
case OPEN_BRACKET:
{
setState(475);
rank_specifier();
}
break;
case STAR:
{
setState(476);
match(STAR);
}
break;
default:
throw new NoViableAltException(this);
}
}
}
setState(481);
_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 Tuple_typeContext tuple_type() {
return getRuleContext(Tuple_typeContext.class,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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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(487);
_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(482);
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 UNMANAGED:
case VAR:
case WHEN:
case WHERE:
case YIELD:
case IDENTIFIER:
enterOuterAlt(_localctx, 2);
{
setState(483);
class_type();
}
break;
case VOID:
enterOuterAlt(_localctx, 3);
{
setState(484);
match(VOID);
setState(485);
match(STAR);
}
break;
case OPEN_PARENS:
enterOuterAlt(_localctx, 4);
{
setState(486);
tuple_type();
}
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 Tuple_typeContext extends ParserRuleContext {
public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); }
public List tuple_element() {
return getRuleContexts(Tuple_elementContext.class);
}
public Tuple_elementContext tuple_element(int i) {
return getRuleContext(Tuple_elementContext.class,i);
}
public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); }
public List COMMA() { return getTokens(CSharpParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(CSharpParser.COMMA, i);
}
public Tuple_typeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_tuple_type; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterTuple_type(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitTuple_type(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitTuple_type(this);
else return visitor.visitChildren(this);
}
}
public final Tuple_typeContext tuple_type() throws RecognitionException {
Tuple_typeContext _localctx = new Tuple_typeContext(_ctx, getState());
enterRule(_localctx, 8, RULE_tuple_type);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(489);
match(OPEN_PARENS);
setState(490);
tuple_element();
setState(493);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(491);
match(COMMA);
setState(492);
tuple_element();
}
}
setState(495);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==COMMA );
setState(497);
match(CLOSE_PARENS);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Tuple_elementContext extends ParserRuleContext {
public Type_Context type_() {
return getRuleContext(Type_Context.class,0);
}
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public Tuple_elementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_tuple_element; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterTuple_element(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitTuple_element(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitTuple_element(this);
else return visitor.visitChildren(this);
}
}
public final Tuple_elementContext tuple_element() throws RecognitionException {
Tuple_elementContext _localctx = new Tuple_elementContext(_ctx, getState());
enterRule(_localctx, 10, RULE_tuple_element);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(499);
type_();
setState(501);
_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))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMEOF - 64)) | (1L << (ON - 64)) | (1L << (ORDERBY - 64)) | (1L << (PARTIAL - 64)) | (1L << (REMOVE - 64)) | (1L << (SELECT - 64)) | (1L << (SET - 64)) | (1L << (UNMANAGED - 64)) | (1L << (VAR - 64)) | (1L << (WHEN - 64)) | (1L << (WHERE - 64)) | (1L << (YIELD - 64)) | (1L << (IDENTIFIER - 64)))) != 0)) {
{
setState(500);
identifier();
}
}
}
}
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 12, RULE_simple_type);
try {
setState(505);
_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(503);
numeric_type();
}
break;
case BOOL:
enterOuterAlt(_localctx, 2);
{
setState(504);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 14, RULE_numeric_type);
try {
setState(510);
_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(507);
integral_type();
}
break;
case DOUBLE:
case FLOAT:
enterOuterAlt(_localctx, 2);
{
setState(508);
floating_point_type();
}
break;
case DECIMAL:
enterOuterAlt(_localctx, 3);
{
setState(509);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 16, RULE_integral_type);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(512);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BYTE) | (1L << CHAR) | (1L << INT) | (1L << LONG))) != 0) || ((((_la - 83)) & ~0x3f) == 0 && ((1L << (_la - 83)) & ((1L << (SBYTE - 83)) | (1L << (SHORT - 83)) | (1L << (UINT - 83)) | (1L << (ULONG - 83)) | (1L << (USHORT - 83)))) != 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 18, RULE_floating_point_type);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(514);
_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 20, RULE_class_type);
try {
setState(520);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(516);
namespace_or_type_name();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(517);
match(OBJECT);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(518);
match(DYNAMIC);
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(519);
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(Type_Context.class);
}
public Type_Context type_(int i) {
return getRuleContext(Type_Context.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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 22, RULE_type_argument_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(522);
match(LT);
setState(523);
type_();
setState(528);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(524);
match(COMMA);
setState(525);
type_();
}
}
setState(530);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(531);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 24, RULE_argument_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(533);
argument();
setState(538);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(534);
match(COMMA);
setState(535);
argument();
}
}
setState(540);
_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 VAR() { return getToken(CSharpParser.VAR, 0); }
public Type_Context type_() {
return getRuleContext(Type_Context.class,0);
}
public TerminalNode REF() { return getToken(CSharpParser.REF, 0); }
public TerminalNode OUT() { return getToken(CSharpParser.OUT, 0); }
public TerminalNode IN() { return getToken(CSharpParser.IN, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitArgument(this);
else return visitor.visitChildren(this);
}
}
public final ArgumentContext argument() throws RecognitionException {
ArgumentContext _localctx = new ArgumentContext(_ctx, getState());
enterRule(_localctx, 26, RULE_argument);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(544);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) {
case 1:
{
setState(541);
identifier();
setState(542);
match(COLON);
}
break;
}
setState(547);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,20,_ctx) ) {
case 1:
{
setState(546);
((ArgumentContext)_localctx).refout = _input.LT(1);
_la = _input.LA(1);
if ( !(((((_la - 54)) & ~0x3f) == 0 && ((1L << (_la - 54)) & ((1L << (IN - 54)) | (1L << (OUT - 54)) | (1L << (REF - 54)))) != 0)) ) {
((ArgumentContext)_localctx).refout = (Token)_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
break;
}
setState(551);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,21,_ctx) ) {
case 1:
{
setState(549);
match(VAR);
}
break;
case 2:
{
setState(550);
type_();
}
break;
}
setState(553);
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 TerminalNode REF() { return getToken(CSharpParser.REF, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitExpression(this);
else return visitor.visitChildren(this);
}
}
public final ExpressionContext expression() throws RecognitionException {
ExpressionContext _localctx = new ExpressionContext(_ctx, getState());
enterRule(_localctx, 28, RULE_expression);
try {
setState(559);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,22,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(555);
assignment();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(556);
non_assignment_expression();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(557);
match(REF);
setState(558);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 30, RULE_non_assignment_expression);
try {
setState(564);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,23,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(561);
lambda_expression();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(562);
query_expression();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(563);
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 TerminalNode OP_COALESCING_ASSIGNMENT() { return getToken(CSharpParser.OP_COALESCING_ASSIGNMENT, 0); }
public Throwable_expressionContext throwable_expression() {
return getRuleContext(Throwable_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitAssignment(this);
else return visitor.visitChildren(this);
}
}
public final AssignmentContext assignment() throws RecognitionException {
AssignmentContext _localctx = new AssignmentContext(_ctx, getState());
enterRule(_localctx, 32, RULE_assignment);
try {
setState(574);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(566);
unary_expression();
setState(567);
assignment_operator();
setState(568);
expression();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(570);
unary_expression();
setState(571);
match(OP_COALESCING_ASSIGNMENT);
setState(572);
throwable_expression();
}
break;
}
}
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 TerminalNode OP_MOD_ASSIGNMENT() { return getToken(CSharpParser.OP_MOD_ASSIGNMENT, 0); }
public TerminalNode OP_AND_ASSIGNMENT() { return getToken(CSharpParser.OP_AND_ASSIGNMENT, 0); }
public TerminalNode OP_OR_ASSIGNMENT() { return getToken(CSharpParser.OP_OR_ASSIGNMENT, 0); }
public TerminalNode OP_XOR_ASSIGNMENT() { return getToken(CSharpParser.OP_XOR_ASSIGNMENT, 0); }
public TerminalNode OP_LEFT_SHIFT_ASSIGNMENT() { return getToken(CSharpParser.OP_LEFT_SHIFT_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 34, RULE_assignment_operator);
try {
setState(587);
_errHandler.sync(this);
switch (_input.LA(1)) {
case ASSIGNMENT:
enterOuterAlt(_localctx, 1);
{
setState(576);
match(ASSIGNMENT);
}
break;
case OP_ADD_ASSIGNMENT:
enterOuterAlt(_localctx, 2);
{
setState(577);
match(OP_ADD_ASSIGNMENT);
}
break;
case OP_SUB_ASSIGNMENT:
enterOuterAlt(_localctx, 3);
{
setState(578);
match(OP_SUB_ASSIGNMENT);
}
break;
case OP_MULT_ASSIGNMENT:
enterOuterAlt(_localctx, 4);
{
setState(579);
match(OP_MULT_ASSIGNMENT);
}
break;
case OP_DIV_ASSIGNMENT:
enterOuterAlt(_localctx, 5);
{
setState(580);
match(OP_DIV_ASSIGNMENT);
}
break;
case OP_MOD_ASSIGNMENT:
enterOuterAlt(_localctx, 6);
{
setState(581);
match(OP_MOD_ASSIGNMENT);
}
break;
case OP_AND_ASSIGNMENT:
enterOuterAlt(_localctx, 7);
{
setState(582);
match(OP_AND_ASSIGNMENT);
}
break;
case OP_OR_ASSIGNMENT:
enterOuterAlt(_localctx, 8);
{
setState(583);
match(OP_OR_ASSIGNMENT);
}
break;
case OP_XOR_ASSIGNMENT:
enterOuterAlt(_localctx, 9);
{
setState(584);
match(OP_XOR_ASSIGNMENT);
}
break;
case OP_LEFT_SHIFT_ASSIGNMENT:
enterOuterAlt(_localctx, 10);
{
setState(585);
match(OP_LEFT_SHIFT_ASSIGNMENT);
}
break;
case GT:
enterOuterAlt(_localctx, 11);
{
setState(586);
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 throwable_expression() {
return getRuleContexts(Throwable_expressionContext.class);
}
public Throwable_expressionContext throwable_expression(int i) {
return getRuleContext(Throwable_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 36, RULE_conditional_expression);
try {
enterOuterAlt(_localctx, 1);
{
setState(589);
null_coalescing_expression();
setState(595);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,26,_ctx) ) {
case 1:
{
setState(590);
match(INTERR);
setState(591);
throwable_expression();
setState(592);
match(COLON);
setState(593);
throwable_expression();
}
break;
}
}
}
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 TerminalNode OP_COALESCING() { return getToken(CSharpParser.OP_COALESCING, 0); }
public Null_coalescing_expressionContext null_coalescing_expression() {
return getRuleContext(Null_coalescing_expressionContext.class,0);
}
public Throw_expressionContext throw_expression() {
return getRuleContext(Throw_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 38, RULE_null_coalescing_expression);
try {
enterOuterAlt(_localctx, 1);
{
setState(597);
conditional_or_expression();
setState(603);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,28,_ctx) ) {
case 1:
{
setState(598);
match(OP_COALESCING);
setState(601);
_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 UNMANAGED:
case USHORT:
case VAR:
case WHEN:
case WHERE:
case YIELD:
case IDENTIFIER:
case LITERAL_ACCESS:
case INTEGER_LITERAL:
case HEX_INTEGER_LITERAL:
case BIN_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 CARET:
case BANG:
case TILDE:
case OP_INC:
case OP_DEC:
case OP_RANGE:
{
setState(599);
null_coalescing_expression();
}
break;
case THROW:
{
setState(600);
throw_expression();
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
}
}
}
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 40, RULE_conditional_or_expression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(605);
conditional_and_expression();
setState(610);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,29,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(606);
match(OP_OR);
setState(607);
conditional_and_expression();
}
}
}
setState(612);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,29,_ctx);
}
}
}
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 42, RULE_conditional_and_expression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(613);
inclusive_or_expression();
setState(618);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,30,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(614);
match(OP_AND);
setState(615);
inclusive_or_expression();
}
}
}
setState(620);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,30,_ctx);
}
}
}
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 List BITWISE_OR() { return getTokens(CSharpParser.BITWISE_OR); }
public TerminalNode BITWISE_OR(int i) {
return getToken(CSharpParser.BITWISE_OR, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 44, RULE_inclusive_or_expression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(621);
exclusive_or_expression();
setState(626);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,31,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(622);
match(BITWISE_OR);
setState(623);
exclusive_or_expression();
}
}
}
setState(628);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,31,_ctx);
}
}
}
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 List CARET() { return getTokens(CSharpParser.CARET); }
public TerminalNode CARET(int i) {
return getToken(CSharpParser.CARET, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 46, RULE_exclusive_or_expression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(629);
and_expression();
setState(634);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,32,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(630);
match(CARET);
setState(631);
and_expression();
}
}
}
setState(636);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,32,_ctx);
}
}
}
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 List AMP() { return getTokens(CSharpParser.AMP); }
public TerminalNode AMP(int i) {
return getToken(CSharpParser.AMP, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 48, RULE_and_expression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(637);
equality_expression();
setState(642);
_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(638);
match(AMP);
setState(639);
equality_expression();
}
}
}
setState(644);
_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 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 50, RULE_equality_expression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(645);
relational_expression();
setState(650);
_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(646);
_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(647);
relational_expression();
}
}
}
setState(652);
_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 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(Type_Context.class);
}
public Type_Context type_(int i) {
return getRuleContext(Type_Context.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 List OP_LE() { return getTokens(CSharpParser.OP_LE); }
public TerminalNode OP_LE(int i) {
return getToken(CSharpParser.OP_LE, i);
}
public List OP_GE() { return getTokens(CSharpParser.OP_GE); }
public TerminalNode OP_GE(int i) {
return getToken(CSharpParser.OP_GE, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 52, RULE_relational_expression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(653);
shift_expression();
setState(662);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,36,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
setState(660);
_errHandler.sync(this);
switch (_input.LA(1)) {
case LT:
case GT:
case OP_LE:
case OP_GE:
{
setState(654);
_la = _input.LA(1);
if ( !(((((_la - 146)) & ~0x3f) == 0 && ((1L << (_la - 146)) & ((1L << (LT - 146)) | (1L << (GT - 146)) | (1L << (OP_LE - 146)) | (1L << (OP_GE - 146)))) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(655);
shift_expression();
}
break;
case IS:
{
setState(656);
match(IS);
setState(657);
isType();
}
break;
case AS:
{
setState(658);
match(AS);
setState(659);
type_();
}
break;
default:
throw new NoViableAltException(this);
}
}
}
setState(664);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,36,_ctx);
}
}
}
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 OP_LEFT_SHIFT() { return getTokens(CSharpParser.OP_LEFT_SHIFT); }
public TerminalNode OP_LEFT_SHIFT(int i) {
return getToken(CSharpParser.OP_LEFT_SHIFT, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 54, RULE_shift_expression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(665);
additive_expression();
setState(673);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,38,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(668);
_errHandler.sync(this);
switch (_input.LA(1)) {
case OP_LEFT_SHIFT:
{
setState(666);
match(OP_LEFT_SHIFT);
}
break;
case GT:
{
setState(667);
right_shift();
}
break;
default:
throw new NoViableAltException(this);
}
setState(670);
additive_expression();
}
}
}
setState(675);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,38,_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 List PLUS() { return getTokens(CSharpParser.PLUS); }
public TerminalNode PLUS(int i) {
return getToken(CSharpParser.PLUS, i);
}
public List MINUS() { return getTokens(CSharpParser.MINUS); }
public TerminalNode MINUS(int i) {
return getToken(CSharpParser.MINUS, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 56, RULE_additive_expression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(676);
multiplicative_expression();
setState(681);
_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(677);
_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(678);
multiplicative_expression();
}
}
}
setState(683);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,39,_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 switch_expression() {
return getRuleContexts(Switch_expressionContext.class);
}
public Switch_expressionContext switch_expression(int i) {
return getRuleContext(Switch_expressionContext.class,i);
}
public List STAR() { return getTokens(CSharpParser.STAR); }
public TerminalNode STAR(int i) {
return getToken(CSharpParser.STAR, i);
}
public List DIV() { return getTokens(CSharpParser.DIV); }
public TerminalNode DIV(int i) {
return getToken(CSharpParser.DIV, i);
}
public List PERCENT() { return getTokens(CSharpParser.PERCENT); }
public TerminalNode PERCENT(int i) {
return getToken(CSharpParser.PERCENT, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 58, RULE_multiplicative_expression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(684);
switch_expression();
setState(689);
_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(685);
_la = _input.LA(1);
if ( !(((((_la - 137)) & ~0x3f) == 0 && ((1L << (_la - 137)) & ((1L << (STAR - 137)) | (1L << (DIV - 137)) | (1L << (PERCENT - 137)))) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(686);
switch_expression();
}
}
}
setState(691);
_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 Switch_expressionContext extends ParserRuleContext {
public Range_expressionContext range_expression() {
return getRuleContext(Range_expressionContext.class,0);
}
public TerminalNode SWITCH() { return getToken(CSharpParser.SWITCH, 0); }
public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); }
public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); }
public Switch_expression_armsContext switch_expression_arms() {
return getRuleContext(Switch_expression_armsContext.class,0);
}
public TerminalNode COMMA() { return getToken(CSharpParser.COMMA, 0); }
public Switch_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_switch_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSwitch_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSwitch_expression(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitSwitch_expression(this);
else return visitor.visitChildren(this);
}
}
public final Switch_expressionContext switch_expression() throws RecognitionException {
Switch_expressionContext _localctx = new Switch_expressionContext(_ctx, getState());
enterRule(_localctx, 60, RULE_switch_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(692);
range_expression();
setState(702);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,43,_ctx) ) {
case 1:
{
setState(693);
match(SWITCH);
setState(694);
match(OPEN_BRACE);
setState(699);
_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))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMEOF - 64)) | (1L << (NEW - 64)) | (1L << (NULL_ - 64)) | (1L << (OBJECT - 64)) | (1L << (ON - 64)) | (1L << (ORDERBY - 64)) | (1L << (PARTIAL - 64)) | (1L << (REF - 64)) | (1L << (REMOVE - 64)) | (1L << (SBYTE - 64)) | (1L << (SELECT - 64)) | (1L << (SET - 64)) | (1L << (SHORT - 64)) | (1L << (SIZEOF - 64)) | (1L << (STRING - 64)) | (1L << (THIS - 64)) | (1L << (TRUE - 64)) | (1L << (TYPEOF - 64)) | (1L << (UINT - 64)) | (1L << (ULONG - 64)) | (1L << (UNCHECKED - 64)) | (1L << (UNMANAGED - 64)) | (1L << (USHORT - 64)) | (1L << (VAR - 64)) | (1L << (WHEN - 64)) | (1L << (WHERE - 64)) | (1L << (YIELD - 64)) | (1L << (IDENTIFIER - 64)) | (1L << (LITERAL_ACCESS - 64)) | (1L << (INTEGER_LITERAL - 64)) | (1L << (HEX_INTEGER_LITERAL - 64)) | (1L << (BIN_INTEGER_LITERAL - 64)) | (1L << (REAL_LITERAL - 64)) | (1L << (CHARACTER_LITERAL - 64)) | (1L << (REGULAR_STRING - 64)) | (1L << (VERBATIUM_STRING - 64)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 64)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (OPEN_PARENS - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (STAR - 129)) | (1L << (AMP - 129)) | (1L << (CARET - 129)) | (1L << (BANG - 129)) | (1L << (TILDE - 129)) | (1L << (OP_INC - 129)) | (1L << (OP_DEC - 129)) | (1L << (OP_RANGE - 129)))) != 0)) {
{
setState(695);
switch_expression_arms();
setState(697);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(696);
match(COMMA);
}
}
}
}
setState(701);
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 Switch_expression_armsContext extends ParserRuleContext {
public List switch_expression_arm() {
return getRuleContexts(Switch_expression_armContext.class);
}
public Switch_expression_armContext switch_expression_arm(int i) {
return getRuleContext(Switch_expression_armContext.class,i);
}
public List COMMA() { return getTokens(CSharpParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(CSharpParser.COMMA, i);
}
public Switch_expression_armsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_switch_expression_arms; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSwitch_expression_arms(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSwitch_expression_arms(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitSwitch_expression_arms(this);
else return visitor.visitChildren(this);
}
}
public final Switch_expression_armsContext switch_expression_arms() throws RecognitionException {
Switch_expression_armsContext _localctx = new Switch_expression_armsContext(_ctx, getState());
enterRule(_localctx, 62, RULE_switch_expression_arms);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(704);
switch_expression_arm();
setState(709);
_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(705);
match(COMMA);
setState(706);
switch_expression_arm();
}
}
}
setState(711);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,44,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Switch_expression_armContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Right_arrowContext right_arrow() {
return getRuleContext(Right_arrowContext.class,0);
}
public Throwable_expressionContext throwable_expression() {
return getRuleContext(Throwable_expressionContext.class,0);
}
public Case_guardContext case_guard() {
return getRuleContext(Case_guardContext.class,0);
}
public Switch_expression_armContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_switch_expression_arm; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSwitch_expression_arm(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSwitch_expression_arm(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitSwitch_expression_arm(this);
else return visitor.visitChildren(this);
}
}
public final Switch_expression_armContext switch_expression_arm() throws RecognitionException {
Switch_expression_armContext _localctx = new Switch_expression_armContext(_ctx, getState());
enterRule(_localctx, 64, RULE_switch_expression_arm);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(712);
expression();
setState(714);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WHEN) {
{
setState(713);
case_guard();
}
}
setState(716);
right_arrow();
setState(717);
throwable_expression();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Range_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 TerminalNode OP_RANGE() { return getToken(CSharpParser.OP_RANGE, 0); }
public Range_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_range_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterRange_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitRange_expression(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitRange_expression(this);
else return visitor.visitChildren(this);
}
}
public final Range_expressionContext range_expression() throws RecognitionException {
Range_expressionContext _localctx = new Range_expressionContext(_ctx, getState());
enterRule(_localctx, 66, RULE_range_expression);
int _la;
try {
setState(727);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,48,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(719);
unary_expression();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(721);
_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))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMEOF - 64)) | (1L << (NEW - 64)) | (1L << (NULL_ - 64)) | (1L << (OBJECT - 64)) | (1L << (ON - 64)) | (1L << (ORDERBY - 64)) | (1L << (PARTIAL - 64)) | (1L << (REMOVE - 64)) | (1L << (SBYTE - 64)) | (1L << (SELECT - 64)) | (1L << (SET - 64)) | (1L << (SHORT - 64)) | (1L << (SIZEOF - 64)) | (1L << (STRING - 64)) | (1L << (THIS - 64)) | (1L << (TRUE - 64)) | (1L << (TYPEOF - 64)) | (1L << (UINT - 64)) | (1L << (ULONG - 64)) | (1L << (UNCHECKED - 64)) | (1L << (UNMANAGED - 64)) | (1L << (USHORT - 64)) | (1L << (VAR - 64)) | (1L << (WHEN - 64)) | (1L << (WHERE - 64)) | (1L << (YIELD - 64)) | (1L << (IDENTIFIER - 64)) | (1L << (LITERAL_ACCESS - 64)) | (1L << (INTEGER_LITERAL - 64)) | (1L << (HEX_INTEGER_LITERAL - 64)) | (1L << (BIN_INTEGER_LITERAL - 64)) | (1L << (REAL_LITERAL - 64)) | (1L << (CHARACTER_LITERAL - 64)) | (1L << (REGULAR_STRING - 64)) | (1L << (VERBATIUM_STRING - 64)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 64)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (OPEN_PARENS - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (STAR - 129)) | (1L << (AMP - 129)) | (1L << (CARET - 129)) | (1L << (BANG - 129)) | (1L << (TILDE - 129)) | (1L << (OP_INC - 129)) | (1L << (OP_DEC - 129)))) != 0)) {
{
setState(720);
unary_expression();
}
}
setState(723);
match(OP_RANGE);
setState(725);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,47,_ctx) ) {
case 1:
{
setState(724);
unary_expression();
}
break;
}
}
break;
}
}
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 TerminalNode PLUS() { return getToken(CSharpParser.PLUS, 0); }
public Unary_expressionContext unary_expression() {
return getRuleContext(Unary_expressionContext.class,0);
}
public TerminalNode MINUS() { return getToken(CSharpParser.MINUS, 0); }
public TerminalNode BANG() { return getToken(CSharpParser.BANG, 0); }
public TerminalNode TILDE() { return getToken(CSharpParser.TILDE, 0); }
public TerminalNode OP_INC() { return getToken(CSharpParser.OP_INC, 0); }
public TerminalNode OP_DEC() { return getToken(CSharpParser.OP_DEC, 0); }
public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); }
public Type_Context type_() {
return getRuleContext(Type_Context.class,0);
}
public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); }
public TerminalNode AWAIT() { return getToken(CSharpParser.AWAIT, 0); }
public TerminalNode AMP() { return getToken(CSharpParser.AMP, 0); }
public TerminalNode STAR() { return getToken(CSharpParser.STAR, 0); }
public TerminalNode CARET() { return getToken(CSharpParser.CARET, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 68, RULE_unary_expression);
try {
setState(755);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,49,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(729);
primary_expression();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(730);
match(PLUS);
setState(731);
unary_expression();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(732);
match(MINUS);
setState(733);
unary_expression();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(734);
match(BANG);
setState(735);
unary_expression();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(736);
match(TILDE);
setState(737);
unary_expression();
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(738);
match(OP_INC);
setState(739);
unary_expression();
}
break;
case 7:
enterOuterAlt(_localctx, 7);
{
setState(740);
match(OP_DEC);
setState(741);
unary_expression();
}
break;
case 8:
enterOuterAlt(_localctx, 8);
{
setState(742);
match(OPEN_PARENS);
setState(743);
type_();
setState(744);
match(CLOSE_PARENS);
setState(745);
unary_expression();
}
break;
case 9:
enterOuterAlt(_localctx, 9);
{
setState(747);
match(AWAIT);
setState(748);
unary_expression();
}
break;
case 10:
enterOuterAlt(_localctx, 10);
{
setState(749);
match(AMP);
setState(750);
unary_expression();
}
break;
case 11:
enterOuterAlt(_localctx, 11);
{
setState(751);
match(STAR);
setState(752);
unary_expression();
}
break;
case 12:
enterOuterAlt(_localctx, 12);
{
setState(753);
match(CARET);
setState(754);
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 BANG() { return getTokens(CSharpParser.BANG); }
public TerminalNode BANG(int i) {
return getToken(CSharpParser.BANG, i);
}
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 OP_INC() { return getTokens(CSharpParser.OP_INC); }
public TerminalNode OP_INC(int i) {
return getToken(CSharpParser.OP_INC, i);
}
public List OP_DEC() { return getTokens(CSharpParser.OP_DEC); }
public TerminalNode OP_DEC(int i) {
return getToken(CSharpParser.OP_DEC, i);
}
public List OP_PTR() { return getTokens(CSharpParser.OP_PTR); }
public TerminalNode OP_PTR(int i) {
return getToken(CSharpParser.OP_PTR, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 70, RULE_primary_expression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(757);
((Primary_expressionContext)_localctx).pe = primary_expression_start();
setState(759);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,50,_ctx) ) {
case 1:
{
setState(758);
match(BANG);
}
break;
}
setState(764);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,51,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(761);
bracket_expression();
}
}
}
setState(766);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,51,_ctx);
}
setState(768);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,52,_ctx) ) {
case 1:
{
setState(767);
match(BANG);
}
break;
}
setState(792);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,57,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
{
setState(776);
_errHandler.sync(this);
switch (_input.LA(1)) {
case DOT:
case INTERR:
{
setState(770);
member_access();
}
break;
case OPEN_PARENS:
{
setState(771);
method_invocation();
}
break;
case OP_INC:
{
setState(772);
match(OP_INC);
}
break;
case OP_DEC:
{
setState(773);
match(OP_DEC);
}
break;
case OP_PTR:
{
setState(774);
match(OP_PTR);
setState(775);
identifier();
}
break;
default:
throw new NoViableAltException(this);
}
setState(779);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,54,_ctx) ) {
case 1:
{
setState(778);
match(BANG);
}
break;
}
}
setState(784);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,55,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(781);
bracket_expression();
}
}
}
setState(786);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,55,_ctx);
}
setState(788);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,56,_ctx) ) {
case 1:
{
setState(787);
match(BANG);
}
break;
}
}
}
}
setState(794);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,57,_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 Type_Context type_() {
return getRuleContext(Type_Context.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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 TerminalNode OPEN_BRACKET() { return getToken(CSharpParser.OPEN_BRACKET, 0); }
public Expression_listContext expression_list() {
return getRuleContext(Expression_listContext.class,0);
}
public TerminalNode CLOSE_BRACKET() { return getToken(CSharpParser.CLOSE_BRACKET, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 Type_Context type_() {
return getRuleContext(Type_Context.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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 Type_Context type_() {
return getRuleContext(Type_Context.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 TerminalNode OPEN_BRACKET() { return getToken(CSharpParser.OPEN_BRACKET, 0); }
public Expression_listContext expression_list() {
return getRuleContext(Expression_listContext.class,0);
}
public TerminalNode CLOSE_BRACKET() { return getToken(CSharpParser.CLOSE_BRACKET, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 Type_Context type_() {
return getRuleContext(Type_Context.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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitTypeofExpression(this);
else return visitor.visitChildren(this);
}
}
public static class TupleExpressionContext extends Primary_expression_startContext {
public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); }
public List argument() {
return getRuleContexts(ArgumentContext.class);
}
public ArgumentContext argument(int i) {
return getRuleContext(ArgumentContext.class,i);
}
public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); }
public List COMMA() { return getTokens(CSharpParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(CSharpParser.COMMA, i);
}
public TupleExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterTupleExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitTupleExpression(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitTupleExpression(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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 72, RULE_primary_expression_start);
int _la;
try {
int _alt;
setState(916);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,73,_ctx) ) {
case 1:
_localctx = new LiteralExpressionContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(795);
literal();
}
break;
case 2:
_localctx = new SimpleNameExpressionContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(796);
identifier();
setState(798);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,58,_ctx) ) {
case 1:
{
setState(797);
type_argument_list();
}
break;
}
}
break;
case 3:
_localctx = new ParenthesisExpressionsContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(800);
match(OPEN_PARENS);
setState(801);
expression();
setState(802);
match(CLOSE_PARENS);
}
break;
case 4:
_localctx = new MemberAccessExpressionContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(804);
predefined_type();
}
break;
case 5:
_localctx = new MemberAccessExpressionContext(_localctx);
enterOuterAlt(_localctx, 5);
{
setState(805);
qualified_alias_member();
}
break;
case 6:
_localctx = new LiteralAccessExpressionContext(_localctx);
enterOuterAlt(_localctx, 6);
{
setState(806);
match(LITERAL_ACCESS);
}
break;
case 7:
_localctx = new ThisReferenceExpressionContext(_localctx);
enterOuterAlt(_localctx, 7);
{
setState(807);
match(THIS);
}
break;
case 8:
_localctx = new BaseAccessExpressionContext(_localctx);
enterOuterAlt(_localctx, 8);
{
setState(808);
match(BASE);
setState(818);
_errHandler.sync(this);
switch (_input.LA(1)) {
case DOT:
{
setState(809);
match(DOT);
setState(810);
identifier();
setState(812);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,59,_ctx) ) {
case 1:
{
setState(811);
type_argument_list();
}
break;
}
}
break;
case OPEN_BRACKET:
{
setState(814);
match(OPEN_BRACKET);
setState(815);
expression_list();
setState(816);
match(CLOSE_BRACKET);
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
case 9:
_localctx = new ObjectCreationExpressionContext(_localctx);
enterOuterAlt(_localctx, 9);
{
setState(820);
match(NEW);
setState(849);
_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 UNMANAGED:
case USHORT:
case VAR:
case VOID:
case WHEN:
case WHERE:
case YIELD:
case IDENTIFIER:
case OPEN_PARENS:
{
setState(821);
type_();
setState(843);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,64,_ctx) ) {
case 1:
{
setState(822);
object_creation_expression();
}
break;
case 2:
{
setState(823);
object_or_collection_initializer();
}
break;
case 3:
{
setState(824);
match(OPEN_BRACKET);
setState(825);
expression_list();
setState(826);
match(CLOSE_BRACKET);
setState(830);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,61,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(827);
rank_specifier();
}
}
}
setState(832);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,61,_ctx);
}
setState(834);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) {
case 1:
{
setState(833);
array_initializer();
}
break;
}
}
break;
case 4:
{
setState(837);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(836);
rank_specifier();
}
}
setState(839);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==OPEN_BRACKET );
setState(841);
array_initializer();
}
break;
}
}
break;
case OPEN_BRACE:
{
setState(845);
anonymous_object_initializer();
}
break;
case OPEN_BRACKET:
{
setState(846);
rank_specifier();
setState(847);
array_initializer();
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
case 10:
_localctx = new TupleExpressionContext(_localctx);
enterOuterAlt(_localctx, 10);
{
setState(851);
match(OPEN_PARENS);
setState(852);
argument();
setState(855);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(853);
match(COMMA);
setState(854);
argument();
}
}
setState(857);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==COMMA );
setState(859);
match(CLOSE_PARENS);
}
break;
case 11:
_localctx = new TypeofExpressionContext(_localctx);
enterOuterAlt(_localctx, 11);
{
setState(861);
match(TYPEOF);
setState(862);
match(OPEN_PARENS);
setState(866);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,67,_ctx) ) {
case 1:
{
setState(863);
unbound_type_name();
}
break;
case 2:
{
setState(864);
type_();
}
break;
case 3:
{
setState(865);
match(VOID);
}
break;
}
setState(868);
match(CLOSE_PARENS);
}
break;
case 12:
_localctx = new CheckedExpressionContext(_localctx);
enterOuterAlt(_localctx, 12);
{
setState(869);
match(CHECKED);
setState(870);
match(OPEN_PARENS);
setState(871);
expression();
setState(872);
match(CLOSE_PARENS);
}
break;
case 13:
_localctx = new UncheckedExpressionContext(_localctx);
enterOuterAlt(_localctx, 13);
{
setState(874);
match(UNCHECKED);
setState(875);
match(OPEN_PARENS);
setState(876);
expression();
setState(877);
match(CLOSE_PARENS);
}
break;
case 14:
_localctx = new DefaultValueExpressionContext(_localctx);
enterOuterAlt(_localctx, 14);
{
setState(879);
match(DEFAULT);
setState(884);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,68,_ctx) ) {
case 1:
{
setState(880);
match(OPEN_PARENS);
setState(881);
type_();
setState(882);
match(CLOSE_PARENS);
}
break;
}
}
break;
case 15:
_localctx = new AnonymousMethodExpressionContext(_localctx);
enterOuterAlt(_localctx, 15);
{
setState(887);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==ASYNC) {
{
setState(886);
match(ASYNC);
}
}
setState(889);
match(DELEGATE);
setState(895);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==OPEN_PARENS) {
{
setState(890);
match(OPEN_PARENS);
setState(892);
_errHandler.sync(this);
_la = _input.LA(1);
if (((((_la - 10)) & ~0x3f) == 0 && ((1L << (_la - 10)) & ((1L << (ADD - 10)) | (1L << (ALIAS - 10)) | (1L << (ARGLIST - 10)) | (1L << (ASCENDING - 10)) | (1L << (ASYNC - 10)) | (1L << (AWAIT - 10)) | (1L << (BOOL - 10)) | (1L << (BY - 10)) | (1L << (BYTE - 10)) | (1L << (CHAR - 10)) | (1L << (DECIMAL - 10)) | (1L << (DESCENDING - 10)) | (1L << (DOUBLE - 10)) | (1L << (DYNAMIC - 10)) | (1L << (EQUALS - 10)) | (1L << (FLOAT - 10)) | (1L << (FROM - 10)) | (1L << (GET - 10)) | (1L << (GROUP - 10)) | (1L << (IN - 10)) | (1L << (INT - 10)) | (1L << (INTO - 10)) | (1L << (JOIN - 10)) | (1L << (LET - 10)) | (1L << (LONG - 10)) | (1L << (NAMEOF - 10)) | (1L << (OBJECT - 10)) | (1L << (ON - 10)) | (1L << (ORDERBY - 10)) | (1L << (OUT - 10)))) != 0) || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (PARTIAL - 75)) | (1L << (REF - 75)) | (1L << (REMOVE - 75)) | (1L << (SBYTE - 75)) | (1L << (SELECT - 75)) | (1L << (SET - 75)) | (1L << (SHORT - 75)) | (1L << (STRING - 75)) | (1L << (UINT - 75)) | (1L << (ULONG - 75)) | (1L << (UNMANAGED - 75)) | (1L << (USHORT - 75)) | (1L << (VAR - 75)) | (1L << (VOID - 75)) | (1L << (WHEN - 75)) | (1L << (WHERE - 75)) | (1L << (YIELD - 75)) | (1L << (IDENTIFIER - 75)) | (1L << (OPEN_PARENS - 75)))) != 0)) {
{
setState(891);
explicit_anonymous_function_parameter_list();
}
}
setState(894);
match(CLOSE_PARENS);
}
}
setState(897);
block();
}
break;
case 16:
_localctx = new SizeofExpressionContext(_localctx);
enterOuterAlt(_localctx, 16);
{
setState(898);
match(SIZEOF);
setState(899);
match(OPEN_PARENS);
setState(900);
type_();
setState(901);
match(CLOSE_PARENS);
}
break;
case 17:
_localctx = new NameofExpressionContext(_localctx);
enterOuterAlt(_localctx, 17);
{
setState(903);
match(NAMEOF);
setState(904);
match(OPEN_PARENS);
setState(910);
_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(905);
identifier();
setState(906);
match(DOT);
}
}
}
setState(912);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,72,_ctx);
}
setState(913);
identifier();
setState(914);
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 Throwable_expressionContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Throw_expressionContext throw_expression() {
return getRuleContext(Throw_expressionContext.class,0);
}
public Throwable_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_throwable_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterThrowable_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitThrowable_expression(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitThrowable_expression(this);
else return visitor.visitChildren(this);
}
}
public final Throwable_expressionContext throwable_expression() throws RecognitionException {
Throwable_expressionContext _localctx = new Throwable_expressionContext(_ctx, getState());
enterRule(_localctx, 74, RULE_throwable_expression);
try {
setState(920);
_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 REF:
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 UNMANAGED:
case USHORT:
case VAR:
case WHEN:
case WHERE:
case YIELD:
case IDENTIFIER:
case LITERAL_ACCESS:
case INTEGER_LITERAL:
case HEX_INTEGER_LITERAL:
case BIN_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 CARET:
case BANG:
case TILDE:
case OP_INC:
case OP_DEC:
case OP_RANGE:
enterOuterAlt(_localctx, 1);
{
setState(918);
expression();
}
break;
case THROW:
enterOuterAlt(_localctx, 2);
{
setState(919);
throw_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 Throw_expressionContext extends ParserRuleContext {
public TerminalNode THROW() { return getToken(CSharpParser.THROW, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Throw_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_throw_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterThrow_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitThrow_expression(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitThrow_expression(this);
else return visitor.visitChildren(this);
}
}
public final Throw_expressionContext throw_expression() throws RecognitionException {
Throw_expressionContext _localctx = new Throw_expressionContext(_ctx, getState());
enterRule(_localctx, 76, RULE_throw_expression);
try {
enterOuterAlt(_localctx, 1);
{
setState(922);
match(THROW);
setState(923);
expression();
}
}
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 78, RULE_member_access);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(926);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==INTERR) {
{
setState(925);
match(INTERR);
}
}
setState(928);
match(DOT);
setState(929);
identifier();
setState(931);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,76,_ctx) ) {
case 1:
{
setState(930);
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 TerminalNode OPEN_BRACKET() { return getToken(CSharpParser.OPEN_BRACKET, 0); }
public List indexer_argument() {
return getRuleContexts(Indexer_argumentContext.class);
}
public Indexer_argumentContext indexer_argument(int i) {
return getRuleContext(Indexer_argumentContext.class,i);
}
public TerminalNode CLOSE_BRACKET() { return getToken(CSharpParser.CLOSE_BRACKET, 0); }
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 80, RULE_bracket_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(934);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==INTERR) {
{
setState(933);
match(INTERR);
}
}
setState(936);
match(OPEN_BRACKET);
setState(937);
indexer_argument();
setState(942);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(938);
match(COMMA);
setState(939);
indexer_argument();
}
}
setState(944);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(945);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 82, RULE_indexer_argument);
try {
enterOuterAlt(_localctx, 1);
{
setState(950);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,79,_ctx) ) {
case 1:
{
setState(947);
identifier();
setState(948);
match(COLON);
}
break;
}
setState(952);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 84, RULE_predefined_type);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(954);
_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 - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (OBJECT - 68)) | (1L << (SBYTE - 68)) | (1L << (SHORT - 68)) | (1L << (STRING - 68)) | (1L << (UINT - 68)) | (1L << (ULONG - 68)) | (1L << (USHORT - 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 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 86, RULE_expression_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(956);
expression();
setState(961);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(957);
match(COMMA);
setState(958);
expression();
}
}
setState(963);
_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 88, RULE_object_or_collection_initializer);
try {
setState(966);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,81,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(964);
object_initializer();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(965);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 90, RULE_object_initializer);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(968);
match(OPEN_BRACE);
setState(973);
_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))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMEOF - 64)) | (1L << (ON - 64)) | (1L << (ORDERBY - 64)) | (1L << (PARTIAL - 64)) | (1L << (REMOVE - 64)) | (1L << (SELECT - 64)) | (1L << (SET - 64)) | (1L << (UNMANAGED - 64)) | (1L << (VAR - 64)) | (1L << (WHEN - 64)) | (1L << (WHERE - 64)) | (1L << (YIELD - 64)) | (1L << (IDENTIFIER - 64)) | (1L << (OPEN_BRACKET - 64)))) != 0)) {
{
setState(969);
member_initializer_list();
setState(971);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(970);
match(COMMA);
}
}
}
}
setState(975);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 92, RULE_member_initializer_list);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(977);
member_initializer();
setState(982);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,84,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(978);
match(COMMA);
setState(979);
member_initializer();
}
}
}
setState(984);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,84,_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 TerminalNode OPEN_BRACKET() { return getToken(CSharpParser.OPEN_BRACKET, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode CLOSE_BRACKET() { return getToken(CSharpParser.CLOSE_BRACKET, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 94, RULE_member_initializer);
try {
enterOuterAlt(_localctx, 1);
{
setState(990);
_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 UNMANAGED:
case VAR:
case WHEN:
case WHERE:
case YIELD:
case IDENTIFIER:
{
setState(985);
identifier();
}
break;
case OPEN_BRACKET:
{
setState(986);
match(OPEN_BRACKET);
setState(987);
expression();
setState(988);
match(CLOSE_BRACKET);
}
break;
default:
throw new NoViableAltException(this);
}
setState(992);
match(ASSIGNMENT);
setState(993);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 96, RULE_initializer_value);
try {
setState(997);
_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 REF:
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 UNMANAGED:
case USHORT:
case VAR:
case WHEN:
case WHERE:
case YIELD:
case IDENTIFIER:
case LITERAL_ACCESS:
case INTEGER_LITERAL:
case HEX_INTEGER_LITERAL:
case BIN_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 CARET:
case BANG:
case TILDE:
case OP_INC:
case OP_DEC:
case OP_RANGE:
enterOuterAlt(_localctx, 1);
{
setState(995);
expression();
}
break;
case OPEN_BRACE:
enterOuterAlt(_localctx, 2);
{
setState(996);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 98, RULE_collection_initializer);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(999);
match(OPEN_BRACE);
setState(1000);
element_initializer();
setState(1005);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,87,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1001);
match(COMMA);
setState(1002);
element_initializer();
}
}
}
setState(1007);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,87,_ctx);
}
setState(1009);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(1008);
match(COMMA);
}
}
setState(1011);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 100, RULE_element_initializer);
try {
setState(1018);
_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 UNMANAGED:
case USHORT:
case VAR:
case WHEN:
case WHERE:
case YIELD:
case IDENTIFIER:
case LITERAL_ACCESS:
case INTEGER_LITERAL:
case HEX_INTEGER_LITERAL:
case BIN_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 CARET:
case BANG:
case TILDE:
case OP_INC:
case OP_DEC:
case OP_RANGE:
enterOuterAlt(_localctx, 1);
{
setState(1013);
non_assignment_expression();
}
break;
case OPEN_BRACE:
enterOuterAlt(_localctx, 2);
{
setState(1014);
match(OPEN_BRACE);
setState(1015);
expression_list();
setState(1016);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 102, RULE_anonymous_object_initializer);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1020);
match(OPEN_BRACE);
setState(1025);
_errHandler.sync(this);
_la = _input.LA(1);
if (((((_la - 10)) & ~0x3f) == 0 && ((1L << (_la - 10)) & ((1L << (ADD - 10)) | (1L << (ALIAS - 10)) | (1L << (ARGLIST - 10)) | (1L << (ASCENDING - 10)) | (1L << (ASYNC - 10)) | (1L << (AWAIT - 10)) | (1L << (BASE - 10)) | (1L << (BOOL - 10)) | (1L << (BY - 10)) | (1L << (BYTE - 10)) | (1L << (CHAR - 10)) | (1L << (CHECKED - 10)) | (1L << (DECIMAL - 10)) | (1L << (DEFAULT - 10)) | (1L << (DELEGATE - 10)) | (1L << (DESCENDING - 10)) | (1L << (DOUBLE - 10)) | (1L << (DYNAMIC - 10)) | (1L << (EQUALS - 10)) | (1L << (FALSE - 10)) | (1L << (FLOAT - 10)) | (1L << (FROM - 10)) | (1L << (GET - 10)) | (1L << (GROUP - 10)) | (1L << (INT - 10)) | (1L << (INTO - 10)) | (1L << (JOIN - 10)) | (1L << (LET - 10)) | (1L << (LONG - 10)) | (1L << (NAMEOF - 10)) | (1L << (NEW - 10)) | (1L << (NULL_ - 10)) | (1L << (OBJECT - 10)) | (1L << (ON - 10)) | (1L << (ORDERBY - 10)))) != 0) || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (PARTIAL - 75)) | (1L << (REMOVE - 75)) | (1L << (SBYTE - 75)) | (1L << (SELECT - 75)) | (1L << (SET - 75)) | (1L << (SHORT - 75)) | (1L << (SIZEOF - 75)) | (1L << (STRING - 75)) | (1L << (THIS - 75)) | (1L << (TRUE - 75)) | (1L << (TYPEOF - 75)) | (1L << (UINT - 75)) | (1L << (ULONG - 75)) | (1L << (UNCHECKED - 75)) | (1L << (UNMANAGED - 75)) | (1L << (USHORT - 75)) | (1L << (VAR - 75)) | (1L << (WHEN - 75)) | (1L << (WHERE - 75)) | (1L << (YIELD - 75)) | (1L << (IDENTIFIER - 75)) | (1L << (LITERAL_ACCESS - 75)) | (1L << (INTEGER_LITERAL - 75)) | (1L << (HEX_INTEGER_LITERAL - 75)) | (1L << (BIN_INTEGER_LITERAL - 75)) | (1L << (REAL_LITERAL - 75)) | (1L << (CHARACTER_LITERAL - 75)) | (1L << (REGULAR_STRING - 75)) | (1L << (VERBATIUM_STRING - 75)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 75)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 75)) | (1L << (OPEN_PARENS - 75)))) != 0)) {
{
setState(1021);
member_declarator_list();
setState(1023);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(1022);
match(COMMA);
}
}
}
}
setState(1027);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 104, RULE_member_declarator_list);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1029);
member_declarator();
setState(1034);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,92,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1030);
match(COMMA);
setState(1031);
member_declarator();
}
}
}
setState(1036);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,92,_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 106, RULE_member_declarator);
try {
setState(1042);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,93,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1037);
primary_expression();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1038);
identifier();
setState(1039);
match(ASSIGNMENT);
setState(1040);
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 TerminalNode DOUBLE_COLON() { return getToken(CSharpParser.DOUBLE_COLON, 0); }
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 108, RULE_unbound_type_name);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1044);
identifier();
setState(1053);
_errHandler.sync(this);
switch (_input.LA(1)) {
case CLOSE_PARENS:
case DOT:
case LT:
{
setState(1046);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==LT) {
{
setState(1045);
generic_dimension_specifier();
}
}
}
break;
case DOUBLE_COLON:
{
setState(1048);
match(DOUBLE_COLON);
setState(1049);
identifier();
setState(1051);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==LT) {
{
setState(1050);
generic_dimension_specifier();
}
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1062);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==DOT) {
{
{
setState(1055);
match(DOT);
setState(1056);
identifier();
setState(1058);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==LT) {
{
setState(1057);
generic_dimension_specifier();
}
}
}
}
setState(1064);
_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 110, RULE_generic_dimension_specifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1065);
match(LT);
setState(1069);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1066);
match(COMMA);
}
}
setState(1071);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1072);
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 IsTypePatternArmsContext isTypePatternArms() {
return getRuleContext(IsTypePatternArmsContext.class,0);
}
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitIsType(this);
else return visitor.visitChildren(this);
}
}
public final IsTypeContext isType() throws RecognitionException {
IsTypeContext _localctx = new IsTypeContext(_ctx, getState());
enterRule(_localctx, 112, RULE_isType);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1074);
base_type();
setState(1079);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,101,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
setState(1077);
_errHandler.sync(this);
switch (_input.LA(1)) {
case OPEN_BRACKET:
{
setState(1075);
rank_specifier();
}
break;
case STAR:
{
setState(1076);
match(STAR);
}
break;
default:
throw new NoViableAltException(this);
}
}
}
setState(1081);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,101,_ctx);
}
setState(1083);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,102,_ctx) ) {
case 1:
{
setState(1082);
match(INTERR);
}
break;
}
setState(1086);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,103,_ctx) ) {
case 1:
{
setState(1085);
isTypePatternArms();
}
break;
}
setState(1089);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,104,_ctx) ) {
case 1:
{
setState(1088);
identifier();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class IsTypePatternArmsContext extends ParserRuleContext {
public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); }
public List isTypePatternArm() {
return getRuleContexts(IsTypePatternArmContext.class);
}
public IsTypePatternArmContext isTypePatternArm(int i) {
return getRuleContext(IsTypePatternArmContext.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 IsTypePatternArmsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_isTypePatternArms; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterIsTypePatternArms(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitIsTypePatternArms(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitIsTypePatternArms(this);
else return visitor.visitChildren(this);
}
}
public final IsTypePatternArmsContext isTypePatternArms() throws RecognitionException {
IsTypePatternArmsContext _localctx = new IsTypePatternArmsContext(_ctx, getState());
enterRule(_localctx, 114, RULE_isTypePatternArms);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1091);
match(OPEN_BRACE);
setState(1092);
isTypePatternArm();
setState(1097);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1093);
match(COMMA);
setState(1094);
isTypePatternArm();
}
}
setState(1099);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1100);
match(CLOSE_BRACE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class IsTypePatternArmContext extends ParserRuleContext {
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public IsTypePatternArmContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_isTypePatternArm; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterIsTypePatternArm(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitIsTypePatternArm(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitIsTypePatternArm(this);
else return visitor.visitChildren(this);
}
}
public final IsTypePatternArmContext isTypePatternArm() throws RecognitionException {
IsTypePatternArmContext _localctx = new IsTypePatternArmContext(_ctx, getState());
enterRule(_localctx, 116, RULE_isTypePatternArm);
try {
enterOuterAlt(_localctx, 1);
{
setState(1102);
identifier();
setState(1103);
match(COLON);
setState(1104);
expression();
}
}
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 118, RULE_lambda_expression);
try {
enterOuterAlt(_localctx, 1);
{
setState(1107);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,106,_ctx) ) {
case 1:
{
setState(1106);
match(ASYNC);
}
break;
}
setState(1109);
anonymous_function_signature();
setState(1110);
right_arrow();
setState(1111);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 120, RULE_anonymous_function_signature);
try {
setState(1124);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,107,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1113);
match(OPEN_PARENS);
setState(1114);
match(CLOSE_PARENS);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1115);
match(OPEN_PARENS);
setState(1116);
explicit_anonymous_function_parameter_list();
setState(1117);
match(CLOSE_PARENS);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1119);
match(OPEN_PARENS);
setState(1120);
implicit_anonymous_function_parameter_list();
setState(1121);
match(CLOSE_PARENS);
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(1123);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 122, RULE_explicit_anonymous_function_parameter_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1126);
explicit_anonymous_function_parameter();
setState(1131);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1127);
match(COMMA);
setState(1128);
explicit_anonymous_function_parameter();
}
}
setState(1133);
_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 Type_Context type_() {
return getRuleContext(Type_Context.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 TerminalNode IN() { return getToken(CSharpParser.IN, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 124, RULE_explicit_anonymous_function_parameter);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1135);
_errHandler.sync(this);
_la = _input.LA(1);
if (((((_la - 54)) & ~0x3f) == 0 && ((1L << (_la - 54)) & ((1L << (IN - 54)) | (1L << (OUT - 54)) | (1L << (REF - 54)))) != 0)) {
{
setState(1134);
((Explicit_anonymous_function_parameterContext)_localctx).refout = _input.LT(1);
_la = _input.LA(1);
if ( !(((((_la - 54)) & ~0x3f) == 0 && ((1L << (_la - 54)) & ((1L << (IN - 54)) | (1L << (OUT - 54)) | (1L << (REF - 54)))) != 0)) ) {
((Explicit_anonymous_function_parameterContext)_localctx).refout = (Token)_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
}
setState(1137);
type_();
setState(1138);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 126, RULE_implicit_anonymous_function_parameter_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1140);
identifier();
setState(1145);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1141);
match(COMMA);
setState(1142);
identifier();
}
}
setState(1147);
_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 Throwable_expressionContext throwable_expression() {
return getRuleContext(Throwable_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 128, RULE_anonymous_function_body);
try {
setState(1150);
_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 REF:
case REMOVE:
case SBYTE:
case SELECT:
case SET:
case SHORT:
case SIZEOF:
case STRING:
case THIS:
case THROW:
case TRUE:
case TYPEOF:
case UINT:
case ULONG:
case UNCHECKED:
case UNMANAGED:
case USHORT:
case VAR:
case WHEN:
case WHERE:
case YIELD:
case IDENTIFIER:
case LITERAL_ACCESS:
case INTEGER_LITERAL:
case HEX_INTEGER_LITERAL:
case BIN_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 CARET:
case BANG:
case TILDE:
case OP_INC:
case OP_DEC:
case OP_RANGE:
enterOuterAlt(_localctx, 1);
{
setState(1148);
throwable_expression();
}
break;
case OPEN_BRACE:
enterOuterAlt(_localctx, 2);
{
setState(1149);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 130, RULE_query_expression);
try {
enterOuterAlt(_localctx, 1);
{
setState(1152);
from_clause();
setState(1153);
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 Type_Context type_() {
return getRuleContext(Type_Context.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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 132, RULE_from_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(1155);
match(FROM);
setState(1157);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,112,_ctx) ) {
case 1:
{
setState(1156);
type_();
}
break;
}
setState(1159);
identifier();
setState(1160);
match(IN);
setState(1161);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 134, RULE_query_body);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1166);
_errHandler.sync(this);
_la = _input.LA(1);
while (((((_la - 48)) & ~0x3f) == 0 && ((1L << (_la - 48)) & ((1L << (FROM - 48)) | (1L << (JOIN - 48)) | (1L << (LET - 48)) | (1L << (ORDERBY - 48)) | (1L << (WHERE - 48)))) != 0)) {
{
{
setState(1163);
query_body_clause();
}
}
setState(1168);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1169);
select_or_group_clause();
setState(1171);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,114,_ctx) ) {
case 1:
{
setState(1170);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 136, RULE_query_body_clause);
try {
setState(1178);
_errHandler.sync(this);
switch (_input.LA(1)) {
case FROM:
enterOuterAlt(_localctx, 1);
{
setState(1173);
from_clause();
}
break;
case LET:
enterOuterAlt(_localctx, 2);
{
setState(1174);
let_clause();
}
break;
case WHERE:
enterOuterAlt(_localctx, 3);
{
setState(1175);
where_clause();
}
break;
case JOIN:
enterOuterAlt(_localctx, 4);
{
setState(1176);
combined_join_clause();
}
break;
case ORDERBY:
enterOuterAlt(_localctx, 5);
{
setState(1177);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 138, RULE_let_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(1180);
match(LET);
setState(1181);
identifier();
setState(1182);
match(ASSIGNMENT);
setState(1183);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 140, RULE_where_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(1185);
match(WHERE);
setState(1186);
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 Type_Context type_() {
return getRuleContext(Type_Context.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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 142, RULE_combined_join_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1188);
match(JOIN);
setState(1190);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,116,_ctx) ) {
case 1:
{
setState(1189);
type_();
}
break;
}
setState(1192);
identifier();
setState(1193);
match(IN);
setState(1194);
expression();
setState(1195);
match(ON);
setState(1196);
expression();
setState(1197);
match(EQUALS);
setState(1198);
expression();
setState(1201);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==INTO) {
{
setState(1199);
match(INTO);
setState(1200);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 144, RULE_orderby_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1203);
match(ORDERBY);
setState(1204);
ordering();
setState(1209);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1205);
match(COMMA);
setState(1206);
ordering();
}
}
setState(1211);
_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitOrdering(this);
else return visitor.visitChildren(this);
}
}
public final OrderingContext ordering() throws RecognitionException {
OrderingContext _localctx = new OrderingContext(_ctx, getState());
enterRule(_localctx, 146, RULE_ordering);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1212);
expression();
setState(1214);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==ASCENDING || _la==DESCENDING) {
{
setState(1213);
((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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 148, RULE_select_or_group_clause);
try {
setState(1223);
_errHandler.sync(this);
switch (_input.LA(1)) {
case SELECT:
enterOuterAlt(_localctx, 1);
{
setState(1216);
match(SELECT);
setState(1217);
expression();
}
break;
case GROUP:
enterOuterAlt(_localctx, 2);
{
setState(1218);
match(GROUP);
setState(1219);
expression();
setState(1220);
match(BY);
setState(1221);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 150, RULE_query_continuation);
try {
enterOuterAlt(_localctx, 1);
{
setState(1225);
match(INTO);
setState(1226);
identifier();
setState(1227);
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 Labeled_StatementContext labeled_Statement() {
return getRuleContext(Labeled_StatementContext.class,0);
}
public DeclarationStatementContext declarationStatement() {
return getRuleContext(DeclarationStatementContext.class,0);
}
public Embedded_statementContext embedded_statement() {
return getRuleContext(Embedded_statementContext.class,0);
}
public StatementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_statement; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterStatement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitStatement(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitStatement(this);
else return visitor.visitChildren(this);
}
}
public final StatementContext statement() throws RecognitionException {
StatementContext _localctx = new StatementContext(_ctx, getState());
enterRule(_localctx, 152, RULE_statement);
try {
setState(1232);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,121,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1229);
labeled_Statement();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1230);
declarationStatement();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1231);
embedded_statement();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class DeclarationStatementContext extends ParserRuleContext {
public Local_variable_declarationContext local_variable_declaration() {
return getRuleContext(Local_variable_declarationContext.class,0);
}
public TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 0); }
public Local_constant_declarationContext local_constant_declaration() {
return getRuleContext(Local_constant_declarationContext.class,0);
}
public Local_function_declarationContext local_function_declaration() {
return getRuleContext(Local_function_declarationContext.class,0);
}
public DeclarationStatementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_declarationStatement; }
@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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitDeclarationStatement(this);
else return visitor.visitChildren(this);
}
}
public final DeclarationStatementContext declarationStatement() throws RecognitionException {
DeclarationStatementContext _localctx = new DeclarationStatementContext(_ctx, getState());
enterRule(_localctx, 154, RULE_declarationStatement);
try {
setState(1241);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,122,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1234);
local_variable_declaration();
setState(1235);
match(SEMICOLON);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1237);
local_constant_declaration();
setState(1238);
match(SEMICOLON);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1240);
local_function_declaration();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Local_function_declarationContext extends ParserRuleContext {
public Local_function_headerContext local_function_header() {
return getRuleContext(Local_function_headerContext.class,0);
}
public Local_function_bodyContext local_function_body() {
return getRuleContext(Local_function_bodyContext.class,0);
}
public Local_function_declarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_local_function_declaration; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLocal_function_declaration(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLocal_function_declaration(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitLocal_function_declaration(this);
else return visitor.visitChildren(this);
}
}
public final Local_function_declarationContext local_function_declaration() throws RecognitionException {
Local_function_declarationContext _localctx = new Local_function_declarationContext(_ctx, getState());
enterRule(_localctx, 156, RULE_local_function_declaration);
try {
enterOuterAlt(_localctx, 1);
{
setState(1243);
local_function_header();
setState(1244);
local_function_body();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Local_function_headerContext extends ParserRuleContext {
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 Local_function_modifiersContext local_function_modifiers() {
return getRuleContext(Local_function_modifiersContext.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 Local_function_headerContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_local_function_header; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLocal_function_header(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLocal_function_header(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitLocal_function_header(this);
else return visitor.visitChildren(this);
}
}
public final Local_function_headerContext local_function_header() throws RecognitionException {
Local_function_headerContext _localctx = new Local_function_headerContext(_ctx, getState());
enterRule(_localctx, 158, RULE_local_function_header);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1247);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,123,_ctx) ) {
case 1:
{
setState(1246);
local_function_modifiers();
}
break;
}
setState(1249);
return_type();
setState(1250);
identifier();
setState(1252);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==LT) {
{
setState(1251);
type_parameter_list();
}
}
setState(1254);
match(OPEN_PARENS);
setState(1256);
_errHandler.sync(this);
_la = _input.LA(1);
if (((((_la - 10)) & ~0x3f) == 0 && ((1L << (_la - 10)) & ((1L << (ADD - 10)) | (1L << (ALIAS - 10)) | (1L << (ARGLIST - 10)) | (1L << (ASCENDING - 10)) | (1L << (ASYNC - 10)) | (1L << (AWAIT - 10)) | (1L << (BOOL - 10)) | (1L << (BY - 10)) | (1L << (BYTE - 10)) | (1L << (CHAR - 10)) | (1L << (DECIMAL - 10)) | (1L << (DESCENDING - 10)) | (1L << (DOUBLE - 10)) | (1L << (DYNAMIC - 10)) | (1L << (EQUALS - 10)) | (1L << (FLOAT - 10)) | (1L << (FROM - 10)) | (1L << (GET - 10)) | (1L << (GROUP - 10)) | (1L << (IN - 10)) | (1L << (INT - 10)) | (1L << (INTO - 10)) | (1L << (JOIN - 10)) | (1L << (LET - 10)) | (1L << (LONG - 10)) | (1L << (NAMEOF - 10)) | (1L << (OBJECT - 10)) | (1L << (ON - 10)) | (1L << (ORDERBY - 10)) | (1L << (OUT - 10)))) != 0) || ((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & ((1L << (PARAMS - 74)) | (1L << (PARTIAL - 74)) | (1L << (REF - 74)) | (1L << (REMOVE - 74)) | (1L << (SBYTE - 74)) | (1L << (SELECT - 74)) | (1L << (SET - 74)) | (1L << (SHORT - 74)) | (1L << (STRING - 74)) | (1L << (THIS - 74)) | (1L << (UINT - 74)) | (1L << (ULONG - 74)) | (1L << (UNMANAGED - 74)) | (1L << (USHORT - 74)) | (1L << (VAR - 74)) | (1L << (VOID - 74)) | (1L << (WHEN - 74)) | (1L << (WHERE - 74)) | (1L << (YIELD - 74)) | (1L << (IDENTIFIER - 74)) | (1L << (OPEN_BRACKET - 74)) | (1L << (OPEN_PARENS - 74)))) != 0)) {
{
setState(1255);
formal_parameter_list();
}
}
setState(1258);
match(CLOSE_PARENS);
setState(1260);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WHERE) {
{
setState(1259);
type_parameter_constraints_clauses();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Local_function_modifiersContext extends ParserRuleContext {
public TerminalNode ASYNC() { return getToken(CSharpParser.ASYNC, 0); }
public TerminalNode UNSAFE() { return getToken(CSharpParser.UNSAFE, 0); }
public TerminalNode STATIC() { return getToken(CSharpParser.STATIC, 0); }
public Local_function_modifiersContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_local_function_modifiers; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLocal_function_modifiers(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLocal_function_modifiers(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitLocal_function_modifiers(this);
else return visitor.visitChildren(this);
}
}
public final Local_function_modifiersContext local_function_modifiers() throws RecognitionException {
Local_function_modifiersContext _localctx = new Local_function_modifiersContext(_ctx, getState());
enterRule(_localctx, 160, RULE_local_function_modifiers);
int _la;
try {
setState(1268);
_errHandler.sync(this);
switch (_input.LA(1)) {
case ASYNC:
case UNSAFE:
enterOuterAlt(_localctx, 1);
{
setState(1262);
_la = _input.LA(1);
if ( !(_la==ASYNC || _la==UNSAFE) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(1264);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==STATIC) {
{
setState(1263);
match(STATIC);
}
}
}
break;
case STATIC:
enterOuterAlt(_localctx, 2);
{
setState(1266);
match(STATIC);
setState(1267);
_la = _input.LA(1);
if ( !(_la==ASYNC || _la==UNSAFE) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
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_function_bodyContext extends ParserRuleContext {
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public Right_arrowContext right_arrow() {
return getRuleContext(Right_arrowContext.class,0);
}
public Throwable_expressionContext throwable_expression() {
return getRuleContext(Throwable_expressionContext.class,0);
}
public TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 0); }
public Local_function_bodyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_local_function_body; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLocal_function_body(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLocal_function_body(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitLocal_function_body(this);
else return visitor.visitChildren(this);
}
}
public final Local_function_bodyContext local_function_body() throws RecognitionException {
Local_function_bodyContext _localctx = new Local_function_bodyContext(_ctx, getState());
enterRule(_localctx, 162, RULE_local_function_body);
try {
setState(1275);
_errHandler.sync(this);
switch (_input.LA(1)) {
case OPEN_BRACE:
enterOuterAlt(_localctx, 1);
{
setState(1270);
block();
}
break;
case ASSIGNMENT:
enterOuterAlt(_localctx, 2);
{
setState(1271);
right_arrow();
setState(1272);
throwable_expression();
setState(1273);
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 Labeled_StatementContext extends ParserRuleContext {
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 Labeled_StatementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_labeled_Statement; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLabeled_Statement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLabeled_Statement(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitLabeled_Statement(this);
else return visitor.visitChildren(this);
}
}
public final Labeled_StatementContext labeled_Statement() throws RecognitionException {
Labeled_StatementContext _localctx = new Labeled_StatementContext(_ctx, getState());
enterRule(_localctx, 164, RULE_labeled_Statement);
try {
enterOuterAlt(_localctx, 1);
{
setState(1277);
identifier();
setState(1278);
match(COLON);
setState(1279);
statement();
}
}
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 166, RULE_embedded_statement);
try {
setState(1283);
_errHandler.sync(this);
switch (_input.LA(1)) {
case OPEN_BRACE:
enterOuterAlt(_localctx, 1);
{
setState(1281);
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 REF:
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 UNMANAGED:
case UNSAFE:
case USHORT:
case USING:
case VAR:
case WHEN:
case WHERE:
case WHILE:
case YIELD:
case IDENTIFIER:
case LITERAL_ACCESS:
case INTEGER_LITERAL:
case HEX_INTEGER_LITERAL:
case BIN_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 CARET:
case BANG:
case TILDE:
case OP_INC:
case OP_DEC:
case OP_RANGE:
enterOuterAlt(_localctx, 2);
{
setState(1282);
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 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitThrowStatement(this);
else return visitor.visitChildren(this);
}
}
public static class TheEmptyStatementContext extends Simple_embedded_statementContext {
public TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 0); }
public TheEmptyStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterTheEmptyStatement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitTheEmptyStatement(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitTheEmptyStatement(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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 List SEMICOLON() { return getTokens(CSharpParser.SEMICOLON); }
public TerminalNode SEMICOLON(int i) {
return getToken(CSharpParser.SEMICOLON, i);
}
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitDoStatement(this);
else return visitor.visitChildren(this);
}
}
public static class ForeachStatementContext extends Simple_embedded_statementContext {
public TerminalNode FOREACH() { return getToken(CSharpParser.FOREACH, 0); }
public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); }
public Local_variable_typeContext local_variable_type() {
return getRuleContext(Local_variable_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 TerminalNode AWAIT() { return getToken(CSharpParser.AWAIT, 0); }
public ForeachStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterForeachStatement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitForeachStatement(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitForeachStatement(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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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 SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 168, RULE_simple_embedded_statement);
int _la;
try {
setState(1415);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,143,_ctx) ) {
case 1:
_localctx = new TheEmptyStatementContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(1285);
match(SEMICOLON);
}
break;
case 2:
_localctx = new ExpressionStatementContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(1286);
expression();
setState(1287);
match(SEMICOLON);
}
break;
case 3:
_localctx = new IfStatementContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(1289);
match(IF);
setState(1290);
match(OPEN_PARENS);
setState(1291);
expression();
setState(1292);
match(CLOSE_PARENS);
setState(1293);
if_body();
setState(1296);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,131,_ctx) ) {
case 1:
{
setState(1294);
match(ELSE);
setState(1295);
if_body();
}
break;
}
}
break;
case 4:
_localctx = new SwitchStatementContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(1298);
match(SWITCH);
setState(1299);
match(OPEN_PARENS);
setState(1300);
expression();
setState(1301);
match(CLOSE_PARENS);
setState(1302);
match(OPEN_BRACE);
setState(1306);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==CASE || _la==DEFAULT) {
{
{
setState(1303);
switch_section();
}
}
setState(1308);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1309);
match(CLOSE_BRACE);
}
break;
case 5:
_localctx = new WhileStatementContext(_localctx);
enterOuterAlt(_localctx, 5);
{
setState(1311);
match(WHILE);
setState(1312);
match(OPEN_PARENS);
setState(1313);
expression();
setState(1314);
match(CLOSE_PARENS);
setState(1315);
embedded_statement();
}
break;
case 6:
_localctx = new DoStatementContext(_localctx);
enterOuterAlt(_localctx, 6);
{
setState(1317);
match(DO);
setState(1318);
embedded_statement();
setState(1319);
match(WHILE);
setState(1320);
match(OPEN_PARENS);
setState(1321);
expression();
setState(1322);
match(CLOSE_PARENS);
setState(1323);
match(SEMICOLON);
}
break;
case 7:
_localctx = new ForStatementContext(_localctx);
enterOuterAlt(_localctx, 7);
{
setState(1325);
match(FOR);
setState(1326);
match(OPEN_PARENS);
setState(1328);
_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 << FIXED) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMEOF - 64)) | (1L << (NEW - 64)) | (1L << (NULL_ - 64)) | (1L << (OBJECT - 64)) | (1L << (ON - 64)) | (1L << (ORDERBY - 64)) | (1L << (PARTIAL - 64)) | (1L << (REF - 64)) | (1L << (REMOVE - 64)) | (1L << (SBYTE - 64)) | (1L << (SELECT - 64)) | (1L << (SET - 64)) | (1L << (SHORT - 64)) | (1L << (SIZEOF - 64)) | (1L << (STRING - 64)) | (1L << (THIS - 64)) | (1L << (TRUE - 64)) | (1L << (TYPEOF - 64)) | (1L << (UINT - 64)) | (1L << (ULONG - 64)) | (1L << (UNCHECKED - 64)) | (1L << (UNMANAGED - 64)) | (1L << (USHORT - 64)) | (1L << (USING - 64)) | (1L << (VAR - 64)) | (1L << (VOID - 64)) | (1L << (WHEN - 64)) | (1L << (WHERE - 64)) | (1L << (YIELD - 64)) | (1L << (IDENTIFIER - 64)) | (1L << (LITERAL_ACCESS - 64)) | (1L << (INTEGER_LITERAL - 64)) | (1L << (HEX_INTEGER_LITERAL - 64)) | (1L << (BIN_INTEGER_LITERAL - 64)) | (1L << (REAL_LITERAL - 64)) | (1L << (CHARACTER_LITERAL - 64)) | (1L << (REGULAR_STRING - 64)) | (1L << (VERBATIUM_STRING - 64)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 64)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (OPEN_PARENS - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (STAR - 129)) | (1L << (AMP - 129)) | (1L << (CARET - 129)) | (1L << (BANG - 129)) | (1L << (TILDE - 129)) | (1L << (OP_INC - 129)) | (1L << (OP_DEC - 129)) | (1L << (OP_RANGE - 129)))) != 0)) {
{
setState(1327);
for_initializer();
}
}
setState(1330);
match(SEMICOLON);
setState(1332);
_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))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMEOF - 64)) | (1L << (NEW - 64)) | (1L << (NULL_ - 64)) | (1L << (OBJECT - 64)) | (1L << (ON - 64)) | (1L << (ORDERBY - 64)) | (1L << (PARTIAL - 64)) | (1L << (REF - 64)) | (1L << (REMOVE - 64)) | (1L << (SBYTE - 64)) | (1L << (SELECT - 64)) | (1L << (SET - 64)) | (1L << (SHORT - 64)) | (1L << (SIZEOF - 64)) | (1L << (STRING - 64)) | (1L << (THIS - 64)) | (1L << (TRUE - 64)) | (1L << (TYPEOF - 64)) | (1L << (UINT - 64)) | (1L << (ULONG - 64)) | (1L << (UNCHECKED - 64)) | (1L << (UNMANAGED - 64)) | (1L << (USHORT - 64)) | (1L << (VAR - 64)) | (1L << (WHEN - 64)) | (1L << (WHERE - 64)) | (1L << (YIELD - 64)) | (1L << (IDENTIFIER - 64)) | (1L << (LITERAL_ACCESS - 64)) | (1L << (INTEGER_LITERAL - 64)) | (1L << (HEX_INTEGER_LITERAL - 64)) | (1L << (BIN_INTEGER_LITERAL - 64)) | (1L << (REAL_LITERAL - 64)) | (1L << (CHARACTER_LITERAL - 64)) | (1L << (REGULAR_STRING - 64)) | (1L << (VERBATIUM_STRING - 64)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 64)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (OPEN_PARENS - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (STAR - 129)) | (1L << (AMP - 129)) | (1L << (CARET - 129)) | (1L << (BANG - 129)) | (1L << (TILDE - 129)) | (1L << (OP_INC - 129)) | (1L << (OP_DEC - 129)) | (1L << (OP_RANGE - 129)))) != 0)) {
{
setState(1331);
expression();
}
}
setState(1334);
match(SEMICOLON);
setState(1336);
_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))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMEOF - 64)) | (1L << (NEW - 64)) | (1L << (NULL_ - 64)) | (1L << (OBJECT - 64)) | (1L << (ON - 64)) | (1L << (ORDERBY - 64)) | (1L << (PARTIAL - 64)) | (1L << (REF - 64)) | (1L << (REMOVE - 64)) | (1L << (SBYTE - 64)) | (1L << (SELECT - 64)) | (1L << (SET - 64)) | (1L << (SHORT - 64)) | (1L << (SIZEOF - 64)) | (1L << (STRING - 64)) | (1L << (THIS - 64)) | (1L << (TRUE - 64)) | (1L << (TYPEOF - 64)) | (1L << (UINT - 64)) | (1L << (ULONG - 64)) | (1L << (UNCHECKED - 64)) | (1L << (UNMANAGED - 64)) | (1L << (USHORT - 64)) | (1L << (VAR - 64)) | (1L << (WHEN - 64)) | (1L << (WHERE - 64)) | (1L << (YIELD - 64)) | (1L << (IDENTIFIER - 64)) | (1L << (LITERAL_ACCESS - 64)) | (1L << (INTEGER_LITERAL - 64)) | (1L << (HEX_INTEGER_LITERAL - 64)) | (1L << (BIN_INTEGER_LITERAL - 64)) | (1L << (REAL_LITERAL - 64)) | (1L << (CHARACTER_LITERAL - 64)) | (1L << (REGULAR_STRING - 64)) | (1L << (VERBATIUM_STRING - 64)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 64)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (OPEN_PARENS - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (STAR - 129)) | (1L << (AMP - 129)) | (1L << (CARET - 129)) | (1L << (BANG - 129)) | (1L << (TILDE - 129)) | (1L << (OP_INC - 129)) | (1L << (OP_DEC - 129)) | (1L << (OP_RANGE - 129)))) != 0)) {
{
setState(1335);
for_iterator();
}
}
setState(1338);
match(CLOSE_PARENS);
setState(1339);
embedded_statement();
}
break;
case 8:
_localctx = new ForeachStatementContext(_localctx);
enterOuterAlt(_localctx, 8);
{
setState(1341);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AWAIT) {
{
setState(1340);
match(AWAIT);
}
}
setState(1343);
match(FOREACH);
setState(1344);
match(OPEN_PARENS);
setState(1345);
local_variable_type();
setState(1346);
identifier();
setState(1347);
match(IN);
setState(1348);
expression();
setState(1349);
match(CLOSE_PARENS);
setState(1350);
embedded_statement();
}
break;
case 9:
_localctx = new BreakStatementContext(_localctx);
enterOuterAlt(_localctx, 9);
{
setState(1352);
match(BREAK);
setState(1353);
match(SEMICOLON);
}
break;
case 10:
_localctx = new ContinueStatementContext(_localctx);
enterOuterAlt(_localctx, 10);
{
setState(1354);
match(CONTINUE);
setState(1355);
match(SEMICOLON);
}
break;
case 11:
_localctx = new GotoStatementContext(_localctx);
enterOuterAlt(_localctx, 11);
{
setState(1356);
match(GOTO);
setState(1361);
_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 UNMANAGED:
case VAR:
case WHEN:
case WHERE:
case YIELD:
case IDENTIFIER:
{
setState(1357);
identifier();
}
break;
case CASE:
{
setState(1358);
match(CASE);
setState(1359);
expression();
}
break;
case DEFAULT:
{
setState(1360);
match(DEFAULT);
}
break;
default:
throw new NoViableAltException(this);
}
setState(1363);
match(SEMICOLON);
}
break;
case 12:
_localctx = new ReturnStatementContext(_localctx);
enterOuterAlt(_localctx, 12);
{
setState(1364);
match(RETURN);
setState(1366);
_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))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMEOF - 64)) | (1L << (NEW - 64)) | (1L << (NULL_ - 64)) | (1L << (OBJECT - 64)) | (1L << (ON - 64)) | (1L << (ORDERBY - 64)) | (1L << (PARTIAL - 64)) | (1L << (REF - 64)) | (1L << (REMOVE - 64)) | (1L << (SBYTE - 64)) | (1L << (SELECT - 64)) | (1L << (SET - 64)) | (1L << (SHORT - 64)) | (1L << (SIZEOF - 64)) | (1L << (STRING - 64)) | (1L << (THIS - 64)) | (1L << (TRUE - 64)) | (1L << (TYPEOF - 64)) | (1L << (UINT - 64)) | (1L << (ULONG - 64)) | (1L << (UNCHECKED - 64)) | (1L << (UNMANAGED - 64)) | (1L << (USHORT - 64)) | (1L << (VAR - 64)) | (1L << (WHEN - 64)) | (1L << (WHERE - 64)) | (1L << (YIELD - 64)) | (1L << (IDENTIFIER - 64)) | (1L << (LITERAL_ACCESS - 64)) | (1L << (INTEGER_LITERAL - 64)) | (1L << (HEX_INTEGER_LITERAL - 64)) | (1L << (BIN_INTEGER_LITERAL - 64)) | (1L << (REAL_LITERAL - 64)) | (1L << (CHARACTER_LITERAL - 64)) | (1L << (REGULAR_STRING - 64)) | (1L << (VERBATIUM_STRING - 64)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 64)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (OPEN_PARENS - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (STAR - 129)) | (1L << (AMP - 129)) | (1L << (CARET - 129)) | (1L << (BANG - 129)) | (1L << (TILDE - 129)) | (1L << (OP_INC - 129)) | (1L << (OP_DEC - 129)) | (1L << (OP_RANGE - 129)))) != 0)) {
{
setState(1365);
expression();
}
}
setState(1368);
match(SEMICOLON);
}
break;
case 13:
_localctx = new ThrowStatementContext(_localctx);
enterOuterAlt(_localctx, 13);
{
setState(1369);
match(THROW);
setState(1371);
_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))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMEOF - 64)) | (1L << (NEW - 64)) | (1L << (NULL_ - 64)) | (1L << (OBJECT - 64)) | (1L << (ON - 64)) | (1L << (ORDERBY - 64)) | (1L << (PARTIAL - 64)) | (1L << (REF - 64)) | (1L << (REMOVE - 64)) | (1L << (SBYTE - 64)) | (1L << (SELECT - 64)) | (1L << (SET - 64)) | (1L << (SHORT - 64)) | (1L << (SIZEOF - 64)) | (1L << (STRING - 64)) | (1L << (THIS - 64)) | (1L << (TRUE - 64)) | (1L << (TYPEOF - 64)) | (1L << (UINT - 64)) | (1L << (ULONG - 64)) | (1L << (UNCHECKED - 64)) | (1L << (UNMANAGED - 64)) | (1L << (USHORT - 64)) | (1L << (VAR - 64)) | (1L << (WHEN - 64)) | (1L << (WHERE - 64)) | (1L << (YIELD - 64)) | (1L << (IDENTIFIER - 64)) | (1L << (LITERAL_ACCESS - 64)) | (1L << (INTEGER_LITERAL - 64)) | (1L << (HEX_INTEGER_LITERAL - 64)) | (1L << (BIN_INTEGER_LITERAL - 64)) | (1L << (REAL_LITERAL - 64)) | (1L << (CHARACTER_LITERAL - 64)) | (1L << (REGULAR_STRING - 64)) | (1L << (VERBATIUM_STRING - 64)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 64)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (OPEN_PARENS - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (STAR - 129)) | (1L << (AMP - 129)) | (1L << (CARET - 129)) | (1L << (BANG - 129)) | (1L << (TILDE - 129)) | (1L << (OP_INC - 129)) | (1L << (OP_DEC - 129)) | (1L << (OP_RANGE - 129)))) != 0)) {
{
setState(1370);
expression();
}
}
setState(1373);
match(SEMICOLON);
}
break;
case 14:
_localctx = new TryStatementContext(_localctx);
enterOuterAlt(_localctx, 14);
{
setState(1374);
match(TRY);
setState(1375);
block();
setState(1381);
_errHandler.sync(this);
switch (_input.LA(1)) {
case CATCH:
{
setState(1376);
catch_clauses();
setState(1378);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==FINALLY) {
{
setState(1377);
finally_clause();
}
}
}
break;
case FINALLY:
{
setState(1380);
finally_clause();
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
case 15:
_localctx = new CheckedStatementContext(_localctx);
enterOuterAlt(_localctx, 15);
{
setState(1383);
match(CHECKED);
setState(1384);
block();
}
break;
case 16:
_localctx = new UncheckedStatementContext(_localctx);
enterOuterAlt(_localctx, 16);
{
setState(1385);
match(UNCHECKED);
setState(1386);
block();
}
break;
case 17:
_localctx = new LockStatementContext(_localctx);
enterOuterAlt(_localctx, 17);
{
setState(1387);
match(LOCK);
setState(1388);
match(OPEN_PARENS);
setState(1389);
expression();
setState(1390);
match(CLOSE_PARENS);
setState(1391);
embedded_statement();
}
break;
case 18:
_localctx = new UsingStatementContext(_localctx);
enterOuterAlt(_localctx, 18);
{
setState(1393);
match(USING);
setState(1394);
match(OPEN_PARENS);
setState(1395);
resource_acquisition();
setState(1396);
match(CLOSE_PARENS);
setState(1397);
embedded_statement();
}
break;
case 19:
_localctx = new YieldStatementContext(_localctx);
enterOuterAlt(_localctx, 19);
{
setState(1399);
match(YIELD);
setState(1403);
_errHandler.sync(this);
switch (_input.LA(1)) {
case RETURN:
{
setState(1400);
match(RETURN);
setState(1401);
expression();
}
break;
case BREAK:
{
setState(1402);
match(BREAK);
}
break;
default:
throw new NoViableAltException(this);
}
setState(1405);
match(SEMICOLON);
}
break;
case 20:
_localctx = new UnsafeStatementContext(_localctx);
enterOuterAlt(_localctx, 20);
{
setState(1406);
match(UNSAFE);
setState(1407);
block();
}
break;
case 21:
_localctx = new FixedStatementContext(_localctx);
enterOuterAlt(_localctx, 21);
{
setState(1408);
match(FIXED);
setState(1409);
match(OPEN_PARENS);
setState(1410);
pointer_type();
setState(1411);
fixed_pointer_declarators();
setState(1412);
match(CLOSE_PARENS);
setState(1413);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitBlock(this);
else return visitor.visitChildren(this);
}
}
public final BlockContext block() throws RecognitionException {
BlockContext _localctx = new BlockContext(_ctx, getState());
enterRule(_localctx, 170, RULE_block);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1417);
match(OPEN_BRACE);
setState(1419);
_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))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMEOF - 64)) | (1L << (NEW - 64)) | (1L << (NULL_ - 64)) | (1L << (OBJECT - 64)) | (1L << (ON - 64)) | (1L << (ORDERBY - 64)) | (1L << (PARTIAL - 64)) | (1L << (REF - 64)) | (1L << (REMOVE - 64)) | (1L << (RETURN - 64)) | (1L << (SBYTE - 64)) | (1L << (SELECT - 64)) | (1L << (SET - 64)) | (1L << (SHORT - 64)) | (1L << (SIZEOF - 64)) | (1L << (STATIC - 64)) | (1L << (STRING - 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 << (UNMANAGED - 64)) | (1L << (UNSAFE - 64)) | (1L << (USHORT - 64)) | (1L << (USING - 64)) | (1L << (VAR - 64)) | (1L << (VOID - 64)) | (1L << (WHEN - 64)) | (1L << (WHERE - 64)) | (1L << (WHILE - 64)) | (1L << (YIELD - 64)) | (1L << (IDENTIFIER - 64)) | (1L << (LITERAL_ACCESS - 64)) | (1L << (INTEGER_LITERAL - 64)) | (1L << (HEX_INTEGER_LITERAL - 64)) | (1L << (BIN_INTEGER_LITERAL - 64)) | (1L << (REAL_LITERAL - 64)) | (1L << (CHARACTER_LITERAL - 64)) | (1L << (REGULAR_STRING - 64)) | (1L << (VERBATIUM_STRING - 64)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 64)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 64)) | (1L << (OPEN_BRACE - 64)))) != 0) || ((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & ((1L << (OPEN_PARENS - 129)) | (1L << (SEMICOLON - 129)) | (1L << (PLUS - 129)) | (1L << (MINUS - 129)) | (1L << (STAR - 129)) | (1L << (AMP - 129)) | (1L << (CARET - 129)) | (1L << (BANG - 129)) | (1L << (TILDE - 129)) | (1L << (OP_INC - 129)) | (1L << (OP_DEC - 129)) | (1L << (OP_RANGE - 129)))) != 0)) {
{
setState(1418);
statement_list();
}
}
setState(1421);
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 Local_variable_typeContext local_variable_type() {
return getRuleContext(Local_variable_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 TerminalNode USING() { return getToken(CSharpParser.USING, 0); }
public TerminalNode REF() { return getToken(CSharpParser.REF, 0); }
public TerminalNode READONLY() { return getToken(CSharpParser.READONLY, 0); }
public List COMMA() { return getTokens(CSharpParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(CSharpParser.COMMA, i);
}
public TerminalNode FIXED() { return getToken(CSharpParser.FIXED, 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 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 172, RULE_local_variable_declaration);
int _la;
try {
setState(1444);
_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 REF:
case REMOVE:
case SBYTE:
case SELECT:
case SET:
case SHORT:
case STRING:
case UINT:
case ULONG:
case UNMANAGED:
case USHORT:
case USING:
case VAR:
case VOID:
case WHEN:
case WHERE:
case YIELD:
case IDENTIFIER:
case OPEN_PARENS:
enterOuterAlt(_localctx, 1);
{
setState(1427);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,145,_ctx) ) {
case 1:
{
setState(1423);
match(USING);
}
break;
case 2:
{
setState(1424);
match(REF);
}
break;
case 3:
{
setState(1425);
match(REF);
setState(1426);
match(READONLY);
}
break;
}
setState(1429);
local_variable_type();
setState(1430);
local_variable_declarator();
setState(1437);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1431);
match(COMMA);
setState(1432);
local_variable_declarator();
setState(1433);
if (!( this.IsLocalVariableDeclaration() )) throw new FailedPredicateException(this, " this.IsLocalVariableDeclaration() ");
}
}
setState(1439);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
break;
case FIXED:
enterOuterAlt(_localctx, 2);
{
setState(1440);
match(FIXED);
setState(1441);
pointer_type();
setState(1442);
fixed_pointer_declarators();
}
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_variable_typeContext extends ParserRuleContext {
public TerminalNode VAR() { return getToken(CSharpParser.VAR, 0); }
public Type_Context type_() {
return getRuleContext(Type_Context.class,0);
}
public Local_variable_typeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_local_variable_type; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLocal_variable_type(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLocal_variable_type(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitLocal_variable_type(this);
else return visitor.visitChildren(this);
}
}
public final Local_variable_typeContext local_variable_type() throws RecognitionException {
Local_variable_typeContext _localctx = new Local_variable_typeContext(_ctx, getState());
enterRule(_localctx, 174, RULE_local_variable_type);
try {
setState(1448);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,148,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1446);
match(VAR);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1447);
type_();
}
break;
}
}
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 TerminalNode REF() { return getToken(CSharpParser.REF, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 176, RULE_local_variable_declarator);
try {
enterOuterAlt(_localctx, 1);
{
setState(1450);
identifier();
setState(1456);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,150,_ctx) ) {
case 1:
{
setState(1451);
match(ASSIGNMENT);
setState(1453);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,149,_ctx) ) {
case 1:
{
setState(1452);
match(REF);
}
break;
}
setState(1455);
local_variable_initializer();
}
break;
}
}
}
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 Stackalloc_initializerContext stackalloc_initializer() {
return getRuleContext(Stackalloc_initializerContext.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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 178, RULE_local_variable_initializer);
try {
setState(1461);
_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 REF:
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 UNMANAGED:
case USHORT:
case VAR:
case WHEN:
case WHERE:
case YIELD:
case IDENTIFIER:
case LITERAL_ACCESS:
case INTEGER_LITERAL:
case HEX_INTEGER_LITERAL:
case BIN_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 CARET:
case BANG:
case TILDE:
case OP_INC:
case OP_DEC:
case OP_RANGE:
enterOuterAlt(_localctx, 1);
{
setState(1458);
expression();
}
break;
case OPEN_BRACE:
enterOuterAlt(_localctx, 2);
{
setState(1459);
array_initializer();
}
break;
case STACKALLOC:
enterOuterAlt(_localctx, 3);
{
setState(1460);
stackalloc_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 Local_constant_declarationContext extends ParserRuleContext {
public TerminalNode CONST() { return getToken(CSharpParser.CONST, 0); }
public Type_Context type_() {
return getRuleContext(Type_Context.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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 180, RULE_local_constant_declaration);
try {
enterOuterAlt(_localctx, 1);
{
setState(1463);
match(CONST);
setState(1464);
type_();
setState(1465);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 182, RULE_if_body);
try {
setState(1469);
_errHandler.sync(this);
switch (_input.LA(1)) {
case OPEN_BRACE:
enterOuterAlt(_localctx, 1);
{
setState(1467);
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 REF:
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 UNMANAGED:
case UNSAFE:
case USHORT:
case USING:
case VAR:
case WHEN:
case WHERE:
case WHILE:
case YIELD:
case IDENTIFIER:
case LITERAL_ACCESS:
case INTEGER_LITERAL:
case HEX_INTEGER_LITERAL:
case BIN_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 CARET:
case BANG:
case TILDE:
case OP_INC:
case OP_DEC:
case OP_RANGE:
enterOuterAlt(_localctx, 2);
{
setState(1468);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 184, RULE_switch_section);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1472);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(1471);
switch_label();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1474);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,153,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
setState(1476);
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 Case_guardContext case_guard() {
return getRuleContext(Case_guardContext.class,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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 186, RULE_switch_label);
int _la;
try {
setState(1487);
_errHandler.sync(this);
switch (_input.LA(1)) {
case CASE:
enterOuterAlt(_localctx, 1);
{
setState(1478);
match(CASE);
setState(1479);
expression();
setState(1481);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WHEN) {
{
setState(1480);
case_guard();
}
}
setState(1483);
match(COLON);
}
break;
case DEFAULT:
enterOuterAlt(_localctx, 2);
{
setState(1485);
match(DEFAULT);
setState(1486);
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 Case_guardContext extends ParserRuleContext {
public TerminalNode WHEN() { return getToken(CSharpParser.WHEN, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Case_guardContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_case_guard; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterCase_guard(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitCase_guard(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)visitor).visitCase_guard(this);
else return visitor.visitChildren(this);
}
}
public final Case_guardContext case_guard() throws RecognitionException {
Case_guardContext _localctx = new Case_guardContext(_ctx, getState());
enterRule(_localctx, 188, RULE_case_guard);
try {
enterOuterAlt(_localctx, 1);
{
setState(1489);
match(WHEN);
setState(1490);
expression();
}
}
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 190, RULE_statement_list);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1493);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(1492);
statement();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1495);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,156,_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 192, RULE_for_initializer);
int _la;
try {
setState(1506);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1497);
local_variable_declaration();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1498);
expression();
setState(1503);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1499);
match(COMMA);
setState(1500);
expression();
}
}
setState(1505);
_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 194, RULE_for_iterator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1508);
expression();
setState(1513);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1509);
match(COMMA);
setState(1510);
expression();
}
}
setState(1515);
_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 196, RULE_catch_clauses);
int _la;
try {
int _alt;
setState(1527);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1516);
specific_catch_clause();
setState(1520);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,160,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1517);
specific_catch_clause();
}
}
}
setState(1522);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,160,_ctx);
}
setState(1524);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==CATCH) {
{
setState(1523);
general_catch_clause();
}
}
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1526);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 198, RULE_specific_catch_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1529);
match(CATCH);
setState(1530);
match(OPEN_PARENS);
setState(1531);
class_type();
setState(1533);
_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))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMEOF - 64)) | (1L << (ON - 64)) | (1L << (ORDERBY - 64)) | (1L << (PARTIAL - 64)) | (1L << (REMOVE - 64)) | (1L << (SELECT - 64)) | (1L << (SET - 64)) | (1L << (UNMANAGED - 64)) | (1L << (VAR - 64)) | (1L << (WHEN - 64)) | (1L << (WHERE - 64)) | (1L << (YIELD - 64)) | (1L << (IDENTIFIER - 64)))) != 0)) {
{
setState(1532);
identifier();
}
}
setState(1535);
match(CLOSE_PARENS);
setState(1537);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WHEN) {
{
setState(1536);
exception_filter();
}
}
setState(1539);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 200, RULE_general_catch_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1541);
match(CATCH);
setState(1543);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==WHEN) {
{
setState(1542);
exception_filter();
}
}
setState(1545);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 202, RULE_exception_filter);
try {
enterOuterAlt(_localctx, 1);
{
setState(1547);
match(WHEN);
setState(1548);
match(OPEN_PARENS);
setState(1549);
expression();
setState(1550);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 204, RULE_finally_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(1552);
match(FINALLY);
setState(1553);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 206, RULE_resource_acquisition);
try {
setState(1557);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,166,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1555);
local_variable_declaration();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1556);
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 Qualified_identifierContext qualified_identifier() {
return getRuleContext(Qualified_identifierContext.class,0);
}
public Namespace_bodyContext namespace_body() {
return getRuleContext(Namespace_bodyContext.class,0);
}
public TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 208, RULE_namespace_declaration);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1559);
match(NAMESPACE);
setState(1560);
((Namespace_declarationContext)_localctx).qi = qualified_identifier();
setState(1562);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==OPEN_BRACE) {
{
setState(1561);
namespace_body();
}
}
setState(1565);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(1564);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 210, RULE_qualified_identifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1567);
identifier();
setState(1572);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==DOT) {
{
{
setState(1568);
match(DOT);
setState(1569);
identifier();
}
}
setState(1574);
_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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 212, RULE_namespace_body);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1575);
match(OPEN_BRACE);
setState(1577);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) {
case 1:
{
setState(1576);
extern_alias_directives();
}
break;
}
setState(1580);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==USING) {
{
setState(1579);
using_directives();
}
}
setState(1583);
_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 - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NAMESPACE - 65)) | (1L << (NEW - 65)) | (1L << (OVERRIDE - 65)) | (1L << (PARTIAL - 65)) | (1L << (PRIVATE - 65)) | (1L << (PROTECTED - 65)) | (1L << (PUBLIC - 65)) | (1L << (READONLY - 65)) | (1L << (REF - 65)) | (1L << (SEALED - 65)) | (1L << (STATIC - 65)) | (1L << (STRUCT - 65)) | (1L << (UNSAFE - 65)) | (1L << (VIRTUAL - 65)) | (1L << (VOLATILE - 65)) | (1L << (OPEN_BRACKET - 65)))) != 0)) {
{
setState(1582);
namespace_member_declarations();
}
}
setState(1585);
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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 214, RULE_extern_alias_directives);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1588);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(1587);
extern_alias_directive();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1590);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,173,_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 TerminalNode SEMICOLON() { return getToken(CSharpParser.SEMICOLON, 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 extends T> visitor) {
if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor extends T>)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, 216, RULE_extern_alias_directive);
try {
enterOuterAlt(_localctx, 1);
{
setState(1592);
match(EXTERN);
setState(1593);
match(ALIAS);
setState(1594);
identifier();
setState(1595);
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