EBNF Syntax: C# 1.0/2.0/3.0/4.0/5.0

Syntax Productions
Variants
Terminals
Literals
Production Cross Reference
Lookahead-1 Parser First Token
Lookahead-1 Parser Ambiguities

Syntax Productions

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Start Symbol (c_sharp)

Name Production
accessor_body
accessor_declaraions
accessor_modifier
accessor_prefix [ attributes ] [ accessor_modifier ](C# 2.0 up)
add_accessor_declaration [ attributes ] "add" block
additive_expression multiplicative_expression { ( "+" | "-" ) multiplicative_expression }
addressof_expression ( "&" unary_expression )(unsafe)
and_expression equality_expression { "&" equality_expression }
anonymous_method_body
anonymous_method_expression ( [ "async" ](C# 5.0 up) "delegate" [ explicit_anonymous_method_signature ] block )(C# 2.0 up)
anonymous_method_signature
anonymous_object_creation_expression ( "new" anonymous_object_initializer )(C# 3.0 up)
anonymous_object_initializer ( "{" [ member_declarator_list [ "," ] ] "}" )(C# 3.0 up)
argument [ argument_name ](C# 4.0 up)(#3) argument_value(#3)
argument_list argument { "," argument }
argument_name identifier ":"
argument_value
array_creation_expression
array_initializer "{" [ variable_initializer_list [ "," ] ] "}"
array_type non_array_type rank_specifier { rank_specifier }
assignment unary_expression assignment_operator expression
assignment_operator
asterisks "*" { "*" }
attribute attribute_name [ attribute_arguments ]
attribute_argument_list
attribute_arguments "(" attribute_argument_list ")"
attribute_list attribute { "," attribute }
attribute_name type_name
attribute_section "[" [ attribute_target_specifier ] attribute_list [ "," ] "]"
attribute_target
  • "field"
  • "event"
  • "method"
  • "module"(C# 1.0 to 4.0)
  • "param"
  • "property"
  • "return"
  • "type"
attribute_target_specifier attribute_target ":"
attributes attribute_section { attribute_section }
available_identifier ANY_IDENTIFIER_EXCEPT_keyword
await_expression ( "await" unary_expression )(C# 5.0 up)
base_access "base" base_access_suffix
base_access_element_list
base_access_suffix
binary_operator_declarator type "operator" overloadable_binary_operator "(" type identifier "," type identifier ")"
block "{" { statement } "}"
boolean_literal
  • "true"
  • "false"
break_statement "break" ";"
buffer_element_type type(unsafe)(C# 5.0 up)
c_sharp
cast_expression "(" type ")" unary_expression
catch_clauses
character
character_literal "'" character "'"
checked_expression "checked" "(" expression ")"
checked_statement "checked" block
class_base
class_body "{" { class_member_declaration } "}"
class_declaration class_prefix "class" identifier class_suffix class_body [ ";" ]
class_member_declaration
class_modifier
  • "new"
  • "public"
  • "protected"
  • "internal"
  • "private"
  • "abstract"
  • "sealed"
  • "static"(C# 2.0 up)
  • "unsafe"(unsafe)
class_prefix [ attributes ] { class_modifier } [ "partial" ](C# 2.0 up)
class_suffix [ type_parameter_list ](C# 2.0 up) [ class_base ] [ type_parameter_constraints_clauses ](C# 2.0 up)
class_type
collection_initializer "{" element_initializer_list [ "," ] "}"
combining_character
  • ANY_UNICODE_Mn_Mc
  • ANY_uXXXX_Mn_Mc
  • ANY_UXXXXXXXX_Mn_Mc
comment
compilation_unit [ extern_alias_directives ](C# 2.0 up) [ using_directives ] [ global_attributes ](#24) [ namespace_member_declarations ](#24)
conditional_and_expression inclusive_or_expression { "&&" inclusive_or_expression }
conditional_expression null_coalescing_expression [ "?" expression ":" expression ]
conditional_or_expression conditional_and_expression { "||" conditional_and_expression }
conditional_section
conditional_symbol
connecting_character
  • ANY_UNICODE_Pc
  • ANY_uXXXX_Pc
  • ANY_UXXXXXXXX_Pc
constant_declaration constant_prefix "const" type constant_declarators ";"
constant_declarator identifier "=" constant_expression
constant_declarators constant_declarator { "," constant_declarator }
constant_modifier
  • "new"
  • "public"
  • "protected"
  • "internal"
  • "private"
constant_prefix [ attributes ] { constant_modifier }
constructor_body
constructor_constraint ( "new" "(" ")" )(C# 2.0 up)
constructor_declaration constructor_prefix constructor_declatator constructor_body
constructor_declatator identifier "(" [ formal_parameter_list ] ")" [ constructor_initializer ]
constructor_initializer
constructor_modifier
  • "public"
  • "protected"
  • "internal"
  • "private"
  • "extern"
  • "unsafe"(unsafe)
constructor_prefix [ attributes ] { constructor_modifier }
continue_statement "continue" ";"
conversion_operator_declarator
decimal_digit
  • "0"
  • "1"
  • "2"
  • "3"
  • "4"
  • "5"
  • "6"
  • "7"
  • "8"
  • "9"
decimal_digit_character
  • ANY_UNICODE_Nd
  • ANY_uXXXX_Nd
  • ANY_UXXXXXXXX_Nd
decimal_digits decimal_digit { decimal_digit }
decimal_integer_literal decimal_digits [ integer_type_suffix ]
declaration_statement
default_argument "=" expression
default_value_expression "default" "(" type ")"
delegate_creation_expression "new" delegate_type "(" expression ")"
delegate_declaration delegate_prefix "delegate" return_type identifier delegate_suffix ";"
delegate_modifier
  • "new"
  • "public"
  • "protected"
  • "internal"
  • "private"
  • "unsafe"(unsafe)
delegate_prefix [ attributes ] { delegate_modifier }
delegate_suffix [ variant_type_parameter_list ](C# 2.0 up) "(" [ formal_parameter_list ] ")" [ type_parameter_constraints_clauses ](C# 2.0 up)
delegate_type type_name
delimited_comment "/*" { delimited_comment_section } asterisks "/"
delimited_comment_section
destructor_body
destructor_declaration ( destructor_prefix "~" identifier "(" ")" destructor_body )(C# 5.0 up)
destructor_modifier
destructor_prefix [ attributes ](C# 5.0 up) { destructor_modifier }(C# 5.0 up)
do_statement "do" embedded_statement "while" "(" boolean_expression ")" ";"
element_access primary_no_array_creation_expression "[" expression_list "]"
element_initializer
element_initializer_list element_initializer { "," element_initializer }
embedded_statement
empty_statement ";"
enum_base integral_type
enum_body "{" [ enum_member_declarations [ "," ] ] "}"
enum_declaration enum_prefix "enum" identifier enum_suffix enum_body [ ";" ]
enum_member_declaration [ attributes ] identifier [ "=" constant_expression ]
enum_member_declarations enum_member_declaration { "," enum_member_declaration }
enum_modifier
  • "new"
  • "public"
  • "protected"
  • "internal"
  • "private"
enum_prefix [ attributes ] { enum_modifier }
enum_suffix [ ":" enum_base ]
enum_type type_name
equality_expression relational_expression { ( "==" | "!=" ) relational_expression }
event_accessor_declarations
event_declaration event_prefix "event" type event_suffix
event_modifier
  • "new"
  • "public"
  • "protected"
  • "internal"
  • "private"
  • "static"
  • "virtual"
  • "sealed"
  • "override"
  • "abstract"
  • "extern"
  • "unsafe"(unsafe)
event_prefix [ attributes ] { event_modifier }
event_suffix
exclusive_or_expression and_expression { "^" and_expression }
explicit_anonymous_method_parameter ( [ explicit_parameter_modifier ] type identifier )(C# 2.0 up)
explicit_anonymous_method_parameter_list ( explicit_anonymous_method_parameter { "," explicit_anonymous_method_parameter } )(C# 2.0 up)
explicit_anonymous_method_signature ( "(" [ explicit_anonymous_method_parameter_list ] ")" )(C# 2.0 up)
explicit_parameter_modifier
exponent_part ( "e" | "E" ) [ sign ] decimal_digits
expression
expression_list expression { "," expression }
expression_statement statement_expression ";"
extern_alias_directive "extern" "alias" identifier ";"
extern_alias_directives extern_alias_directive { extern_alias_directive }
field_declaration field_prefix type variable_declarators ";"
field_modifier
  • "new"
  • "public"
  • "protected"
  • "internal"
  • "private"
  • "static"
  • "readonly"
  • "volatile"
  • "unsafe"(unsafe)
field_prefix [ attributes ] { field_modifier }
file_name '"' file_name_character { file_name_character } '"'
file_name_character ANY_UNICODE_EXCEPT_u0022_new_line
finalizer_body
finalizer_declaration ( finalizer_prefix "~" identifier "(" ")" finalizer_body )(C# 1.0 to 4.0)
finalizer_modifier
finalizer_prefix [ attributes ](C# 1.0 to 4.0) { finalizer_modifier }(C# 1.0 to 4.0)
finally_clause "finally" block
fixed_parameter parameter_prefix type identifier [ default_argument ](C# 4.0 up)
fixed_pointer_declarator ( identifier "=" fixed_pointer_initializer )(unsafe)
fixed_pointer_declarators ( fixed_pointer_declarator { "," fixed_pointer_declarator } )(unsafe)
fixed_pointer_initializer
fixed_size_buffer_declaration ( [ attributes ] { fixed_size_buffer_modifier } "fixed" buffer_element_type fixed_size_buffer_declarators ";" )(unsafe)(C# 5.0 up)
fixed_size_buffer_declarator ( identifier "[" expression "]" )(unsafe)(C# 5.0 up)
fixed_size_buffer_declarators ( fixed_size_buffer_declarator { fixed_size_buffer_declarator } )(unsafe)(C# 5.0 up)
fixed_size_buffer_modifier
fixed_statement ( "fixed" "(" pointer_type fixed_pointer_declarators ")" embedded_statement )(unsafe)
floating_point_type
  • "float"
  • "double"
for_initializer
for_iterator statement_expression_list
for_statement "for" "(" [ for_initializer ] ";" [ boolean_expression ] ";" [ for_iterator ] ")" embedded_statement
foreach_statement "foreach" "(" local_variable_type identifier "in" expression ")" embedded_statement
formal_parameter_list
formatting_character
  • ANY_UNICODE_Cf
  • ANY_uXXXX_Cf
  • ANY_UXXXXXXXX_Cf
from_clause ( "from" [ type ] identifier "in" expression )(C# 3.0 up)
general_catch_clause "catch" block
generic_dimension_specifier "<" { "," } ">"
get_accessor_declaration accessor_prefix "get" accessor_body
global_attribute_section "[" global_attribute_target_specifier attribute_list [ "," ] "]"
global_attribute_target
  • "assembly"
  • "module"
global_attribute_target_specifier global_attribute_target ":"
global_attributes global_attribute_section { global_attribute_section }
goto_label
goto_statement "goto" goto_label ";"
group_clause ( "group" expression "by" expression )(C# 3.0 up)
hex_digit
hex_digits hex_digit { hex_digit }
hexadecimal_escape_sequence "\x" hex_digit [ hex_digit ] [ hex_digit ] [ hex_digit ]
hexadecimal_integer_literal ( "0x" | "0X" ) hex_digits [ integer_type_suffix ]
identifier
identifier_or_keyword identifier_start_character { identifier_part_character }
identifier_part_character
identifier_start_character
if_statement "if" "(" boolean_expression ")" embedded_statement [ "else" embedded_statement ]
implicit_anonymous_method_parameter identifier(C# 2.0 up)
implicit_anonymous_method_parameter_list ( implicit_anonymous_method_parameter { "," implicit_anonymous_method_parameter } )(C# 2.0 up)
implicit_anonymous_method_signature
inclusive_or_expression exclusive_or_expression { "|" exclusive_or_expression }
indexer_declaration indexer_prefix indexer_declarator "{" accessor_declaraions "}"
indexer_declarator type [ interface_type "." ] "this" "[" formal_parameter_list "]"
indexer_modifier
  • "new"
  • "public"
  • "protected"
  • "internal"
  • "private"
  • "virtual"
  • "sealed"
  • "override"
  • "abstract"
  • "extern"
  • "unsafe"(unsafe)
indexer_prefix [ attributes ] { indexer_modifier }
initializer_value
input [ input_section ]
input_character ANY_UNICODE_EXCEPT_new_line
input_element
input_section input_section_part { input_section_part }
input_section_part
integer_literal
integer_type_suffix
  • "u"
  • "U"
  • "l"
  • "L"
  • "ul"
  • "uL"
  • "Ul"
  • "UL"
  • "lu"
  • "lU"
  • "Lu"
  • "LU"
integral_type
  • "sbyte"
  • "byte"
  • "short"
  • "ushort"
  • "int"
  • "uint"
  • "long"
  • "ulong"
  • "char"
intercface_base ":" interface_type_list
interface_accessor
interface_body "{" { interface_member_delcaration } "}"
interface_declaration interface_prefix "interface" identifier interface_suffix interface_body [ ";" ]
interface_event_declaration [ attributes ] [ "new" ] "event" type identifier ";"
interface_get_accessor [ attributes ] "get" ";"
interface_indexer_declaration [ attributes ] [ "new" ] type "this" "[" formal_parameter_list "]" "{" interface_accessor "}"
interface_member_delcaration
interface_method_declaration [ attributes ] [ "new" ] return_type identifier [ type_parameter_list ](C# 2.0 up) "(" [ formal_parameter_list ] ")" [ type_parameter_constraints_clauses ](C# 2.0 up) ";"
interface_modifier
  • "new"
  • "public"
  • "protected"
  • "internal"
  • "private"
  • "unsafe"(unsafe)
interface_prefix [ attributes ] { interface_modifier } [ "partial" ](C# 2.0 up)
interface_property_declaration [ attributes ] [ "new" ] type identifier "{" interface_accessor "}"
interface_set_accessor [ attributes ] "set" ";"
interface_suffix [ variant_type_parameter_list ](C# 2.0 up) [ intercface_base ] [ type_parameter_constraints_clauses ](C# 2.0 up)
interface_type type_name
interface_type_list interface_type { "," interface_type }
invocation_expression primary_expression "(" [ argument_list ] ")"
iteration_statement
join_clause ( "join" [ type ] identifier "in" expression "on" expression "equals" expression )(C# 3.0 up)
join_into_clause ( join_clause "into" identifier )(C# 3.0 up)
jump_statement
keyword
  • "abstract"
  • "as"
  • "base"
  • "bool"
  • "break"
  • "byte"
  • "case"
  • "catch"
  • "char"
  • "checked"
  • "class"
  • "const"
  • "continue"
  • "decimal"
  • "default"
  • "delegate"
  • "do"
  • "double"
  • "dynamic"(C# 4.0 only)
  • "else"
  • "enum"
  • "event"
  • "explicit"
  • "extern"
  • "false"
  • "finally"
  • "fixed"
  • "float"
  • "for"
  • "foreach"
  • "goto"
  • "if"
  • "implicit"
  • "in"
  • "int"
  • "interface"
  • "internal"
  • "is"
  • "lock"
  • "long"
  • "namespace"
  • "new"
  • "null"
  • "object"
  • "operator"
  • "out"
  • "override"
  • "params"
  • "private"
  • "protected"
  • "public"
  • "readonly"
  • "ref"
  • "return"
  • "sbyte"
  • "sealed"
  • "short"
  • "sizeof"
  • "stackalloc"
  • "static"
  • "string"
  • "struct"
  • "switch"
  • "this"
  • "throw"
  • "true"
  • "try"
  • "typeof"
  • "uint"
  • "ulong"
  • "unchecked"
  • "unsafe"
  • "ushort"
  • "using"
  • "virtual"
  • "void"
  • "volatile"
  • "while"
labeled_statement identifier ":" statement
lambda_expression ( [ "async" ](C# 5.0 up) anonymous_method_signature "=>" anonymous_method_body )(C# 3.0 up)
let_clause ( "let" identifier "=" expression )(C# 3.0 up)
letter_character
  • ANY_UNICODE_Lu_Ll_Lt_Lm_Lo_Ni
  • ANY_uXXXX_Lu_Ll_Lt_Lm_Lo_Ni
  • ANY_UXXXXXXXX_Lu_Ll_Lt_Lm_Lo_Ni
lexical_grammar input
line_indicator
literal
local_constant_declaration "const" type constant_declarators
local_variable_declaration local_variable_type local_variable_declarator { "," local_variable_declarator }
local_variable_declarator identifier [ "=" local_variable_initializer ]
local_variable_initializer
local_variable_type
lock_statement "lock" "(" expression ")" embedded_statement
member_access
member_access_prefix
member_access_suffix identifier [ type_argument_list ](C# 2.0 up)
member_declarator
member_declarator_list ( member_declarator { "," member_declarator } )(C# 3.0 up)
member_initializer identifier "=" initializer_value
member_initializer_list member_initializer { "," member_initializer }
member_name [ interface_type "." ](#42) identifier(#42)
method_body
method_declaration method_header method_body
method_header method_prefix return_type member_name [ type_parameter_list ](C# 2.0 up) "(" [ formal_parameter_list ] ")" [ type_parameter_constraints_clauses ](C# 2.0 up)
method_modifier
  • "new"
  • "public"
  • "protected"
  • "internal"
  • "private"
  • "static"
  • "virtual"
  • "sealed"
  • "override"
  • "abstract"
  • "extern"
  • "async"(C# 5.0 up)
  • "unsafe"(unsafe)
method_prefix [ attributes ] { method_modifier } [ "partial" ](C# 3.0 up)
multiplicative_expression unary_expression { ( "*" | "/" | "%" ) unary_expression }
named_argument identifier "=" expression
named_argument_list named_argument { "," named_argument }
namespace_body "{" [ extern_alias_directives ](C# 2.0 up) [ using_directives ] [ namespace_member_declarations ] "}"
namespace_declaration "namespace" qualified_identifier namespace_body [ ";" ]
namespace_member_declaration
namespace_member_declarations namespace_member_declaration { namespace_member_declaration }
namespace_name namespace_or_type_name
namespace_or_type_name namespace_or_type_name_prefix { "." namespace_or_type_name_part }
namespace_or_type_name_part identifier [ type_argument_list ](C# 2.0 up)
namespace_or_type_name_prefix
new_line
  • CR_u000D [ LF_u000A ]
  • LF_u000A
  • NL_u0085
  • LS_u2028
  • PS_u2029
non_array_type
non_assignment_expression
non_asterisk ANY_UNICODE_EXCEPT_u002A
non_nullable_value_type
non_slash ANY_UNICODE_EXCEPT_u002F
not_number_sign ANY_UNICODE_EXCEPT_u0023_new_line
null_coalescing_expression conditional_or_expression [ "??" null_coalescing_expression ](C# 2.0 up)
null_literal "null"
nullable_type ( non_nullable_value_type "?" )(C# 2.0 up)
numeric_type
object_creation_expression
object_initializer "{" [ member_initializer_list [ "," ] ] "}"
object_or_collection_initializer
operator_body
operator_declaration operator_prefix operator_declarator operator_body
operator_declarator
operator_modifier
  • "public"
  • "static"
  • "extern"
  • "unsafe"(unsafe)
operator_or_punctuation
  • "{"
  • "}"
  • "["
  • "]"
  • "("
  • ")"
  • "."
  • ","
  • ":"
  • ";"
  • "+"
  • "-"
  • "*"
  • "/"
  • "%"
  • "&"
  • "|"
  • "^"
  • "!"
  • "~"
  • "="
  • "<"
  • ">"
  • "?"
  • "??"(C# 2.0 up)
  • "::"(C# 2.0 up)
  • "++"
  • "--"
  • "&&"
  • "||"
  • "->"
  • "=="
  • "!="
  • "<="
  • ">="
  • "+="
  • "-="
  • "*="
  • "/="
  • "%="
  • "&="
  • "|="
  • "^="
  • "<<"
  • "<<="
  • "=>"(C# 3.0 up)
operator_prefix [ attributes ] { operator_modifier }
orderby_clause ( "orderby" ordering { "," ordering } )(C# 3.0 up)
ordering ( expression [ ordering_direction ] )(C# 3.0 up)
ordering_direction
overloadable_binary_operator
  • "+"
  • "-"
  • "*"
  • "/"
  • "%"
  • "&"
  • "|"
  • "^"
  • "<<"
  • right_shift(#53)
  • "=="
  • "!="
  • "<"
  • ">"(#53)
  • "<="
  • ">="
overloadable_unary_operator
  • "+"
  • "-"
  • "!"
  • "~"
  • "++"
  • "--"
  • "true"
  • "false"
parameter_array [ attributes ] "params" array_type identifier
parameter_modifier
parameter_prefix [ attributes ] [ parameter_modifier ]
parenthesized_expression "(" expression ")"
pointer_element_expression ( primary_no_array_creation_expression "[" expression "]" )(unsafe)
pointer_indirection_expression ( "*" unary_expression )(unsafe)
pointer_member_expression ( primary_expression "->" identifier [ type_argument_list ](C# 2.0 up) )(unsafe)
pointer_type
positional_argument ( [ argument_name ](#55) expression(#55) )(C# 5.0 up)
positional_argument_list
post_decrement_expression primary_expression "--"
post_increment_expression primary_expression "++"
pp_and_expression pp_equality_expression { ws_opt "&&" ws_opt pp_equality_expression }
pp_conditional pp_if_section { pp_elif_section } [ pp_else_section ] pp_endif
pp_declaration ws_opt "#" ws_opt ( "define" | "undef" ) ws conditional_symbol pp_new_line
pp_diagnostic ws_opt "#" ws_opt ( "error" | "warning" ) pp_message
pp_directive
pp_elif_section ws_opt "#" ws_opt "elif" ws pp_expression pp_new_line conditional_section
pp_else_section ws_opt "#" ws_opt "else" pp_new_line conditional_section
pp_end_region ws_opt "#" ws_opt "endregion" pp_message
pp_endif ws_opt "#" ws_opt "endif" pp_new_line
pp_equality_expression pp_unnary_expression { ws_opt ( "==" | "!=" ) ws_opt pp_unnary_expression }
pp_expression ws_opt pp_or_expression ws_opt
pp_if_section ws_opt "#" ws_opt "if" ws pp_expression pp_new_line conditional_section
pp_line ws_opt "#" ws_opt "line" ws line_indicator pp_new_line
pp_message [ ws { input_character } ] new_line
pp_new_line ws_opt [ single_line_comment ] new_line
pp_or_expression pp_and_expression { ws_opt "||" ws_opt pp_and_expression }
pp_pragma ( ws_opt "#" ws_opt "pragma" pp_pragma_body pp_new_line )(C# 2.0 up)
pp_pragma_body
pp_pragma_text [ ws { input_character } ]
pp_pragma_warning_action
  • "disable"
  • "restore"
pp_pragma_warning_body "warning" ws pp_pragma_warning_action [ ws pp_pragma_warning_list ]
pp_pragma_warning_list decimal_digits { ws_opt "," ws_opt decimal_digits }
pp_primary_expression
pp_region pp_start_region [ conditional_section ] pp_end_region
pp_start_region ws_opt "#" ws_opt "region" pp_message
pp_unnary_expression { "!" ws_opt } pp_primary_expression
pre_decrement_expression "--" unary_expression
pre_increment_expression "++" unary_expression
predefined_type
  • "bool"
  • "byte"
  • "char"
  • "decimal"
  • "double"
  • "float"
  • "int"
  • "long"
  • "object"
  • "sbyte"
  • "short"
  • "string"
  • "uint"
  • "ulong"
  • "ushort"
  • "dynamic"(C# 4.0 only)
primary_constraint
primary_expression
primary_no_array_creation_expression
property_declaration property_prefix type member_name "{" accessor_declaraions "}"
property_modifier
  • "new"
  • "public"
  • "protected"
  • "internal"
  • "private"
  • "static"
  • "virtual"
  • "sealed"
  • "override"
  • "abstract"
  • "extern"
  • "unsafe"(unsafe)
property_prefix [ attributes ] { property_modifier }
qualified_alias_member identifier "::" identifier [ type_argument_list ](C# 2.0 up)
qualified_identifier identifier { "." identifier }
query_body ( { query_body_clause } select_or_group_clause [ query_continuation ] )(C# 3.0 up)
query_body_clause
query_continuation ( "into" identifier query_body )(C# 3.0 up)
query_expression ( from_clause query_body )(C# 3.0 up)
quote_excape_sequence '""'
rank_specifier "[" { "," } "]"
real_literal
real_type_suffix
  • "f"
  • "F"
  • "d"
  • "D"
  • "m"
  • "M"
reference_type
regular_string_literal '"' { regular_string_literal_character } '"'
regular_string_literal_character
relation_or_type_check
relational_expression shift_expression { relation_or_type_check }
remove_accessor_declaration [ attributes ] "remove" block
resource_acquisition
return_statement "return" [ expression ] ";"
return_type
right_shift ">" ">"
right_shift_assignment ">" ">="
secondary_constraint
select_clause ( "select" expression )(C# 3.0 up)
select_or_group_clause
selection_statement
set_accessor_declaration accessor_prefix "set" accessor_body
shift_expression additive_expression { ( "<<" | right_shift ) additive_expression }
sign
  • "+"
  • "-"
simple_escape_sequence
  • "\'"
  • '\"'
  • "\\"
  • "\0"
  • "\a"
  • "\b"
  • "\f"
  • "\n"
  • "\r"
  • "\t"
  • "\v"
simple_name identifier [ type_argument_list ](C# 2.0 up)
simple_type
single_character ANY_UNICODE_EXCEPT_u0027_u005C_new_line
single_line_comment "//" { input_character }
single_regular_string_literal_character ANY_UNICODE_EXCEPT_u0022_u005C_new_line
single_verbatim_string_literal_character ANY_UNICODE_EXCEPT_u0022
sizeof_expression ( "sizeof" "(" unmanaged_type ")" )(unsafe)
skipped_characters not_number_sign { input_character }
skipped_section skipped_section_part { skipped_section_part }
skipped_section_part
specific_catch_clause "catch" "(" class_type [ identifier ] ")" block
specific_catch_clauses specific_catch_clause { specific_catch_clause }
stackalloc_initializer ( "stackalloc" unmanaged_type "[" expression "]" )(unsafe)
statement
statement_expression
statement_expression_list statement_expression { "," statement_expression }
static_constructor_body
static_constructor_declaration static_constructor_prefix identifier "(" ")" static_constructor_body
static_constructor_modifier
  • "extern"
  • "static"
  • "unsafe"(unsafe)
static_constructor_prefix [ attributes ] static_constructor_modifier { static_constructor_modifier }
string_literal
struct_body "{" { struct_member_declaration } "}"
struct_declaration struct_prefix "struct" identifier struct_suffix struct_body [ ";" ]
struct_intercfaces ":" interface_type_list
struct_member_declaration
struct_modifier
  • "new"
  • "public"
  • "protected"
  • "internal"
  • "private"
  • "unsafe"(unsafe)
struct_prefix [ attributes ] { struct_modifier } [ "partial" ](C# 2.0 up)
struct_suffix [ type_parameter_list ](C# 2.0 up) [ struct_intercfaces ] [ type_parameter_constraints_clauses ](C# 2.0 up)
struct_type
switch_block "{" { switch_section } "}"
switch_label
switch_section switch_label { switch_label } statement { statement }
switch_statement "switch" "(" expression ")" switch_block
syntactic_grammar compilation_unit
this_access "this"
throw_statement "throw" [ expression ] ";"
token
try_statement "try" block try_suffix
try_suffix
type
type_argument type(C# 2.0 up)
type_argument_list ( "<" type_arguments ">" )(C# 2.0 up)
type_arguments ( type_argument { "," type_argument } )(C# 2.0 up)
type_declaration
type_name namespace_or_type_name
type_parameter identifier(C# 2.0 up)
type_parameter_constraints
type_parameter_constraints_clause ( "where" type_parameter ":" type_parameter_constraints )(C# 2.0 up)
type_parameter_constraints_clauses ( type_parameter_constraints_clause { type_parameter_constraints_clause } )(C# 2.0 up)
type_parameter_list ( "<" type_parameters ">" )(C# 2.0 up)
type_parameters ( [ attributes ] type_parameter { "," [ attributes ] type_parameter } )(C# 2.0 up)
typeof_argument
typeof_expression "typeof" "(" typeof_argument ")"
unary_expression
unary_operator_declarator type "operator" overloadable_unary_operator "(" type identifier ")"
unbound_type_name unbound_type_name_prefix { "." identifier [ generic_dimension_specifier ] }
unbound_type_name_prefix identifier [ "::" identifier ] [ generic_dimension_specifier ]
unchecked_expression "unchecked" "(" expression ")"
unchecked_statement "unchecked" block
unicode_escape_sequence
unmanaged_type type(unsafe)
using_alias_directive "using" identifier "=" namespace_or_type_name ";"
using_directive
using_directives using_directive { using_directive }
using_namespace_directive "using" namespace_name ";"
using_statement "using" "(" resource_acquisition ")" embedded_statement
value_type
variable_declarator identifier [ "=" variable_initializer ]
variable_declarators variable_declarator { "," variable_declarator }
variable_initializer
variable_initializer_list variable_initializer { "," variable_initializer }
variable_reference expression
variance_annotation
variant_prefix ( [ attributes ] [ variance_annotation ](C# 4.0 up) )(C# 2.0 up)
variant_type_parameter_list ( "<" variant_type_parameters ">" )(C# 2.0 up)
variant_type_parameters ( variant_prefix type_parameter { "," variant_prefix type_parameter } )(C# 2.0 up)
verbatim_string_literal '@"' { verbatim_string_literal_character } '"'
verbatim_string_literal_character
where_clause ( "where" boolean_expression )(C# 3.0 up)
while_statement "while" "(" boolean_expression ")" embedded_statement
whitespace whitespace_character { whitespace_character }
whitespace_character
  • ANY_UNICODE_Zs_CHAR
  • HT_u0009
  • VT_u000B
  • FF_u000C
ws whitespace
ws_opt [ ws ]
yield_statement ( "yield" yield_suffix ";" )(C# 2.0 up)
yield_suffix


Variants

Variant Used in Variant Expressions
C# 1.0 to 4.0attribute_target ... "module" ...
base_access_element_list ... expression_list ...
class_member_declaration ... finalizer_declaration ...
finalizer_body ... block ...
... ";" ...
finalizer_declaration ... finalizer_prefix "~" identifier "(" ")" finalizer_body ...
finalizer_modifier ... "extern" ...
... "unsafe"(unsafe) ...
finalizer_prefix ... [ attributes ] ...
... { finalizer_modifier } ...
non_array_type ... value_type ...
... class_type ...
... interface_type ...
... delegate_type ...
... type_parameter(C# 2.0 up) ...
positional_argument_list ... argument_list ...
C# 2.0 to 4.0base_access_suffix ... [ type_argument_list ] ...
non_nullable_value_type ... enum_type ...
... type_name ...
... simple_type ...
C# 2.0 upaccessor_modifier ... "protected" [ "internal" ] ...
... "internal" [ "protected" ] ...
... "private" ...
accessor_prefix ... [ accessor_modifier ] ...
anonymous_method_expression ... [ "async" ](C# 5.0 up) "delegate" [ explicit_anonymous_method_signature ] block ...
anonymous_method_signature ... explicit_anonymous_method_signature ...
... implicit_anonymous_method_signature ...
class_modifier ... "static" ...
class_prefix ... [ "partial" ] ...
class_suffix ... [ type_parameter_list ] ...
... [ type_parameter_constraints_clauses ] ...
compilation_unit ... [ extern_alias_directives ] ...
constructor_constraint ... "new" "(" ")" ...
delegate_suffix ... [ variant_type_parameter_list ] ...
... [ type_parameter_constraints_clauses ] ...
embedded_statement ... yield_statement ...
explicit_anonymous_method_parameter ... [ explicit_parameter_modifier ] type identifier ...
explicit_anonymous_method_parameter_list ... explicit_anonymous_method_parameter { "," explicit_anonymous_method_parameter } ...
explicit_anonymous_method_signature ... "(" [ explicit_anonymous_method_parameter_list ] ")" ...
explicit_parameter_modifier ... "ref" ...
... "out" ...
implicit_anonymous_method_parameter ... identifier ...
implicit_anonymous_method_parameter_list ... implicit_anonymous_method_parameter { "," implicit_anonymous_method_parameter } ...
implicit_anonymous_method_signature ... "(" [ implicit_anonymous_method_parameter_list ] ")" ...
... implicit_anonymous_method_parameter ...
interface_method_declaration ... [ type_parameter_list ] ...
... [ type_parameter_constraints_clauses ] ...
interface_prefix ... [ "partial" ] ...
interface_suffix ... [ variant_type_parameter_list ] ...
... [ type_parameter_constraints_clauses ] ...
member_access ... qualified_alias_member "." identifier ...
member_access_suffix ... [ type_argument_list ] ...
method_header ... [ type_parameter_list ] ...
... [ type_parameter_constraints_clauses ] ...
namespace_body ... [ extern_alias_directives ] ...
namespace_or_type_name_part ... [ type_argument_list ] ...
namespace_or_type_name_prefix ... qualified_alias_member ...
non_array_type ... type_parameter ...
null_coalescing_expression ... [ "??" null_coalescing_expression ] ...
nullable_type ... non_nullable_value_type "?" ...
operator_or_punctuation ... "??" ...
... "::" ...
pointer_member_expression ... [ type_argument_list ] ...
pp_directive ... pp_pragma ...
pp_pragma ... ws_opt "#" ws_opt "pragma" pp_pragma_body pp_new_line ...
primary_constraint ... class_type ...
... "class" ...
... "struct" ...
primary_no_array_creation_expression ... default_value_expression ...
... anonymous_method_expression ...
qualified_alias_member ... [ type_argument_list ] ...
secondary_constraint ... interface_type { "," secondary_constraint } ...
... type_parameter { "," secondary_constraint } ...
simple_name ... [ type_argument_list ] ...
struct_prefix ... [ "partial" ] ...
struct_suffix ... [ type_parameter_list ] ...
... [ type_parameter_constraints_clauses ] ...
struct_type ... nullable_type ...
type ... type_parameter ...
type_argument ... type ...
type_argument_list ... "<" type_arguments ">" ...
type_arguments ... type_argument { "," type_argument } ...
type_parameter ... identifier ...
type_parameter_constraints ... primary_constraint [ "," secondary_constraint ] [ "," constructor_constraint ] ...
... secondary_constraint [ "," constructor_constraint ] ...
... constructor_constraint ...
type_parameter_constraints_clause ... "where" type_parameter ":" type_parameter_constraints ...
type_parameter_constraints_clauses ... type_parameter_constraints_clause { type_parameter_constraints_clause } ...
type_parameter_list ... "<" type_parameters ">" ...
type_parameters ... [ attributes ] type_parameter { "," [ attributes ] type_parameter } ...
typeof_argument ... unbound_type_name ...
variance_annotation ... "in" ...
... "out" ...
variant_prefix ... [ attributes ] [ variance_annotation ](C# 4.0 up) ...
variant_type_parameter_list ... "<" variant_type_parameters ">" ...
variant_type_parameters ... variant_prefix type_parameter { "," variant_prefix type_parameter } ...
yield_statement ... "yield" yield_suffix ";" ...
yield_suffix ... "return" expression ...
... "break" ...
C# 3.0 upaccessor_body ... ";" ...
anonymous_method_body ... expression ...
... block ...
anonymous_object_creation_expression ... "new" anonymous_object_initializer ...
anonymous_object_initializer ... "{" [ member_declarator_list [ "," ] ] "}" ...
array_creation_expression ... "new" rank_specifier array_initializer ...
from_clause ... "from" [ type ] identifier "in" expression ...
group_clause ... "group" expression "by" expression ...
join_clause ... "join" [ type ] identifier "in" expression "on" expression "equals" expression ...
join_into_clause ... join_clause "into" identifier ...
lambda_expression ... [ "async" ](C# 5.0 up) anonymous_method_signature "=>" anonymous_method_body ...
let_clause ... "let" identifier "=" expression ...
line_indicator ... "default" ...
... "hidden" ...
local_variable_type ... "var" ...
member_declarator ... simple_name ...
... member_access ...
... identifier "=" expression ...
member_declarator_list ... member_declarator { "," member_declarator } ...
method_prefix ... [ "partial" ] ...
non_assignment_expression ... lambda_expression ...
... query_expression ...
object_creation_expression ... [ object_or_collection_initializer ] ...
... "new" type [ object_or_collection_initializer ] ...
operator_or_punctuation ... "=>" ...
orderby_clause ... "orderby" ordering { "," ordering } ...
ordering ... expression [ ordering_direction ] ...
ordering_direction ... "ascending" ...
... "descending" ...
parameter_modifier ... "this" ...
pp_pragma_body ... pp_pragma_warning_body ...
primary_no_array_creation_expression ... anonymous_object_creation_expression ...
query_body ... { query_body_clause } select_or_group_clause [ query_continuation ] ...
query_body_clause ... from_clause ...
... let_clause ...
... where_clause ...
... join_clause ...
... join_into_clause ...
... orderby_clause ...
query_continuation ... "into" identifier query_body ...
query_expression ... from_clause query_body ...
select_clause ... "select" expression ...
select_or_group_clause ... select_clause ...
... group_clause ...
where_clause ... "where" boolean_expression ...
C# 4.0 onlykeyword ... "dynamic" ...
predefined_type ... "dynamic" ...
type ... "dynamic" ...
C# 4.0 upargument ... [ argument_name ] ...
class_type ... "dynamic" ...
fixed_parameter ... [ default_argument ] ...
variant_prefix ... [ variance_annotation ] ...
C# 5.0 upanonymous_method_expression ... [ "async" ] ...
await_expression ... "await" unary_expression ...
base_access_element_list ... argument_list ...
buffer_element_type ... type(unsafe) ...
class_member_declaration ... destructor_declaration ...
destructor_body ... block ...
... ";" ...
destructor_declaration ... destructor_prefix "~" identifier "(" ")" destructor_body ...
destructor_modifier ... "extern" ...
... "unsafe"(unsafe) ...
destructor_prefix ... [ attributes ] ...
... { destructor_modifier } ...
fixed_size_buffer_declaration ... ( [ attributes ] { fixed_size_buffer_modifier } "fixed" buffer_element_type fixed_size_buffer_declarators ";" )(unsafe) ...
fixed_size_buffer_declarator ... ( identifier "[" expression "]" )(unsafe) ...
fixed_size_buffer_declarators ... ( fixed_size_buffer_declarator { fixed_size_buffer_declarator } )(unsafe) ...
fixed_size_buffer_modifier ... "new"(unsafe) ...
... "public"(unsafe) ...
... "protected"(unsafe) ...
... "internal"(unsafe) ...
... "private"(unsafe) ...
... "unsafe"(unsafe) ...
lambda_expression ... [ "async" ] ...
method_modifier ... "async" ...
non_array_type ... type ...
non_nullable_value_type ... type ...
positional_argument ... [ argument_name ] expression ...
positional_argument_list ... positional_argument { "," positional_argument } ...
statement_expression ... await_expression ...
struct_member_declaration ... fixed_size_buffer_declaration(unsafe) ...
unary_expression ... await_expression ...
unsafeaddressof_expression ... "&" unary_expression ...
buffer_element_type ... type ...
class_modifier ... "unsafe" ...
constructor_modifier ... "unsafe" ...
delegate_modifier ... "unsafe" ...
destructor_modifier ... "unsafe" ...
embedded_statement ... [ "unsafe" ] ...
... fixed_statement ...
event_modifier ... "unsafe" ...
field_modifier ... "unsafe" ...
finalizer_modifier ... "unsafe" ...
fixed_pointer_declarator ... identifier "=" fixed_pointer_initializer ...
fixed_pointer_declarators ... fixed_pointer_declarator { "," fixed_pointer_declarator } ...
fixed_pointer_initializer ... "&" variable_reference ...
... expression ...
fixed_size_buffer_declaration ... [ attributes ] { fixed_size_buffer_modifier } "fixed" buffer_element_type fixed_size_buffer_declarators ";" ...
fixed_size_buffer_declarator ... identifier "[" expression "]" ...
fixed_size_buffer_declarators ... fixed_size_buffer_declarator { fixed_size_buffer_declarator } ...
fixed_size_buffer_modifier ... "new" ...
... "public" ...
... "protected" ...
... "internal" ...
... "private" ...
... "unsafe" ...
fixed_statement ... "fixed" "(" pointer_type fixed_pointer_declarators ")" embedded_statement ...
indexer_modifier ... "unsafe" ...
interface_modifier ... "unsafe" ...
local_variable_initializer ... stackalloc_initializer ...
method_modifier ... "unsafe" ...
operator_modifier ... "unsafe" ...
pointer_element_expression ... primary_no_array_creation_expression "[" expression "]" ...
pointer_indirection_expression ... "*" unary_expression ...
pointer_member_expression ... primary_expression "->" identifier [ type_argument_list ](C# 2.0 up) ...
pointer_type ... unmanaged_type "*" ...
... "void" "*" ...
primary_no_array_creation_expression ... sizeof_expression ...
... pointer_member_expression ...
... pointer_element_expression ...
property_modifier ... "unsafe" ...
sizeof_expression ... "sizeof" "(" unmanaged_type ")" ...
stackalloc_initializer ... "stackalloc" unmanaged_type "[" expression "]" ...
static_constructor_modifier ... "unsafe" ...
struct_member_declaration ... fixed_size_buffer_declaration ...
struct_modifier ... "unsafe" ...
type ... pointer_type ...
unary_expression ... pointer_indirection_expression ...
... addressof_expression ...
unmanaged_type ... type ...

Terminals

Terminal Used in
ANY_IDENTIFIER_EXCEPT_keyword available_identifier
ANY_UNICODE_Cf formatting_character
ANY_UNICODE_EXCEPT_new_line input_character
ANY_UNICODE_EXCEPT_u0022 single_verbatim_string_literal_character
ANY_UNICODE_EXCEPT_u0022_new_line file_name_character
ANY_UNICODE_EXCEPT_u0022_u005C_new_line single_regular_string_literal_character
ANY_UNICODE_EXCEPT_u0023_new_line not_number_sign
ANY_UNICODE_EXCEPT_u0027_u005C_new_line single_character
ANY_UNICODE_EXCEPT_u002A non_asterisk
ANY_UNICODE_EXCEPT_u002F non_slash
ANY_UNICODE_Lu_Ll_Lt_Lm_Lo_Ni letter_character
ANY_UNICODE_Mn_Mc combining_character
ANY_UNICODE_Nd decimal_digit_character
ANY_UNICODE_Pc connecting_character
ANY_UNICODE_Zs_CHAR whitespace_character
ANY_UXXXXXXXX_Cf formatting_character
ANY_UXXXXXXXX_Lu_Ll_Lt_Lm_Lo_Ni letter_character
ANY_UXXXXXXXX_Mn_Mc combining_character
ANY_UXXXXXXXX_Nd decimal_digit_character
ANY_UXXXXXXXX_Pc connecting_character
ANY_keyword_EXCEPT_true_false conditional_symbol
ANY_uXXXX_Cf formatting_character
ANY_uXXXX_Lu_Ll_Lt_Lm_Lo_Ni letter_character
ANY_uXXXX_Mn_Mc combining_character
ANY_uXXXX_Nd decimal_digit_character
ANY_uXXXX_Pc connecting_character
CR_u000D new_line
FF_u000C whitespace_character
HT_u0009 whitespace_character
LF_u000A new_line
LS_u2028 new_line
NL_u0085 new_line
PS_u2029 new_line
VT_u000B whitespace_character

Literals

Literal Used in
! operator_or_punctuation / overloadable_unary_operator / pp_unnary_expression / unary_expression
!= equality_expression / operator_or_punctuation / overloadable_binary_operator / pp_equality_expression
" file_name / regular_string_literal / verbatim_string_literal
"" quote_excape_sequence
# pp_declaration / pp_diagnostic / pp_elif_section / pp_else_section / pp_end_region / pp_endif / pp_if_section / pp_line / pp_pragma / pp_start_region
% multiplicative_expression / operator_or_punctuation / overloadable_binary_operator
%= assignment_operator / operator_or_punctuation
& addressof_expression / and_expression / fixed_pointer_initializer / operator_or_punctuation / overloadable_binary_operator
&& conditional_and_expression / operator_or_punctuation / pp_and_expression
&= assignment_operator / operator_or_punctuation
' character_literal
( attribute_arguments / binary_operator_declarator / cast_expression / checked_expression / constructor_constraint / constructor_declatator / constructor_initializer / conversion_operator_declarator / default_value_expression / delegate_creation_expression / delegate_suffix / destructor_declaration / do_statement / explicit_anonymous_method_signature / finalizer_declaration / fixed_statement / for_statement / foreach_statement / if_statement / implicit_anonymous_method_signature / interface_method_declaration / invocation_expression / lock_statement / method_header / object_creation_expression / operator_or_punctuation / parenthesized_expression / pp_primary_expression / sizeof_expression / specific_catch_clause / static_constructor_declaration / switch_statement / typeof_expression / unary_operator_declarator / unchecked_expression / using_statement / while_statement
) attribute_arguments / binary_operator_declarator / cast_expression / checked_expression / constructor_constraint / constructor_declatator / constructor_initializer / conversion_operator_declarator / default_value_expression / delegate_creation_expression / delegate_suffix / destructor_declaration / do_statement / explicit_anonymous_method_signature / finalizer_declaration / fixed_statement / for_statement / foreach_statement / if_statement / implicit_anonymous_method_signature / interface_method_declaration / invocation_expression / lock_statement / method_header / object_creation_expression / operator_or_punctuation / parenthesized_expression / pp_primary_expression / sizeof_expression / specific_catch_clause / static_constructor_declaration / switch_statement / typeof_expression / unary_operator_declarator / unchecked_expression / using_statement / while_statement
* asterisks / multiplicative_expression / operator_or_punctuation / overloadable_binary_operator / pointer_indirection_expression / pointer_type
*= assignment_operator / operator_or_punctuation
+ additive_expression / operator_or_punctuation / overloadable_binary_operator / overloadable_unary_operator / sign / unary_expression
++ operator_or_punctuation / overloadable_unary_operator / post_increment_expression / pre_increment_expression
+= assignment_operator / operator_or_punctuation
, anonymous_object_initializer / argument_list / array_initializer / attribute_argument_list / attribute_list / attribute_section / binary_operator_declarator / class_base / collection_initializer / constant_declarators / element_initializer_list / enum_body / enum_member_declarations / explicit_anonymous_method_parameter_list / expression_list / fixed_pointer_declarators / formal_parameter_list / generic_dimension_specifier / global_attribute_section / implicit_anonymous_method_parameter_list / interface_type_list / local_variable_declaration / member_declarator_list / member_initializer_list / named_argument_list / object_initializer / operator_or_punctuation / orderby_clause / positional_argument_list / pp_pragma_warning_list / rank_specifier / secondary_constraint / statement_expression_list / type_arguments / type_parameter_constraints / type_parameters / variable_declarators / variable_initializer_list / variant_type_parameters
- additive_expression / operator_or_punctuation / overloadable_binary_operator / overloadable_unary_operator / sign / unary_expression
-- operator_or_punctuation / overloadable_unary_operator / post_decrement_expression / pre_decrement_expression
-= assignment_operator / operator_or_punctuation
-> operator_or_punctuation / pointer_member_expression
. base_access_suffix / indexer_declarator / member_access / member_name / namespace_or_type_name / operator_or_punctuation / qualified_identifier / real_literal / unbound_type_name
/ delimited_comment / multiplicative_expression / operator_or_punctuation / overloadable_binary_operator
/* delimited_comment
// single_line_comment
/= assignment_operator / operator_or_punctuation
: argument_name / attribute_target_specifier / class_base / conditional_expression / enum_suffix / global_attribute_target_specifier / intercface_base / labeled_statement / operator_or_punctuation / struct_intercfaces / switch_label / type_parameter_constraints_clause
:: operator_or_punctuation / qualified_alias_member / unbound_type_name_prefix
; accessor_body / break_statement / class_declaration / constant_declaration / constructor_body / continue_statement / declaration_statement / delegate_declaration / destructor_body / do_statement / empty_statement / enum_declaration / event_suffix / expression_statement / extern_alias_directive / field_declaration / finalizer_body / fixed_size_buffer_declaration / for_statement / goto_statement / interface_declaration / interface_event_declaration / interface_get_accessor / interface_method_declaration / interface_set_accessor / method_body / namespace_declaration / operator_body / operator_or_punctuation / return_statement / static_constructor_body / struct_declaration / throw_statement / using_alias_directive / using_namespace_directive / yield_statement
< generic_dimension_specifier / operator_or_punctuation / overloadable_binary_operator / relation_or_type_check / type_argument_list / type_parameter_list / variant_type_parameter_list
<< operator_or_punctuation / overloadable_binary_operator / shift_expression
<<= assignment_operator / operator_or_punctuation
<= operator_or_punctuation / overloadable_binary_operator / relation_or_type_check
= assignment_operator / constant_declarator / default_argument / enum_member_declaration / fixed_pointer_declarator / let_clause / local_variable_declarator / member_declarator / member_initializer / named_argument / operator_or_punctuation / using_alias_directive / variable_declarator
== equality_expression / operator_or_punctuation / overloadable_binary_operator / pp_equality_expression
=> lambda_expression / operator_or_punctuation
> generic_dimension_specifier / operator_or_punctuation / overloadable_binary_operator / relation_or_type_check / right_shift / right_shift_assignment / type_argument_list / type_parameter_list / variant_type_parameter_list
>= operator_or_punctuation / overloadable_binary_operator / relation_or_type_check / right_shift_assignment
? conditional_expression / nullable_type / operator_or_punctuation
?? null_coalescing_expression / operator_or_punctuation
@ identifier
@" verbatim_string_literal
[ array_creation_expression / attribute_section / base_access_suffix / element_access / fixed_size_buffer_declarator / global_attribute_section / indexer_declarator / interface_indexer_declaration / operator_or_punctuation / pointer_element_expression / rank_specifier / stackalloc_initializer
\" simple_escape_sequence
\' simple_escape_sequence
\0 simple_escape_sequence
\U unicode_escape_sequence
\\ simple_escape_sequence
\a simple_escape_sequence
\b simple_escape_sequence
\f simple_escape_sequence
\n simple_escape_sequence
\r simple_escape_sequence
\t simple_escape_sequence
\u unicode_escape_sequence
\v simple_escape_sequence
\x hexadecimal_escape_sequence
] array_creation_expression / attribute_section / base_access_suffix / element_access / fixed_size_buffer_declarator / global_attribute_section / indexer_declarator / interface_indexer_declaration / operator_or_punctuation / pointer_element_expression / rank_specifier / stackalloc_initializer
^ exclusive_or_expression / operator_or_punctuation / overloadable_binary_operator
^= assignment_operator / operator_or_punctuation
_ identifier_start_character
{ anonymous_object_initializer / array_initializer / block / class_body / collection_initializer / element_initializer / enum_body / event_suffix / indexer_declaration / interface_body / interface_indexer_declaration / interface_property_declaration / namespace_body / object_initializer / operator_or_punctuation / property_declaration / struct_body / switch_block
| inclusive_or_expression / operator_or_punctuation / overloadable_binary_operator
|= assignment_operator / operator_or_punctuation
|| conditional_or_expression / operator_or_punctuation / pp_or_expression
} anonymous_object_initializer / array_initializer / block / class_body / collection_initializer / element_initializer / enum_body / event_suffix / indexer_declaration / interface_body / interface_indexer_declaration / interface_property_declaration / namespace_body / object_initializer / operator_or_punctuation / property_declaration / struct_body / switch_block
~ destructor_declaration / finalizer_declaration / operator_or_punctuation / overloadable_unary_operator / unary_expression
0 decimal_digit
0X hexadecimal_integer_literal
0x hexadecimal_integer_literal
1 decimal_digit
2 decimal_digit
3 decimal_digit
4 decimal_digit
5 decimal_digit
6 decimal_digit
7 decimal_digit
8 decimal_digit
9 decimal_digit
a hex_digit
A hex_digit
abstract class_modifier / event_modifier / indexer_modifier / keyword / method_modifier / property_modifier
add add_accessor_declaration
alias extern_alias_directive
as keyword / relation_or_type_check
ascending ordering_direction
assembly global_attribute_target
async anonymous_method_expression / lambda_expression / method_modifier
await await_expression
b hex_digit
B hex_digit
base base_access / constructor_initializer / keyword
bool keyword / predefined_type / simple_type
break break_statement / keyword / yield_suffix
by group_clause
byte integral_type / keyword / predefined_type
c hex_digit
C hex_digit
case goto_label / keyword / switch_label
catch general_catch_clause / keyword / specific_catch_clause
char integral_type / keyword / predefined_type
checked checked_expression / checked_statement / keyword
class class_declaration / keyword / primary_constraint
const constant_declaration / keyword / local_constant_declaration
continue continue_statement / keyword
d hex_digit / real_type_suffix
D hex_digit / real_type_suffix
decimal keyword / numeric_type / predefined_type
default default_value_expression / goto_label / keyword / line_indicator / switch_label
define pp_declaration
delegate anonymous_method_expression / delegate_declaration / keyword
descending ordering_direction
disable pp_pragma_warning_action
do do_statement / keyword
double floating_point_type / keyword / predefined_type
dynamic class_type / keyword / predefined_type / type
E exponent_part / hex_digit
e exponent_part / hex_digit
elif pp_elif_section
else if_statement / keyword / pp_else_section
endif pp_endif
endregion pp_end_region
enum enum_declaration / keyword
equals join_clause
error pp_diagnostic
event attribute_target / event_declaration / interface_event_declaration / keyword
explicit conversion_operator_declarator / keyword
extern constructor_modifier / destructor_modifier / event_modifier / extern_alias_directive / finalizer_modifier / indexer_modifier / keyword / method_modifier / operator_modifier / property_modifier / static_constructor_modifier
f hex_digit / real_type_suffix
F hex_digit / real_type_suffix
false boolean_literal / keyword / overloadable_unary_operator / pp_primary_expression
field attribute_target
finally finally_clause / keyword
fixed fixed_size_buffer_declaration / fixed_statement / keyword
float floating_point_type / keyword / predefined_type
for for_statement / keyword
foreach foreach_statement / keyword
from from_clause
get get_accessor_declaration / interface_get_accessor
goto goto_statement / keyword
group group_clause
hidden line_indicator
if if_statement / keyword / pp_if_section
implicit conversion_operator_declarator / keyword
in foreach_statement / from_clause / join_clause / keyword / variance_annotation
int integral_type / keyword / predefined_type
interface interface_declaration / keyword
internal accessor_modifier / class_modifier / constant_modifier / constructor_modifier / delegate_modifier / enum_modifier / event_modifier / field_modifier / fixed_size_buffer_modifier / indexer_modifier / interface_modifier / keyword / method_modifier / property_modifier / struct_modifier
into join_into_clause / query_continuation
is keyword / relation_or_type_check
join join_clause
L integer_type_suffix
l integer_type_suffix
let let_clause
line pp_line
lock keyword / lock_statement
long integral_type / keyword / predefined_type
lU integer_type_suffix
Lu integer_type_suffix
lu integer_type_suffix
LU integer_type_suffix
M real_type_suffix
m real_type_suffix
method attribute_target
module attribute_target / global_attribute_target
namespace keyword / namespace_declaration
new anonymous_object_creation_expression / array_creation_expression / class_modifier / constant_modifier / constructor_constraint / delegate_creation_expression / delegate_modifier / enum_modifier / event_modifier / field_modifier / fixed_size_buffer_modifier / indexer_modifier / interface_event_declaration / interface_indexer_declaration / interface_method_declaration / interface_modifier / interface_property_declaration / keyword / method_modifier / object_creation_expression / property_modifier / struct_modifier
null keyword / null_literal
object class_type / keyword / predefined_type
on join_clause
operator binary_operator_declarator / conversion_operator_declarator / keyword / unary_operator_declarator
orderby orderby_clause
out argument_value / explicit_parameter_modifier / keyword / parameter_modifier / variance_annotation
override event_modifier / indexer_modifier / keyword / method_modifier / property_modifier
param attribute_target
params keyword / parameter_array
partial class_prefix / interface_prefix / method_prefix / struct_prefix
pragma pp_pragma
private accessor_modifier / class_modifier / constant_modifier / constructor_modifier / delegate_modifier / enum_modifier / event_modifier / field_modifier / fixed_size_buffer_modifier / indexer_modifier / interface_modifier / keyword / method_modifier / property_modifier / struct_modifier
property attribute_target
protected accessor_modifier / class_modifier / constant_modifier / constructor_modifier / delegate_modifier / enum_modifier / event_modifier / field_modifier / fixed_size_buffer_modifier / indexer_modifier / interface_modifier / keyword / method_modifier / property_modifier / struct_modifier
public class_modifier / constant_modifier / constructor_modifier / delegate_modifier / enum_modifier / event_modifier / field_modifier / fixed_size_buffer_modifier / indexer_modifier / interface_modifier / keyword / method_modifier / operator_modifier / property_modifier / struct_modifier
readonly field_modifier / keyword
ref argument_value / explicit_parameter_modifier / keyword / parameter_modifier
region pp_start_region
remove remove_accessor_declaration
restore pp_pragma_warning_action
return attribute_target / keyword / return_statement / yield_suffix
sbyte integral_type / keyword / predefined_type
sealed class_modifier / event_modifier / indexer_modifier / keyword / method_modifier / property_modifier
select select_clause
set interface_set_accessor / set_accessor_declaration
short integral_type / keyword / predefined_type
sizeof keyword / sizeof_expression
stackalloc keyword / stackalloc_initializer
static class_modifier / event_modifier / field_modifier / keyword / method_modifier / operator_modifier / property_modifier / static_constructor_modifier
string class_type / keyword / predefined_type
struct keyword / primary_constraint / struct_declaration
switch keyword / switch_statement
this constructor_initializer / indexer_declarator / interface_indexer_declaration / keyword / parameter_modifier / this_access
throw keyword / throw_statement
true boolean_literal / keyword / overloadable_unary_operator / pp_primary_expression
try keyword / try_statement
type attribute_target
typeof keyword / typeof_expression
U integer_type_suffix
u integer_type_suffix
uint integral_type / keyword / predefined_type
ul integer_type_suffix
Ul integer_type_suffix
UL integer_type_suffix
uL integer_type_suffix
ulong integral_type / keyword / predefined_type
unchecked keyword / unchecked_expression / unchecked_statement
undef pp_declaration
unsafe class_modifier / constructor_modifier / delegate_modifier / destructor_modifier / embedded_statement / event_modifier / field_modifier / finalizer_modifier / fixed_size_buffer_modifier / indexer_modifier / interface_modifier / keyword / method_modifier / operator_modifier / property_modifier / static_constructor_modifier / struct_modifier
ushort integral_type / keyword / predefined_type
using keyword / using_alias_directive / using_namespace_directive / using_statement
var local_variable_type
virtual event_modifier / indexer_modifier / keyword / method_modifier / property_modifier
void keyword / pointer_type / return_type / typeof_argument
volatile field_modifier / keyword
warning pp_diagnostic / pp_pragma_warning_body
where type_parameter_constraints_clause / where_clause
while do_statement / keyword / while_statement
yield yield_statement

Production Cross Reference

Production Used in
accessor_bodyget_accessor_declaration / set_accessor_declaration
accessor_declaraionsindexer_declaration / property_declaration
accessor_modifieraccessor_prefix
accessor_prefixget_accessor_declaration / set_accessor_declaration
add_accessor_declarationevent_accessor_declarations
additive_expressionshift_expression
addressof_expressionunary_expression
and_expressionexclusive_or_expression
anonymous_method_bodylambda_expression
anonymous_method_expressionprimary_no_array_creation_expression
anonymous_method_signaturelambda_expression
anonymous_object_creation_expressionprimary_no_array_creation_expression
anonymous_object_initializeranonymous_object_creation_expression
argumentargument_list
argument_listbase_access_element_list / constructor_initializer / invocation_expression / object_creation_expression / positional_argument_list
argument_nameargument / positional_argument
argument_valueargument
array_creation_expressionprimary_expression
array_initializerarray_creation_expression / local_variable_initializer / variable_initializer
array_typearray_creation_expression / parameter_array / reference_type
assignmentexpression / statement_expression
assignment_operatorassignment
asterisksdelimited_comment / delimited_comment_section
attributeattribute_list
attribute_argument_listattribute_arguments
attribute_argumentsattribute
attribute_listattribute_section / global_attribute_section
attribute_nameattribute
attribute_sectionattributes
attribute_targetattribute_target_specifier
attribute_target_specifierattribute_section
attributesaccessor_prefix / add_accessor_declaration / class_prefix / constant_prefix / constructor_prefix / delegate_prefix / destructor_prefix / enum_member_declaration / enum_prefix / event_prefix / field_prefix / finalizer_prefix / fixed_size_buffer_declaration / indexer_prefix / interface_event_declaration / interface_get_accessor / interface_indexer_declaration / interface_method_declaration / interface_prefix / interface_property_declaration / interface_set_accessor / method_prefix / operator_prefix / parameter_array / parameter_prefix / property_prefix / remove_accessor_declaration / static_constructor_prefix / struct_prefix / type_parameters / variant_prefix
available_identifieridentifier
await_expressionstatement_expression / unary_expression
base_accessprimary_no_array_creation_expression
base_access_element_listbase_access_suffix
base_access_suffixbase_access
binary_operator_declaratoroperator_declarator
blockaccessor_body / add_accessor_declaration / anonymous_method_body / anonymous_method_expression / checked_statement / constructor_body / destructor_body / embedded_statement / finalizer_body / finally_clause / general_catch_clause / method_body / operator_body / remove_accessor_declaration / specific_catch_clause / static_constructor_body / try_statement / unchecked_statement
boolean_literalliteral
break_statementjump_statement
buffer_element_typefixed_size_buffer_declaration
c_sharp
cast_expressionunary_expression
catch_clausestry_suffix
charactercharacter_literal
character_literalliteral / token
checked_expressionprimary_no_array_creation_expression
checked_statementembedded_statement
class_baseclass_suffix
class_bodyclass_declaration
class_declarationtype_declaration
class_member_declarationclass_body
class_modifierclass_prefix
class_prefixclass_declaration
class_suffixclass_declaration
class_typeclass_base / non_array_type / primary_constraint / reference_type / specific_catch_clause
collection_initializerobject_or_collection_initializer
combining_characteridentifier_part_character
commentinput_element
compilation_unitsyntactic_grammar
conditional_and_expressionconditional_or_expression
conditional_expressionnon_assignment_expression
conditional_or_expressionnull_coalescing_expression
conditional_sectionpp_elif_section / pp_else_section / pp_if_section / pp_region
conditional_symbolpp_declaration / pp_primary_expression
connecting_characteridentifier_part_character
constant_declarationclass_member_declaration
constant_declaratorconstant_declarators
constant_declaratorsconstant_declaration / local_constant_declaration
constant_modifierconstant_prefix
constant_prefixconstant_declaration
constructor_bodyconstructor_declaration
constructor_constrainttype_parameter_constraints
constructor_declarationclass_member_declaration / struct_member_declaration
constructor_declatatorconstructor_declaration
constructor_initializerconstructor_declatator
constructor_modifierconstructor_prefix
constructor_prefixconstructor_declaration
continue_statementjump_statement
conversion_operator_declaratoroperator_declarator
decimal_digitdecimal_digits / hex_digit
decimal_digit_characteridentifier_part_character
decimal_digitsdecimal_integer_literal / exponent_part / line_indicator / pp_pragma_warning_list / real_literal
decimal_integer_literalinteger_literal
declaration_statementstatement
default_argumentfixed_parameter
default_value_expressionprimary_no_array_creation_expression
delegate_creation_expressionprimary_no_array_creation_expression
delegate_declarationtype_declaration
delegate_modifierdelegate_prefix
delegate_prefixdelegate_declaration
delegate_suffixdelegate_declaration
delegate_typedelegate_creation_expression / non_array_type / reference_type
delimited_commentcomment
delimited_comment_sectiondelimited_comment
destructor_bodydestructor_declaration
destructor_declarationclass_member_declaration
destructor_modifierdestructor_prefix
destructor_prefixdestructor_declaration
do_statementiteration_statement
element_accessprimary_no_array_creation_expression
element_initializerelement_initializer_list
element_initializer_listcollection_initializer
embedded_statementdo_statement / fixed_statement / for_statement / foreach_statement / if_statement / lock_statement / statement / using_statement / while_statement
empty_statementembedded_statement
enum_baseenum_suffix
enum_bodyenum_declaration
enum_declarationtype_declaration
enum_member_declarationenum_member_declarations
enum_member_declarationsenum_body
enum_modifierenum_prefix
enum_prefixenum_declaration
enum_suffixenum_declaration
enum_typenon_nullable_value_type / value_type
equality_expressionand_expression
event_accessor_declarationsevent_suffix
event_declarationclass_member_declaration / struct_member_declaration
event_modifierevent_prefix
event_prefixevent_declaration
event_suffixevent_declaration
exclusive_or_expressioninclusive_or_expression
explicit_anonymous_method_parameterexplicit_anonymous_method_parameter_list
explicit_anonymous_method_parameter_listexplicit_anonymous_method_signature
explicit_anonymous_method_signatureanonymous_method_expression / anonymous_method_signature
explicit_parameter_modifierexplicit_anonymous_method_parameter
exponent_partreal_literal
expressionanonymous_method_body / argument_value / assignment / checked_expression / conditional_expression / constant_declarator / default_argument / delegate_creation_expression / do_statement / element_initializer / enum_member_declaration / expression_list / fixed_pointer_initializer / fixed_size_buffer_declarator / for_statement / foreach_statement / from_clause / goto_label / group_clause / if_statement / initializer_value / join_clause / let_clause / local_variable_initializer / lock_statement / member_declarator / named_argument / ordering / parenthesized_expression / pointer_element_expression / positional_argument / resource_acquisition / return_statement / select_clause / stackalloc_initializer / switch_label / switch_statement / throw_statement / unchecked_expression / variable_initializer / variable_reference / where_clause / while_statement / yield_suffix
expression_listarray_creation_expression / base_access_element_list / element_access
expression_statementembedded_statement
extern_alias_directiveextern_alias_directives
extern_alias_directivescompilation_unit / namespace_body
field_declarationclass_member_declaration / struct_member_declaration
field_modifierfield_prefix
field_prefixfield_declaration
file_nameline_indicator
file_name_characterfile_name
finalizer_bodyfinalizer_declaration
finalizer_declarationclass_member_declaration
finalizer_modifierfinalizer_prefix
finalizer_prefixfinalizer_declaration
finally_clausetry_suffix
fixed_parameterformal_parameter_list
fixed_pointer_declaratorfixed_pointer_declarators
fixed_pointer_declaratorsfixed_statement
fixed_pointer_initializerfixed_pointer_declarator
fixed_size_buffer_declarationstruct_member_declaration
fixed_size_buffer_declaratorfixed_size_buffer_declarators
fixed_size_buffer_declaratorsfixed_size_buffer_declaration
fixed_size_buffer_modifierfixed_size_buffer_declaration
fixed_statementembedded_statement
floating_point_typenumeric_type
for_initializerfor_statement
for_iteratorfor_statement
for_statementiteration_statement
foreach_statementiteration_statement
formal_parameter_listconstructor_declatator / delegate_suffix / indexer_declarator / interface_indexer_declaration / interface_method_declaration / method_header
formatting_characteridentifier_part_character
from_clausequery_body_clause / query_expression
general_catch_clausecatch_clauses
generic_dimension_specifierunbound_type_name / unbound_type_name_prefix
get_accessor_declarationaccessor_declaraions
global_attribute_sectionglobal_attributes
global_attribute_targetglobal_attribute_target_specifier
global_attribute_target_specifierglobal_attribute_section
global_attributescompilation_unit
goto_labelgoto_statement
goto_statementjump_statement
group_clauseselect_or_group_clause
hex_digithex_digits / hexadecimal_escape_sequence / unicode_escape_sequence
hex_digitshexadecimal_integer_literal
hexadecimal_escape_sequencecharacter / regular_string_literal_character
hexadecimal_integer_literalinteger_literal
identifierargument_name / base_access_suffix / binary_operator_declarator / class_declaration / conditional_symbol / constant_declarator / constructor_declatator / conversion_operator_declarator / delegate_declaration / destructor_declaration / enum_declaration / enum_member_declaration / explicit_anonymous_method_parameter / extern_alias_directive / finalizer_declaration / fixed_parameter / fixed_pointer_declarator / fixed_size_buffer_declarator / foreach_statement / from_clause / goto_label / implicit_anonymous_method_parameter / interface_declaration / interface_event_declaration / interface_method_declaration / interface_property_declaration / join_clause / join_into_clause / labeled_statement / let_clause / local_variable_declarator / member_access / member_access_suffix / member_declarator / member_initializer / member_name / named_argument / namespace_or_type_name_part / parameter_array / pointer_member_expression / qualified_alias_member / qualified_identifier / query_continuation / simple_name / specific_catch_clause / static_constructor_declaration / struct_declaration / token / type_parameter / unary_operator_declarator / unbound_type_name / unbound_type_name_prefix / using_alias_directive / variable_declarator
identifier_or_keywordidentifier / line_indicator
identifier_part_characteridentifier_or_keyword
identifier_start_characteridentifier_or_keyword
if_statementselection_statement
implicit_anonymous_method_parameterimplicit_anonymous_method_parameter_list / implicit_anonymous_method_signature
implicit_anonymous_method_parameter_listimplicit_anonymous_method_signature
implicit_anonymous_method_signatureanonymous_method_signature
inclusive_or_expressionconditional_and_expression
indexer_declarationclass_member_declaration / struct_member_declaration
indexer_declaratorindexer_declaration
indexer_modifierindexer_prefix
indexer_prefixindexer_declaration
initializer_valuemember_initializer
inputlexical_grammar
input_characterpp_message / pp_pragma_text / single_line_comment / skipped_characters
input_elementinput_section_part
input_sectionconditional_section / input
input_section_partinput_section
integer_literalliteral / token
integer_type_suffixdecimal_integer_literal / hexadecimal_integer_literal
integral_typeenum_base / numeric_type
intercface_baseinterface_suffix
interface_accessorinterface_indexer_declaration / interface_property_declaration
interface_bodyinterface_declaration
interface_declarationtype_declaration
interface_event_declarationinterface_member_delcaration
interface_get_accessorinterface_accessor
interface_indexer_declarationinterface_member_delcaration
interface_member_delcarationinterface_body
interface_method_declarationinterface_member_delcaration
interface_modifierinterface_prefix
interface_prefixinterface_declaration
interface_property_declarationinterface_member_delcaration
interface_set_accessorinterface_accessor
interface_suffixinterface_declaration
interface_typeindexer_declarator / interface_type_list / member_name / non_array_type / reference_type / secondary_constraint
interface_type_listclass_base / intercface_base / struct_intercfaces
invocation_expressionprimary_no_array_creation_expression / statement_expression
iteration_statementembedded_statement
join_clausejoin_into_clause / query_body_clause
join_into_clausequery_body_clause
jump_statementembedded_statement
keywordtoken
labeled_statementstatement
lambda_expressionnon_assignment_expression
let_clausequery_body_clause
letter_characteridentifier_part_character / identifier_start_character
lexical_grammarc_sharp
line_indicatorpp_line
literalprimary_no_array_creation_expression
local_constant_declarationdeclaration_statement
local_variable_declarationdeclaration_statement / for_initializer / resource_acquisition
local_variable_declaratorlocal_variable_declaration
local_variable_initializerlocal_variable_declarator
local_variable_typeforeach_statement / local_variable_declaration
lock_statementembedded_statement
member_accessmember_declarator / primary_no_array_creation_expression
member_access_prefixmember_access
member_access_suffixmember_access
member_declaratormember_declarator_list
member_declarator_listanonymous_object_initializer
member_initializermember_initializer_list
member_initializer_listobject_initializer
member_nameevent_suffix / method_header / property_declaration
method_bodymethod_declaration
method_declarationclass_member_declaration / struct_member_declaration
method_headermethod_declaration
method_modifiermethod_prefix
method_prefixmethod_header
multiplicative_expressionadditive_expression
named_argumentnamed_argument_list
named_argument_listattribute_argument_list
namespace_bodynamespace_declaration
namespace_declarationnamespace_member_declaration
namespace_member_declarationnamespace_member_declarations
namespace_member_declarationscompilation_unit / namespace_body
namespace_nameusing_namespace_directive
namespace_or_type_namenamespace_name / type_name / using_alias_directive
namespace_or_type_name_partnamespace_or_type_name / namespace_or_type_name_prefix
namespace_or_type_name_prefixnamespace_or_type_name
new_lineinput_section_part / pp_message / pp_new_line / skipped_section_part
non_array_typearray_creation_expression / array_type
non_assignment_expressionelement_initializer / expression
non_asteriskdelimited_comment_section
non_nullable_value_typenullable_type
non_slashdelimited_comment_section
not_number_signskipped_characters
null_coalescing_expressionconditional_expression / null_coalescing_expression
null_literalliteral
nullable_typestruct_type
numeric_typesimple_type
object_creation_expressionprimary_no_array_creation_expression / statement_expression
object_initializerobject_or_collection_initializer
object_or_collection_initializerinitializer_value / object_creation_expression
operator_bodyoperator_declaration
operator_declarationclass_member_declaration / struct_member_declaration
operator_declaratoroperator_declaration
operator_modifieroperator_prefix
operator_or_punctuationtoken
operator_prefixoperator_declaration
orderby_clausequery_body_clause
orderingorderby_clause
ordering_directionordering
overloadable_binary_operatorbinary_operator_declarator
overloadable_unary_operatorunary_operator_declarator
parameter_arrayformal_parameter_list
parameter_modifierparameter_prefix
parameter_prefixfixed_parameter
parenthesized_expressionprimary_no_array_creation_expression
pointer_element_expressionprimary_no_array_creation_expression
pointer_indirection_expressionunary_expression
pointer_member_expressionprimary_no_array_creation_expression
pointer_typefixed_statement / type
positional_argumentpositional_argument_list
positional_argument_listattribute_argument_list
post_decrement_expressionprimary_no_array_creation_expression / statement_expression
post_increment_expressionprimary_no_array_creation_expression / statement_expression
pp_and_expressionpp_or_expression
pp_conditionalpp_directive
pp_declarationpp_directive
pp_diagnosticpp_directive
pp_directiveinput_section_part / skipped_section_part
pp_elif_sectionpp_conditional
pp_else_sectionpp_conditional
pp_end_regionpp_region
pp_endifpp_conditional
pp_equality_expressionpp_and_expression
pp_expressionpp_elif_section / pp_if_section / pp_primary_expression
pp_if_sectionpp_conditional
pp_linepp_directive
pp_messagepp_diagnostic / pp_end_region / pp_start_region
pp_new_linepp_declaration / pp_elif_section / pp_else_section / pp_endif / pp_if_section / pp_line / pp_pragma
pp_or_expressionpp_expression
pp_pragmapp_directive
pp_pragma_bodypp_pragma
pp_pragma_textpp_pragma_body
pp_pragma_warning_actionpp_pragma_warning_body
pp_pragma_warning_bodypp_pragma_body
pp_pragma_warning_listpp_pragma_warning_body
pp_primary_expressionpp_unnary_expression
pp_regionpp_directive
pp_start_regionpp_region
pp_unnary_expressionpp_equality_expression
pre_decrement_expressionstatement_expression / unary_expression
pre_increment_expressionstatement_expression / unary_expression
predefined_typemember_access_prefix
primary_constrainttype_parameter_constraints
primary_expressioninvocation_expression / member_access_prefix / pointer_member_expression / post_decrement_expression / post_increment_expression / unary_expression
primary_no_array_creation_expressionelement_access / pointer_element_expression / primary_expression
property_declarationclass_member_declaration / struct_member_declaration
property_modifierproperty_prefix
property_prefixproperty_declaration
qualified_alias_membermember_access / namespace_or_type_name_prefix
qualified_identifiernamespace_declaration
query_bodyquery_continuation / query_expression
query_body_clausequery_body
query_continuationquery_body
query_expressionnon_assignment_expression
quote_excape_sequenceverbatim_string_literal_character
rank_specifierarray_creation_expression / array_type
real_literalliteral / token
real_type_suffixreal_literal
reference_typetype
regular_string_literalstring_literal
regular_string_literal_characterregular_string_literal
relation_or_type_checkrelational_expression
relational_expressionequality_expression
remove_accessor_declarationevent_accessor_declarations
resource_acquisitionusing_statement
return_statementjump_statement
return_typedelegate_declaration / interface_method_declaration / method_header
right_shiftoverloadable_binary_operator / shift_expression
right_shift_assignmentassignment_operator
secondary_constraintsecondary_constraint / type_parameter_constraints
select_clauseselect_or_group_clause
select_or_group_clausequery_body
selection_statementembedded_statement
set_accessor_declarationaccessor_declaraions
shift_expressionrelation_or_type_check / relational_expression
signexponent_part
simple_escape_sequencecharacter / regular_string_literal_character
simple_namemember_declarator / primary_no_array_creation_expression
simple_typenon_nullable_value_type / struct_type
single_charactercharacter
single_line_commentcomment / pp_new_line
single_regular_string_literal_characterregular_string_literal_character
single_verbatim_string_literal_characterverbatim_string_literal_character
sizeof_expressionprimary_no_array_creation_expression
skipped_charactersskipped_section_part
skipped_sectionconditional_section
skipped_section_partskipped_section
specific_catch_clausespecific_catch_clauses
specific_catch_clausescatch_clauses
stackalloc_initializerlocal_variable_initializer
statementblock / labeled_statement / switch_section
statement_expressionexpression_statement / statement_expression_list
statement_expression_listfor_initializer / for_iterator
static_constructor_bodystatic_constructor_declaration
static_constructor_declarationclass_member_declaration / struct_member_declaration
static_constructor_modifierstatic_constructor_prefix
static_constructor_prefixstatic_constructor_declaration
string_literalliteral / token
struct_bodystruct_declaration
struct_declarationtype_declaration
struct_intercfacesstruct_suffix
struct_member_declarationstruct_body
struct_modifierstruct_prefix
struct_prefixstruct_declaration
struct_suffixstruct_declaration
struct_typevalue_type
switch_blockswitch_statement
switch_labelswitch_section
switch_sectionswitch_block
switch_statementselection_statement
syntactic_grammarc_sharp
this_accessprimary_no_array_creation_expression
throw_statementjump_statement
tokeninput_element
try_statementembedded_statement
try_suffixtry_statement
typebinary_operator_declarator / buffer_element_type / cast_expression / constant_declaration / conversion_operator_declarator / default_value_expression / event_declaration / explicit_anonymous_method_parameter / field_declaration / fixed_parameter / from_clause / indexer_declarator / interface_event_declaration / interface_indexer_declaration / interface_property_declaration / join_clause / local_constant_declaration / local_variable_type / non_array_type / non_nullable_value_type / object_creation_expression / property_declaration / relation_or_type_check / return_type / type_argument / typeof_argument / unary_operator_declarator / unmanaged_type
type_argumenttype_arguments
type_argument_listbase_access_suffix / member_access_suffix / namespace_or_type_name_part / pointer_member_expression / qualified_alias_member / simple_name
type_argumentstype_argument_list
type_declarationclass_member_declaration / namespace_member_declaration / struct_member_declaration
type_nameattribute_name / class_type / delegate_type / enum_type / interface_type / non_nullable_value_type / struct_type
type_parameternon_array_type / secondary_constraint / type / type_parameter_constraints_clause / type_parameters / variant_type_parameters
type_parameter_constraintstype_parameter_constraints_clause
type_parameter_constraints_clausetype_parameter_constraints_clauses
type_parameter_constraints_clausesclass_suffix / delegate_suffix / interface_method_declaration / interface_suffix / method_header / struct_suffix
type_parameter_listclass_suffix / interface_method_declaration / method_header / struct_suffix
type_parameterstype_parameter_list
typeof_argumenttypeof_expression
typeof_expressionprimary_no_array_creation_expression
unary_expressionaddressof_expression / assignment / await_expression / cast_expression / multiplicative_expression / pointer_indirection_expression / pre_decrement_expression / pre_increment_expression / unary_expression
unary_operator_declaratoroperator_declarator
unbound_type_nametypeof_argument
unbound_type_name_prefixunbound_type_name
unchecked_expressionprimary_no_array_creation_expression
unchecked_statementembedded_statement
unicode_escape_sequencecharacter / regular_string_literal_character
unmanaged_typepointer_type / sizeof_expression / stackalloc_initializer
using_alias_directiveusing_directive
using_directiveusing_directives
using_directivescompilation_unit / namespace_body
using_namespace_directiveusing_directive
using_statementembedded_statement
value_typenon_array_type / type
variable_declaratorvariable_declarators
variable_declaratorsevent_suffix / field_declaration
variable_initializervariable_declarator / variable_initializer_list
variable_initializer_listarray_initializer
variable_referenceargument_value / fixed_pointer_initializer
variance_annotationvariant_prefix
variant_prefixvariant_type_parameters
variant_type_parameter_listdelegate_suffix / interface_suffix
variant_type_parametersvariant_type_parameter_list
verbatim_string_literalstring_literal
verbatim_string_literal_characterverbatim_string_literal
where_clausequery_body_clause
while_statementiteration_statement
whitespaceinput_element / ws
whitespace_characterwhitespace
wsline_indicator / pp_declaration / pp_elif_section / pp_if_section / pp_line / pp_message / pp_pragma_text / pp_pragma_warning_body / ws_opt
ws_optpp_and_expression / pp_declaration / pp_diagnostic / pp_elif_section / pp_else_section / pp_end_region / pp_endif / pp_equality_expression / pp_expression / pp_if_section / pp_line / pp_new_line / pp_or_expression / pp_pragma / pp_pragma_warning_list / pp_primary_expression / pp_start_region / pp_unnary_expression / skipped_section_part
yield_statementembedded_statement
yield_suffixyield_statement

Lookahead-1 Parser First Token

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Start symbol = c_sharp

Name First Tokens
accessor_body ";"
"{"
accessor_declaraions "["
"get"
"internal"
"private"
"protected"
"set"
accessor_modifier "internal"
"private"
"protected"
accessor_prefix ø
"["
"internal"
"private"
"protected"
add_accessor_declaration "["
"add"
additive_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
addressof_expression "&"
and_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
anonymous_method_body "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"{"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
anonymous_method_expression "async"
"delegate"
anonymous_method_signature "("
"@"
ANY_IDENTIFIER_EXCEPT_keyword
anonymous_object_creation_expression "new"
anonymous_object_initializer "{"
argument "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"out"
"ref"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
argument_list "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"out"
"ref"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
argument_name "@"
ANY_IDENTIFIER_EXCEPT_keyword
argument_value "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"out"
"ref"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
array_creation_expression "new"
array_initializer "{"
array_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
assignment "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
assignment_operator "%="
"&="
"*="
"+="
"-="
"/="
"<<="
"="
">"
"^="
"|="
asterisks "*"
attribute "@"
ANY_IDENTIFIER_EXCEPT_keyword
attribute_argument_list ø
"!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"out"
"ref"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
attribute_arguments "("
attribute_list "@"
ANY_IDENTIFIER_EXCEPT_keyword
attribute_name "@"
ANY_IDENTIFIER_EXCEPT_keyword
attribute_section "["
attribute_target "event"
"field"
"method"
"module"
"param"
"property"
"return"
"type"
attribute_target_specifier "event"
"field"
"method"
"module"
"param"
"property"
"return"
"type"
attributes "["
available_identifier ANY_IDENTIFIER_EXCEPT_keyword
await_expression "await"
base_access "base"
base_access_element_list "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"out"
"ref"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
base_access_suffix "."
"["
binary_operator_declarator "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
block "{"
boolean_literal "false"
"true"
break_statement "break"
buffer_element_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
c_sharp ø
"!"
"!="
"#"
"%"
"%="
"&"
"&&"
"&="
"'"
"("
")"
"*"
"*="
"+"
"++"
"+="
","
"-"
"--"
"-="
"->"
"."
"/"
"/*"
"//"
"/="
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
":"
"::"
";"
"<"
"<<"
"<<="
"<="
"="
"=="
"=>"
">"
">="
"?"
"??"
"@"
"["
"]"
"^"
"^="
"abstract"
"as"
"base"
"bool"
"break"
"byte"
"case"
"catch"
"char"
"checked"
"class"
"const"
"continue"
"decimal"
"default"
"delegate"
"do"
"double"
"dynamic"
"else"
"enum"
"event"
"explicit"
"extern"
"false"
"finally"
"fixed"
"float"
"for"
"foreach"
"goto"
"if"
"implicit"
"in"
"int"
"interface"
"internal"
"is"
"lock"
"long"
"namespace"
"new"
"null"
"object"
"operator"
"out"
"override"
"params"
"partial"
"private"
"protected"
"public"
"readonly"
"ref"
"return"
"sbyte"
"sealed"
"short"
"sizeof"
"stackalloc"
"static"
"string"
"struct"
"switch"
"this"
"throw"
"true"
"try"
"typeof"
"uint"
"ulong"
"unchecked"
"unsafe"
"ushort"
"using"
"virtual"
"void"
"volatile"
"while"
"{"
"|"
"|="
"||"
"}"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
ANY_UNICODE_Zs_CHAR
CR_u000D
FF_u000C
HT_u0009
LF_u000A
LS_u2028
NL_u0085
PS_u2029
VT_u000B
cast_expression "("
catch_clauses "catch"
character "\'"
"\0"
"\U"
"\\"
"\a"
"\b"
"\f"
"\n"
"\r"
"\t"
"\u"
"\v"
"\x"
'\"'
ANY_UNICODE_EXCEPT_u0027_u005C_new_line
character_literal "'"
checked_expression "checked"
checked_statement "checked"
class_base ":"
class_body "{"
class_declaration "["
"abstract"
"class"
"internal"
"new"
"partial"
"private"
"protected"
"public"
"sealed"
"static"
"unsafe"
class_member_declaration "@"
"["
"abstract"
"async"
"bool"
"byte"
"char"
"class"
"const"
"decimal"
"delegate"
"double"
"dynamic"
"enum"
"event"
"explicit"
"extern"
"float"
"implicit"
"int"
"interface"
"internal"
"long"
"new"
"object"
"override"
"partial"
"private"
"protected"
"public"
"readonly"
"sbyte"
"sealed"
"short"
"static"
"string"
"struct"
"uint"
"ulong"
"unsafe"
"ushort"
"virtual"
"void"
"volatile"
"~"
ANY_IDENTIFIER_EXCEPT_keyword
class_modifier "abstract"
"internal"
"new"
"private"
"protected"
"public"
"sealed"
"static"
"unsafe"
class_prefix ø
"["
"abstract"
"internal"
"new"
"partial"
"private"
"protected"
"public"
"sealed"
"static"
"unsafe"
class_suffix ø
":"
"<"
"where"
class_type "@"
"dynamic"
"object"
"string"
ANY_IDENTIFIER_EXCEPT_keyword
collection_initializer "{"
combining_character ANY_UNICODE_Mn_Mc
ANY_UXXXXXXXX_Mn_Mc
ANY_uXXXX_Mn_Mc
comment "/*"
"//"
compilation_unit ø
"["
"abstract"
"class"
"delegate"
"enum"
"extern"
"interface"
"internal"
"namespace"
"new"
"partial"
"private"
"protected"
"public"
"sealed"
"static"
"struct"
"unsafe"
"using"
conditional_and_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
conditional_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
conditional_or_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
conditional_section "!"
"!="
"#"
"%"
"%="
"&"
"&&"
"&="
"'"
"("
")"
"*"
"*="
"+"
"++"
"+="
","
"-"
"--"
"-="
"->"
"."
"/"
"/*"
"//"
"/="
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
":"
"::"
";"
"<"
"<<"
"<<="
"<="
"="
"=="
"=>"
">"
">="
"?"
"??"
"@"
"["
"]"
"^"
"^="
"abstract"
"as"
"base"
"bool"
"break"
"byte"
"case"
"catch"
"char"
"checked"
"class"
"const"
"continue"
"decimal"
"default"
"delegate"
"do"
"double"
"dynamic"
"else"
"enum"
"event"
"explicit"
"extern"
"false"
"finally"
"fixed"
"float"
"for"
"foreach"
"goto"
"if"
"implicit"
"in"
"int"
"interface"
"internal"
"is"
"lock"
"long"
"namespace"
"new"
"null"
"object"
"operator"
"out"
"override"
"params"
"private"
"protected"
"public"
"readonly"
"ref"
"return"
"sbyte"
"sealed"
"short"
"sizeof"
"stackalloc"
"static"
"string"
"struct"
"switch"
"this"
"throw"
"true"
"try"
"typeof"
"uint"
"ulong"
"unchecked"
"unsafe"
"ushort"
"using"
"virtual"
"void"
"volatile"
"while"
"{"
"|"
"|="
"||"
"}"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
ANY_UNICODE_EXCEPT_u0023_new_line
ANY_UNICODE_Zs_CHAR
CR_u000D
FF_u000C
HT_u0009
LF_u000A
LS_u2028
NL_u0085
PS_u2029
VT_u000B
conditional_symbol "@"
ANY_IDENTIFIER_EXCEPT_keyword
ANY_keyword_EXCEPT_true_false
connecting_character ANY_UNICODE_Pc
ANY_UXXXXXXXX_Pc
ANY_uXXXX_Pc
constant_declaration "["
"const"
"internal"
"new"
"private"
"protected"
"public"
constant_declarator "@"
ANY_IDENTIFIER_EXCEPT_keyword
constant_declarators "@"
ANY_IDENTIFIER_EXCEPT_keyword
constant_modifier "internal"
"new"
"private"
"protected"
"public"
constant_prefix ø
"["
"internal"
"new"
"private"
"protected"
"public"
constructor_body ";"
"{"
constructor_constraint "new"
constructor_declaration "@"
"["
"extern"
"internal"
"private"
"protected"
"public"
"unsafe"
ANY_IDENTIFIER_EXCEPT_keyword
constructor_declatator "@"
ANY_IDENTIFIER_EXCEPT_keyword
constructor_initializer "base"
"this"
constructor_modifier "extern"
"internal"
"private"
"protected"
"public"
"unsafe"
constructor_prefix ø
"["
"extern"
"internal"
"private"
"protected"
"public"
"unsafe"
continue_statement "continue"
conversion_operator_declarator "explicit"
"implicit"
decimal_digit "0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
decimal_digit_character ANY_UNICODE_Nd
ANY_UXXXXXXXX_Nd
ANY_uXXXX_Nd
decimal_digits "0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
decimal_integer_literal "0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
declaration_statement "@"
"bool"
"byte"
"char"
"const"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"var"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
default_argument "="
default_value_expression "default"
delegate_creation_expression "new"
delegate_declaration "["
"delegate"
"internal"
"new"
"private"
"protected"
"public"
"unsafe"
delegate_modifier "internal"
"new"
"private"
"protected"
"public"
"unsafe"
delegate_prefix ø
"["
"internal"
"new"
"private"
"protected"
"public"
"unsafe"
delegate_suffix "("
"<"
delegate_type "@"
ANY_IDENTIFIER_EXCEPT_keyword
delimited_comment "/*"
delimited_comment_section "*"
ANY_UNICODE_EXCEPT_u002A
destructor_body ";"
"{"
destructor_declaration "["
"extern"
"unsafe"
"~"
destructor_modifier "extern"
"unsafe"
destructor_prefix ø
"["
"extern"
"unsafe"
do_statement "do"
element_access "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
element_initializer "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"{"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
element_initializer_list "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"{"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
embedded_statement "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
";"
"@"
"async"
"await"
"base"
"bool"
"break"
"byte"
"char"
"checked"
"continue"
"decimal"
"default"
"delegate"
"do"
"double"
"dynamic"
"false"
"fixed"
"float"
"for"
"foreach"
"goto"
"if"
"int"
"lock"
"long"
"new"
"null"
"object"
"return"
"sbyte"
"short"
"sizeof"
"string"
"switch"
"this"
"throw"
"true"
"try"
"typeof"
"uint"
"ulong"
"unchecked"
"unsafe"
"ushort"
"using"
"while"
"yield"
"{"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
empty_statement ";"
enum_base "byte"
"char"
"int"
"long"
"sbyte"
"short"
"uint"
"ulong"
"ushort"
enum_body "{"
enum_declaration "["
"enum"
"internal"
"new"
"private"
"protected"
"public"
enum_member_declaration "@"
"["
ANY_IDENTIFIER_EXCEPT_keyword
enum_member_declarations "@"
"["
ANY_IDENTIFIER_EXCEPT_keyword
enum_modifier "internal"
"new"
"private"
"protected"
"public"
enum_prefix ø
"["
"internal"
"new"
"private"
"protected"
"public"
enum_suffix ø
":"
enum_type "@"
ANY_IDENTIFIER_EXCEPT_keyword
equality_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
event_accessor_declarations "["
"add"
"remove"
event_declaration "["
"abstract"
"event"
"extern"
"internal"
"new"
"override"
"private"
"protected"
"public"
"sealed"
"static"
"unsafe"
"virtual"
event_modifier "abstract"
"extern"
"internal"
"new"
"override"
"private"
"protected"
"public"
"sealed"
"static"
"unsafe"
"virtual"
event_prefix ø
"["
"abstract"
"extern"
"internal"
"new"
"override"
"private"
"protected"
"public"
"sealed"
"static"
"unsafe"
"virtual"
event_suffix "@"
ANY_IDENTIFIER_EXCEPT_keyword
exclusive_or_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
explicit_anonymous_method_parameter "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"out"
"ref"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
explicit_anonymous_method_parameter_list "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"out"
"ref"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
explicit_anonymous_method_signature "("
explicit_parameter_modifier "out"
"ref"
exponent_part "E"
"e"
expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
expression_list "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
expression_statement "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
extern_alias_directive "extern"
extern_alias_directives "extern"
field_declaration "@"
"["
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"internal"
"long"
"new"
"object"
"private"
"protected"
"public"
"readonly"
"sbyte"
"short"
"static"
"string"
"uint"
"ulong"
"unsafe"
"ushort"
"void"
"volatile"
ANY_IDENTIFIER_EXCEPT_keyword
field_modifier "internal"
"new"
"private"
"protected"
"public"
"readonly"
"static"
"unsafe"
"volatile"
field_prefix ø
"["
"internal"
"new"
"private"
"protected"
"public"
"readonly"
"static"
"unsafe"
"volatile"
file_name '"'
file_name_character ANY_UNICODE_EXCEPT_u0022_new_line
finalizer_body ";"
"{"
finalizer_declaration "["
"extern"
"unsafe"
"~"
finalizer_modifier "extern"
"unsafe"
finalizer_prefix ø
"["
"extern"
"unsafe"
finally_clause "finally"
fixed_parameter "@"
"["
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"out"
"ref"
"sbyte"
"short"
"string"
"this"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
fixed_pointer_declarator "@"
ANY_IDENTIFIER_EXCEPT_keyword
fixed_pointer_declarators "@"
ANY_IDENTIFIER_EXCEPT_keyword
fixed_pointer_initializer "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
fixed_size_buffer_declaration "["
"fixed"
"internal"
"new"
"private"
"protected"
"public"
"unsafe"
fixed_size_buffer_declarator "@"
ANY_IDENTIFIER_EXCEPT_keyword
fixed_size_buffer_declarators "@"
ANY_IDENTIFIER_EXCEPT_keyword
fixed_size_buffer_modifier "internal"
"new"
"private"
"protected"
"public"
"unsafe"
fixed_statement "fixed"
floating_point_type "double"
"float"
for_initializer "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"var"
"void"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
for_iterator "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
for_statement "for"
foreach_statement "foreach"
formal_parameter_list "@"
"["
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"out"
"params"
"ref"
"sbyte"
"short"
"string"
"this"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
formatting_character ANY_UNICODE_Cf
ANY_UXXXXXXXX_Cf
ANY_uXXXX_Cf
from_clause "from"
general_catch_clause "catch"
generic_dimension_specifier "<"
get_accessor_declaration "["
"get"
"internal"
"private"
"protected"
global_attribute_section "["
global_attribute_target "assembly"
"module"
global_attribute_target_specifier "assembly"
"module"
global_attributes "["
goto_label "@"
"case"
"default"
ANY_IDENTIFIER_EXCEPT_keyword
goto_statement "goto"
group_clause "group"
hex_digit "0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"A"
"B"
"C"
"D"
"E"
"F"
"a"
"b"
"c"
"d"
"e"
"f"
hex_digits "0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"A"
"B"
"C"
"D"
"E"
"F"
"a"
"b"
"c"
"d"
"e"
"f"
hexadecimal_escape_sequence "\x"
hexadecimal_integer_literal "0X"
"0x"
identifier "@"
ANY_IDENTIFIER_EXCEPT_keyword
identifier_or_keyword "_"
ANY_UNICODE_Lu_Ll_Lt_Lm_Lo_Ni
ANY_UXXXXXXXX_Lu_Ll_Lt_Lm_Lo_Ni
ANY_uXXXX_Lu_Ll_Lt_Lm_Lo_Ni
identifier_part_character ANY_UNICODE_Cf
ANY_UNICODE_Lu_Ll_Lt_Lm_Lo_Ni
ANY_UNICODE_Mn_Mc
ANY_UNICODE_Nd
ANY_UNICODE_Pc
ANY_UXXXXXXXX_Cf
ANY_UXXXXXXXX_Lu_Ll_Lt_Lm_Lo_Ni
ANY_UXXXXXXXX_Mn_Mc
ANY_UXXXXXXXX_Nd
ANY_UXXXXXXXX_Pc
ANY_uXXXX_Cf
ANY_uXXXX_Lu_Ll_Lt_Lm_Lo_Ni
ANY_uXXXX_Mn_Mc
ANY_uXXXX_Nd
ANY_uXXXX_Pc
identifier_start_character "_"
ANY_UNICODE_Lu_Ll_Lt_Lm_Lo_Ni
ANY_UXXXXXXXX_Lu_Ll_Lt_Lm_Lo_Ni
ANY_uXXXX_Lu_Ll_Lt_Lm_Lo_Ni
if_statement "if"
implicit_anonymous_method_parameter "@"
ANY_IDENTIFIER_EXCEPT_keyword
implicit_anonymous_method_parameter_list "@"
ANY_IDENTIFIER_EXCEPT_keyword
implicit_anonymous_method_signature "("
"@"
ANY_IDENTIFIER_EXCEPT_keyword
inclusive_or_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
indexer_declaration "@"
"["
"abstract"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"extern"
"float"
"int"
"internal"
"long"
"new"
"object"
"override"
"private"
"protected"
"public"
"sbyte"
"sealed"
"short"
"string"
"uint"
"ulong"
"unsafe"
"ushort"
"virtual"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
indexer_declarator "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
indexer_modifier "abstract"
"extern"
"internal"
"new"
"override"
"private"
"protected"
"public"
"sealed"
"unsafe"
"virtual"
indexer_prefix ø
"["
"abstract"
"extern"
"internal"
"new"
"override"
"private"
"protected"
"public"
"sealed"
"unsafe"
"virtual"
initializer_value "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"{"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
input ø
"!"
"!="
"#"
"%"
"%="
"&"
"&&"
"&="
"'"
"("
")"
"*"
"*="
"+"
"++"
"+="
","
"-"
"--"
"-="
"->"
"."
"/"
"/*"
"//"
"/="
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
":"
"::"
";"
"<"
"<<"
"<<="
"<="
"="
"=="
"=>"
">"
">="
"?"
"??"
"@"
"["
"]"
"^"
"^="
"abstract"
"as"
"base"
"bool"
"break"
"byte"
"case"
"catch"
"char"
"checked"
"class"
"const"
"continue"
"decimal"
"default"
"delegate"
"do"
"double"
"dynamic"
"else"
"enum"
"event"
"explicit"
"extern"
"false"
"finally"
"fixed"
"float"
"for"
"foreach"
"goto"
"if"
"implicit"
"in"
"int"
"interface"
"internal"
"is"
"lock"
"long"
"namespace"
"new"
"null"
"object"
"operator"
"out"
"override"
"params"
"private"
"protected"
"public"
"readonly"
"ref"
"return"
"sbyte"
"sealed"
"short"
"sizeof"
"stackalloc"
"static"
"string"
"struct"
"switch"
"this"
"throw"
"true"
"try"
"typeof"
"uint"
"ulong"
"unchecked"
"unsafe"
"ushort"
"using"
"virtual"
"void"
"volatile"
"while"
"{"
"|"
"|="
"||"
"}"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
ANY_UNICODE_Zs_CHAR
CR_u000D
FF_u000C
HT_u0009
LF_u000A
LS_u2028
NL_u0085
PS_u2029
VT_u000B
input_character ANY_UNICODE_EXCEPT_new_line
input_element "!"
"!="
"%"
"%="
"&"
"&&"
"&="
"'"
"("
")"
"*"
"*="
"+"
"++"
"+="
","
"-"
"--"
"-="
"->"
"."
"/"
"/*"
"//"
"/="
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
":"
"::"
";"
"<"
"<<"
"<<="
"<="
"="
"=="
"=>"
">"
">="
"?"
"??"
"@"
"["
"]"
"^"
"^="
"abstract"
"as"
"base"
"bool"
"break"
"byte"
"case"
"catch"
"char"
"checked"
"class"
"const"
"continue"
"decimal"
"default"
"delegate"
"do"
"double"
"dynamic"
"else"
"enum"
"event"
"explicit"
"extern"
"false"
"finally"
"fixed"
"float"
"for"
"foreach"
"goto"
"if"
"implicit"
"in"
"int"
"interface"
"internal"
"is"
"lock"
"long"
"namespace"
"new"
"null"
"object"
"operator"
"out"
"override"
"params"
"private"
"protected"
"public"
"readonly"
"ref"
"return"
"sbyte"
"sealed"
"short"
"sizeof"
"stackalloc"
"static"
"string"
"struct"
"switch"
"this"
"throw"
"true"
"try"
"typeof"
"uint"
"ulong"
"unchecked"
"unsafe"
"ushort"
"using"
"virtual"
"void"
"volatile"
"while"
"{"
"|"
"|="
"||"
"}"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
input_section "!"
"!="
"#"
"%"
"%="
"&"
"&&"
"&="
"'"
"("
")"
"*"
"*="
"+"
"++"
"+="
","
"-"
"--"
"-="
"->"
"."
"/"
"/*"
"//"
"/="
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
":"
"::"
";"
"<"
"<<"
"<<="
"<="
"="
"=="
"=>"
">"
">="
"?"
"??"
"@"
"["
"]"
"^"
"^="
"abstract"
"as"
"base"
"bool"
"break"
"byte"
"case"
"catch"
"char"
"checked"
"class"
"const"
"continue"
"decimal"
"default"
"delegate"
"do"
"double"
"dynamic"
"else"
"enum"
"event"
"explicit"
"extern"
"false"
"finally"
"fixed"
"float"
"for"
"foreach"
"goto"
"if"
"implicit"
"in"
"int"
"interface"
"internal"
"is"
"lock"
"long"
"namespace"
"new"
"null"
"object"
"operator"
"out"
"override"
"params"
"private"
"protected"
"public"
"readonly"
"ref"
"return"
"sbyte"
"sealed"
"short"
"sizeof"
"stackalloc"
"static"
"string"
"struct"
"switch"
"this"
"throw"
"true"
"try"
"typeof"
"uint"
"ulong"
"unchecked"
"unsafe"
"ushort"
"using"
"virtual"
"void"
"volatile"
"while"
"{"
"|"
"|="
"||"
"}"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
ANY_UNICODE_Zs_CHAR
CR_u000D
FF_u000C
HT_u0009
LF_u000A
LS_u2028
NL_u0085
PS_u2029
VT_u000B
input_section_part "!"
"!="
"#"
"%"
"%="
"&"
"&&"
"&="
"'"
"("
")"
"*"
"*="
"+"
"++"
"+="
","
"-"
"--"
"-="
"->"
"."
"/"
"/*"
"//"
"/="
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
":"
"::"
";"
"<"
"<<"
"<<="
"<="
"="
"=="
"=>"
">"
">="
"?"
"??"
"@"
"["
"]"
"^"
"^="
"abstract"
"as"
"base"
"bool"
"break"
"byte"
"case"
"catch"
"char"
"checked"
"class"
"const"
"continue"
"decimal"
"default"
"delegate"
"do"
"double"
"dynamic"
"else"
"enum"
"event"
"explicit"
"extern"
"false"
"finally"
"fixed"
"float"
"for"
"foreach"
"goto"
"if"
"implicit"
"in"
"int"
"interface"
"internal"
"is"
"lock"
"long"
"namespace"
"new"
"null"
"object"
"operator"
"out"
"override"
"params"
"private"
"protected"
"public"
"readonly"
"ref"
"return"
"sbyte"
"sealed"
"short"
"sizeof"
"stackalloc"
"static"
"string"
"struct"
"switch"
"this"
"throw"
"true"
"try"
"typeof"
"uint"
"ulong"
"unchecked"
"unsafe"
"ushort"
"using"
"virtual"
"void"
"volatile"
"while"
"{"
"|"
"|="
"||"
"}"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
ANY_UNICODE_Zs_CHAR
CR_u000D
FF_u000C
HT_u0009
LF_u000A
LS_u2028
NL_u0085
PS_u2029
VT_u000B
integer_literal "0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
integer_type_suffix "L"
"LU"
"Lu"
"U"
"UL"
"Ul"
"l"
"lU"
"lu"
"u"
"uL"
"ul"
integral_type "byte"
"char"
"int"
"long"
"sbyte"
"short"
"uint"
"ulong"
"ushort"
intercface_base ":"
interface_accessor "["
"get"
"set"
interface_body "{"
interface_declaration "["
"interface"
"internal"
"new"
"partial"
"private"
"protected"
"public"
"unsafe"
interface_event_declaration "["
"event"
"new"
interface_get_accessor "["
"get"
interface_indexer_declaration "@"
"["
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"new"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
interface_member_delcaration "@"
"["
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"event"
"float"
"int"
"long"
"new"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
interface_method_declaration "@"
"["
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"new"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
interface_modifier "internal"
"new"
"private"
"protected"
"public"
"unsafe"
interface_prefix ø
"["
"internal"
"new"
"partial"
"private"
"protected"
"public"
"unsafe"
interface_property_declaration "@"
"["
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"new"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
interface_set_accessor "["
"set"
interface_suffix ø
":"
"<"
"where"
interface_type "@"
ANY_IDENTIFIER_EXCEPT_keyword
interface_type_list "@"
ANY_IDENTIFIER_EXCEPT_keyword
invocation_expression "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
iteration_statement "do"
"for"
"foreach"
"while"
join_clause "join"
join_into_clause "join"
jump_statement "break"
"continue"
"goto"
"return"
"throw"
keyword "abstract"
"as"
"base"
"bool"
"break"
"byte"
"case"
"catch"
"char"
"checked"
"class"
"const"
"continue"
"decimal"
"default"
"delegate"
"do"
"double"
"dynamic"
"else"
"enum"
"event"
"explicit"
"extern"
"false"
"finally"
"fixed"
"float"
"for"
"foreach"
"goto"
"if"
"implicit"
"in"
"int"
"interface"
"internal"
"is"
"lock"
"long"
"namespace"
"new"
"null"
"object"
"operator"
"out"
"override"
"params"
"private"
"protected"
"public"
"readonly"
"ref"
"return"
"sbyte"
"sealed"
"short"
"sizeof"
"stackalloc"
"static"
"string"
"struct"
"switch"
"this"
"throw"
"true"
"try"
"typeof"
"uint"
"ulong"
"unchecked"
"unsafe"
"ushort"
"using"
"virtual"
"void"
"volatile"
"while"
labeled_statement "@"
ANY_IDENTIFIER_EXCEPT_keyword
lambda_expression "("
"@"
"async"
ANY_IDENTIFIER_EXCEPT_keyword
let_clause "let"
letter_character ANY_UNICODE_Lu_Ll_Lt_Lm_Lo_Ni
ANY_UXXXXXXXX_Lu_Ll_Lt_Lm_Lo_Ni
ANY_uXXXX_Lu_Ll_Lt_Lm_Lo_Ni
lexical_grammar ø
"!"
"!="
"#"
"%"
"%="
"&"
"&&"
"&="
"'"
"("
")"
"*"
"*="
"+"
"++"
"+="
","
"-"
"--"
"-="
"->"
"."
"/"
"/*"
"//"
"/="
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
":"
"::"
";"
"<"
"<<"
"<<="
"<="
"="
"=="
"=>"
">"
">="
"?"
"??"
"@"
"["
"]"
"^"
"^="
"abstract"
"as"
"base"
"bool"
"break"
"byte"
"case"
"catch"
"char"
"checked"
"class"
"const"
"continue"
"decimal"
"default"
"delegate"
"do"
"double"
"dynamic"
"else"
"enum"
"event"
"explicit"
"extern"
"false"
"finally"
"fixed"
"float"
"for"
"foreach"
"goto"
"if"
"implicit"
"in"
"int"
"interface"
"internal"
"is"
"lock"
"long"
"namespace"
"new"
"null"
"object"
"operator"
"out"
"override"
"params"
"private"
"protected"
"public"
"readonly"
"ref"
"return"
"sbyte"
"sealed"
"short"
"sizeof"
"stackalloc"
"static"
"string"
"struct"
"switch"
"this"
"throw"
"true"
"try"
"typeof"
"uint"
"ulong"
"unchecked"
"unsafe"
"ushort"
"using"
"virtual"
"void"
"volatile"
"while"
"{"
"|"
"|="
"||"
"}"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
ANY_UNICODE_Zs_CHAR
CR_u000D
FF_u000C
HT_u0009
LF_u000A
LS_u2028
NL_u0085
PS_u2029
VT_u000B
line_indicator "0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"_"
"default"
"hidden"
ANY_UNICODE_Lu_Ll_Lt_Lm_Lo_Ni
ANY_UXXXXXXXX_Lu_Ll_Lt_Lm_Lo_Ni
ANY_uXXXX_Lu_Ll_Lt_Lm_Lo_Ni
literal "'"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"false"
"null"
"true"
'"'
'@"'
local_constant_declaration "const"
local_variable_declaration "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"var"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
local_variable_declarator "@"
ANY_IDENTIFIER_EXCEPT_keyword
local_variable_initializer "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"stackalloc"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"{"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
local_variable_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"var"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
lock_statement "lock"
member_access "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
member_access_prefix "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
member_access_suffix "@"
ANY_IDENTIFIER_EXCEPT_keyword
member_declarator "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
member_declarator_list "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
member_initializer "@"
ANY_IDENTIFIER_EXCEPT_keyword
member_initializer_list "@"
ANY_IDENTIFIER_EXCEPT_keyword
member_name "@"
ANY_IDENTIFIER_EXCEPT_keyword
method_body ";"
"{"
method_declaration "@"
"["
"abstract"
"async"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"extern"
"float"
"int"
"internal"
"long"
"new"
"object"
"override"
"partial"
"private"
"protected"
"public"
"sbyte"
"sealed"
"short"
"static"
"string"
"uint"
"ulong"
"unsafe"
"ushort"
"virtual"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
method_header "@"
"["
"abstract"
"async"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"extern"
"float"
"int"
"internal"
"long"
"new"
"object"
"override"
"partial"
"private"
"protected"
"public"
"sbyte"
"sealed"
"short"
"static"
"string"
"uint"
"ulong"
"unsafe"
"ushort"
"virtual"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
method_modifier "abstract"
"async"
"extern"
"internal"
"new"
"override"
"private"
"protected"
"public"
"sealed"
"static"
"unsafe"
"virtual"
method_prefix ø
"["
"abstract"
"async"
"extern"
"internal"
"new"
"override"
"partial"
"private"
"protected"
"public"
"sealed"
"static"
"unsafe"
"virtual"
multiplicative_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
named_argument "@"
ANY_IDENTIFIER_EXCEPT_keyword
named_argument_list "@"
ANY_IDENTIFIER_EXCEPT_keyword
namespace_body "{"
namespace_declaration "namespace"
namespace_member_declaration "["
"abstract"
"class"
"delegate"
"enum"
"interface"
"internal"
"namespace"
"new"
"partial"
"private"
"protected"
"public"
"sealed"
"static"
"struct"
"unsafe"
namespace_member_declarations "["
"abstract"
"class"
"delegate"
"enum"
"interface"
"internal"
"namespace"
"new"
"partial"
"private"
"protected"
"public"
"sealed"
"static"
"struct"
"unsafe"
namespace_name "@"
ANY_IDENTIFIER_EXCEPT_keyword
namespace_or_type_name "@"
ANY_IDENTIFIER_EXCEPT_keyword
namespace_or_type_name_part "@"
ANY_IDENTIFIER_EXCEPT_keyword
namespace_or_type_name_prefix "@"
ANY_IDENTIFIER_EXCEPT_keyword
new_line CR_u000D
LF_u000A
LS_u2028
NL_u0085
PS_u2029
non_array_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
non_assignment_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
non_asterisk ANY_UNICODE_EXCEPT_u002A
non_nullable_value_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
non_slash ANY_UNICODE_EXCEPT_u002F
not_number_sign ANY_UNICODE_EXCEPT_u0023_new_line
null_coalescing_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
null_literal "null"
nullable_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
numeric_type "byte"
"char"
"decimal"
"double"
"float"
"int"
"long"
"sbyte"
"short"
"uint"
"ulong"
"ushort"
object_creation_expression "new"
object_initializer "{"
object_or_collection_initializer "{"
operator_body ";"
"{"
operator_declaration "@"
"["
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"explicit"
"extern"
"float"
"implicit"
"int"
"long"
"object"
"public"
"sbyte"
"short"
"static"
"string"
"uint"
"ulong"
"unsafe"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
operator_declarator "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"explicit"
"float"
"implicit"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
operator_modifier "extern"
"public"
"static"
"unsafe"
operator_or_punctuation "!"
"!="
"%"
"%="
"&"
"&&"
"&="
"("
")"
"*"
"*="
"+"
"++"
"+="
","
"-"
"--"
"-="
"->"
"."
"/"
"/="
":"
"::"
";"
"<"
"<<"
"<<="
"<="
"="
"=="
"=>"
">"
">="
"?"
"??"
"["
"]"
"^"
"^="
"{"
"|"
"|="
"||"
"}"
"~"
operator_prefix ø
"["
"extern"
"public"
"static"
"unsafe"
orderby_clause "orderby"
ordering "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
ordering_direction "ascending"
"descending"
overloadable_binary_operator "!="
"%"
"&"
"*"
"+"
"-"
"/"
"<"
"<<"
"<="
"=="
">"
">="
"^"
"|"
overloadable_unary_operator "!"
"+"
"++"
"-"
"--"
"false"
"true"
"~"
parameter_array "["
"params"
parameter_modifier "out"
"ref"
"this"
parameter_prefix ø
"["
"out"
"ref"
"this"
parenthesized_expression "("
pointer_element_expression "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
pointer_indirection_expression "*"
pointer_member_expression "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
pointer_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
positional_argument "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
positional_argument_list "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"out"
"ref"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
post_decrement_expression "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
post_increment_expression "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
pp_and_expression "!"
"("
"@"
"false"
"true"
ANY_IDENTIFIER_EXCEPT_keyword
ANY_keyword_EXCEPT_true_false
pp_conditional "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_declaration "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_diagnostic "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_directive "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_elif_section "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_else_section "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_end_region "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_endif "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_equality_expression "!"
"("
"@"
"false"
"true"
ANY_IDENTIFIER_EXCEPT_keyword
ANY_keyword_EXCEPT_true_false
pp_expression "!"
"("
"@"
"false"
"true"
ANY_IDENTIFIER_EXCEPT_keyword
ANY_UNICODE_Zs_CHAR
ANY_keyword_EXCEPT_true_false
FF_u000C
HT_u0009
VT_u000B
pp_if_section "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_line "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_message ANY_UNICODE_Zs_CHAR
CR_u000D
FF_u000C
HT_u0009
LF_u000A
LS_u2028
NL_u0085
PS_u2029
VT_u000B
pp_new_line "//"
ANY_UNICODE_Zs_CHAR
CR_u000D
FF_u000C
HT_u0009
LF_u000A
LS_u2028
NL_u0085
PS_u2029
VT_u000B
pp_or_expression "!"
"("
"@"
"false"
"true"
ANY_IDENTIFIER_EXCEPT_keyword
ANY_keyword_EXCEPT_true_false
pp_pragma "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_pragma_body ø
"warning"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_pragma_text ø
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_pragma_warning_action "disable"
"restore"
pp_pragma_warning_body "warning"
pp_pragma_warning_list "0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
pp_primary_expression "("
"@"
"false"
"true"
ANY_IDENTIFIER_EXCEPT_keyword
ANY_keyword_EXCEPT_true_false
pp_region "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_start_region "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
pp_unnary_expression "!"
"("
"@"
"false"
"true"
ANY_IDENTIFIER_EXCEPT_keyword
ANY_keyword_EXCEPT_true_false
pre_decrement_expression "--"
pre_increment_expression "++"
predefined_type "bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
primary_constraint "@"
"class"
"dynamic"
"object"
"string"
"struct"
ANY_IDENTIFIER_EXCEPT_keyword
primary_expression "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
primary_no_array_creation_expression "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
property_declaration "@"
"["
"abstract"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"extern"
"float"
"int"
"internal"
"long"
"new"
"object"
"override"
"private"
"protected"
"public"
"sbyte"
"sealed"
"short"
"static"
"string"
"uint"
"ulong"
"unsafe"
"ushort"
"virtual"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
property_modifier "abstract"
"extern"
"internal"
"new"
"override"
"private"
"protected"
"public"
"sealed"
"static"
"unsafe"
"virtual"
property_prefix ø
"["
"abstract"
"extern"
"internal"
"new"
"override"
"private"
"protected"
"public"
"sealed"
"static"
"unsafe"
"virtual"
qualified_alias_member "@"
ANY_IDENTIFIER_EXCEPT_keyword
qualified_identifier "@"
ANY_IDENTIFIER_EXCEPT_keyword
query_body "from"
"group"
"join"
"let"
"orderby"
"select"
"where"
query_body_clause "from"
"join"
"let"
"orderby"
"where"
query_continuation "into"
query_expression "from"
quote_excape_sequence '""'
rank_specifier "["
real_literal "."
"0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
real_type_suffix "D"
"F"
"M"
"d"
"f"
"m"
reference_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
regular_string_literal '"'
regular_string_literal_character "\'"
"\0"
"\U"
"\\"
"\a"
"\b"
"\f"
"\n"
"\r"
"\t"
"\u"
"\v"
"\x"
'\"'
ANY_UNICODE_EXCEPT_u0022_u005C_new_line
relation_or_type_check "<"
"<="
">"
">="
"as"
"is"
relational_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
remove_accessor_declaration "["
"remove"
resource_acquisition "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"var"
"void"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
return_statement "return"
return_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
right_shift ">"
right_shift_assignment ">"
secondary_constraint "@"
ANY_IDENTIFIER_EXCEPT_keyword
select_clause "select"
select_or_group_clause "group"
"select"
selection_statement "if"
"switch"
set_accessor_declaration "["
"internal"
"private"
"protected"
"set"
shift_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
sign "+"
"-"
simple_escape_sequence "\'"
"\0"
"\\"
"\a"
"\b"
"\f"
"\n"
"\r"
"\t"
"\v"
'\"'
simple_name "@"
ANY_IDENTIFIER_EXCEPT_keyword
simple_type "bool"
"byte"
"char"
"decimal"
"double"
"float"
"int"
"long"
"sbyte"
"short"
"uint"
"ulong"
"ushort"
single_character ANY_UNICODE_EXCEPT_u0027_u005C_new_line
single_line_comment "//"
single_regular_string_literal_character ANY_UNICODE_EXCEPT_u0022_u005C_new_line
single_verbatim_string_literal_character ANY_UNICODE_EXCEPT_u0022
sizeof_expression "sizeof"
skipped_characters ANY_UNICODE_EXCEPT_u0023_new_line
skipped_section "#"
ANY_UNICODE_EXCEPT_u0023_new_line
ANY_UNICODE_Zs_CHAR
CR_u000D
FF_u000C
HT_u0009
LF_u000A
LS_u2028
NL_u0085
PS_u2029
VT_u000B
skipped_section_part "#"
ANY_UNICODE_EXCEPT_u0023_new_line
ANY_UNICODE_Zs_CHAR
CR_u000D
FF_u000C
HT_u0009
LF_u000A
LS_u2028
NL_u0085
PS_u2029
VT_u000B
specific_catch_clause "catch"
specific_catch_clauses "catch"
stackalloc_initializer "stackalloc"
statement "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
";"
"@"
"async"
"await"
"base"
"bool"
"break"
"byte"
"char"
"checked"
"const"
"continue"
"decimal"
"default"
"delegate"
"do"
"double"
"dynamic"
"false"
"fixed"
"float"
"for"
"foreach"
"goto"
"if"
"int"
"lock"
"long"
"new"
"null"
"object"
"return"
"sbyte"
"short"
"sizeof"
"string"
"switch"
"this"
"throw"
"true"
"try"
"typeof"
"uint"
"ulong"
"unchecked"
"unsafe"
"ushort"
"using"
"var"
"void"
"while"
"yield"
"{"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
statement_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
statement_expression_list "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
static_constructor_body ";"
"{"
static_constructor_declaration "["
"extern"
"static"
"unsafe"
static_constructor_modifier "extern"
"static"
"unsafe"
static_constructor_prefix "["
"extern"
"static"
"unsafe"
string_literal '"'
'@"'
struct_body "{"
struct_declaration "["
"internal"
"new"
"partial"
"private"
"protected"
"public"
"struct"
"unsafe"
struct_intercfaces ":"
struct_member_declaration "@"
"["
"abstract"
"async"
"bool"
"byte"
"char"
"class"
"decimal"
"delegate"
"double"
"dynamic"
"enum"
"event"
"explicit"
"extern"
"fixed"
"float"
"implicit"
"int"
"interface"
"internal"
"long"
"new"
"object"
"override"
"partial"
"private"
"protected"
"public"
"readonly"
"sbyte"
"sealed"
"short"
"static"
"string"
"struct"
"uint"
"ulong"
"unsafe"
"ushort"
"virtual"
"void"
"volatile"
ANY_IDENTIFIER_EXCEPT_keyword
struct_modifier "internal"
"new"
"private"
"protected"
"public"
"unsafe"
struct_prefix ø
"["
"internal"
"new"
"partial"
"private"
"protected"
"public"
"unsafe"
struct_suffix ø
":"
"<"
"where"
struct_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
switch_block "{"
switch_label "case"
"default"
switch_section "case"
"default"
switch_statement "switch"
syntactic_grammar ø
"["
"abstract"
"class"
"delegate"
"enum"
"extern"
"interface"
"internal"
"namespace"
"new"
"partial"
"private"
"protected"
"public"
"sealed"
"static"
"struct"
"unsafe"
"using"
this_access "this"
throw_statement "throw"
token "!"
"!="
"%"
"%="
"&"
"&&"
"&="
"'"
"("
")"
"*"
"*="
"+"
"++"
"+="
","
"-"
"--"
"-="
"->"
"."
"/"
"/="
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
":"
"::"
";"
"<"
"<<"
"<<="
"<="
"="
"=="
"=>"
">"
">="
"?"
"??"
"@"
"["
"]"
"^"
"^="
"abstract"
"as"
"base"
"bool"
"break"
"byte"
"case"
"catch"
"char"
"checked"
"class"
"const"
"continue"
"decimal"
"default"
"delegate"
"do"
"double"
"dynamic"
"else"
"enum"
"event"
"explicit"
"extern"
"false"
"finally"
"fixed"
"float"
"for"
"foreach"
"goto"
"if"
"implicit"
"in"
"int"
"interface"
"internal"
"is"
"lock"
"long"
"namespace"
"new"
"null"
"object"
"operator"
"out"
"override"
"params"
"private"
"protected"
"public"
"readonly"
"ref"
"return"
"sbyte"
"sealed"
"short"
"sizeof"
"stackalloc"
"static"
"string"
"struct"
"switch"
"this"
"throw"
"true"
"try"
"typeof"
"uint"
"ulong"
"unchecked"
"unsafe"
"ushort"
"using"
"virtual"
"void"
"volatile"
"while"
"{"
"|"
"|="
"||"
"}"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
try_statement "try"
try_suffix "catch"
"finally"
type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
type_argument "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
type_argument_list "<"
type_arguments "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
type_declaration "["
"abstract"
"class"
"delegate"
"enum"
"interface"
"internal"
"new"
"partial"
"private"
"protected"
"public"
"sealed"
"static"
"struct"
"unsafe"
type_name "@"
ANY_IDENTIFIER_EXCEPT_keyword
type_parameter "@"
ANY_IDENTIFIER_EXCEPT_keyword
type_parameter_constraints "@"
"class"
"dynamic"
"new"
"object"
"string"
"struct"
ANY_IDENTIFIER_EXCEPT_keyword
type_parameter_constraints_clause "where"
type_parameter_constraints_clauses "where"
type_parameter_list "<"
type_parameters "@"
"["
ANY_IDENTIFIER_EXCEPT_keyword
typeof_argument "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
typeof_expression "typeof"
unary_expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
unary_operator_declarator "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
unbound_type_name "@"
ANY_IDENTIFIER_EXCEPT_keyword
unbound_type_name_prefix "@"
ANY_IDENTIFIER_EXCEPT_keyword
unchecked_expression "unchecked"
unchecked_statement "unchecked"
unicode_escape_sequence "\U"
"\u"
unmanaged_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
using_alias_directive "using"
using_directive "using"
using_directives "using"
using_namespace_directive "using"
using_statement "using"
value_type "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
variable_declarator "@"
ANY_IDENTIFIER_EXCEPT_keyword
variable_declarators "@"
ANY_IDENTIFIER_EXCEPT_keyword
variable_initializer "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"{"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
variable_initializer_list "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"{"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
variable_reference "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
variance_annotation "in"
"out"
variant_prefix ø
"["
"in"
"out"
variant_type_parameter_list "<"
variant_type_parameters "@"
"["
"in"
"out"
ANY_IDENTIFIER_EXCEPT_keyword
verbatim_string_literal '@"'
verbatim_string_literal_character '""'
ANY_UNICODE_EXCEPT_u0022
where_clause "where"
while_statement "while"
whitespace ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
whitespace_character ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
ws ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
ws_opt ø
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
yield_statement "yield"
yield_suffix "break"
"return"


Lookahead-1 Parser Ambiguities

Ref Production Ambiguous
Literals/Terminals
Can't decide between the following
#1 accessor_declaraions "["
"internal"
"private"
"protected"
#2 anonymous_method_signature "("
#3 argument "@"
ANY_IDENTIFIER_EXCEPT_keyword
#4 array_creation_expression "new"
#5 attribute_argument_list "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"out"
"ref"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
#6 attribute_argument_list "@"
ANY_IDENTIFIER_EXCEPT_keyword
#7 base_access_element_list "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
#8 c_sharp "["
"abstract"
"class"
"delegate"
"enum"
"extern"
"interface"
"internal"
"namespace"
"new"
"private"
"protected"
"public"
"sealed"
"static"
"struct"
"unsafe"
"using"
#9 catch_clauses "catch"
#10 class_base ":"
#11 class_member_declaration "bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
#12 class_member_declaration "~"
#13 class_member_declaration "internal"
"private"
"protected"
#14 class_member_declaration "extern"
#15 class_member_declaration "unsafe"
#16 class_member_declaration "["
#17 class_member_declaration "new"
#18 class_member_declaration "static"
#19 class_member_declaration "public"
#20 class_member_declaration "override"
"virtual"
#21 class_member_declaration "@"
ANY_IDENTIFIER_EXCEPT_keyword
#22 class_member_declaration "abstract"
"sealed"
#23 class_member_declaration "partial"
#24 compilation_unit "["
#25 conditional_section "#"
ANY_UNICODE_Zs_CHAR
CR_u000D
FF_u000C
HT_u0009
LF_u000A
LS_u2028
NL_u0085
PS_u2029
VT_u000B
#26 embedded_statement "checked"
#27 embedded_statement "unchecked"
#28 event_accessor_declarations "["
#29 event_suffix "@"
ANY_IDENTIFIER_EXCEPT_keyword
#30 expression "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
#31 fixed_pointer_initializer "&"
#32 for_initializer "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
ANY_IDENTIFIER_EXCEPT_keyword
#33 formal_parameter_list "["
#34 input_section_part ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
#35 interface_accessor "["
#36 interface_member_delcaration "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
#37 interface_member_delcaration "["
"new"
#38 literal "0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
#39 member_access "@"
ANY_IDENTIFIER_EXCEPT_keyword
#40 member_access_prefix "bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
#41 member_declarator "@"
ANY_IDENTIFIER_EXCEPT_keyword
#42 member_name "@"
ANY_IDENTIFIER_EXCEPT_keyword
#43 namespace_or_type_name_prefix "@"
ANY_IDENTIFIER_EXCEPT_keyword
#44 non_array_type "bool"
"byte"
"char"
"decimal"
"double"
"float"
"int"
"long"
"sbyte"
"short"
"uint"
"ulong"
"ushort"
"void"
#45 non_array_type "@"
ANY_IDENTIFIER_EXCEPT_keyword
#46 non_array_type "dynamic"
"object"
"string"
#47 non_assignment_expression "("
"@"
"async"
ANY_IDENTIFIER_EXCEPT_keyword
#48 non_nullable_value_type "bool"
"byte"
"char"
"decimal"
"double"
"float"
"int"
"long"
"sbyte"
"short"
"uint"
"ulong"
"ushort"
#49 non_nullable_value_type "@"
ANY_IDENTIFIER_EXCEPT_keyword
#50 object_creation_expression "new"
#51 object_or_collection_initializer "{"
#52 operator_declarator "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
ANY_IDENTIFIER_EXCEPT_keyword
#53 overloadable_binary_operator ">"
#54 pointer_type "void"
#55 positional_argument "@"
ANY_IDENTIFIER_EXCEPT_keyword
#56 positional_argument_list "!"
"&"
"'"
"("
"*"
"+"
"++"
"-"
"--"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"await"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"from"
"int"
"long"
"new"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
"~"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
#57 pp_directive "#"
ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
#58 primary_expression "new"
#59 primary_no_array_creation_expression "bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
#60 primary_no_array_creation_expression "unchecked"
#61 primary_no_array_creation_expression "'"
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"false"
"null"
"true"
'"'
'@"'
#62 primary_no_array_creation_expression "sizeof"
#63 primary_no_array_creation_expression "new"
#64 primary_no_array_creation_expression "checked"
#65 primary_no_array_creation_expression "this"
#66 primary_no_array_creation_expression "@"
ANY_IDENTIFIER_EXCEPT_keyword
#67 primary_no_array_creation_expression "async"
"delegate"
#68 primary_no_array_creation_expression "default"
#69 primary_no_array_creation_expression "typeof"
#70 primary_no_array_creation_expression "("
#71 primary_no_array_creation_expression "base"
#72 query_body_clause "join"
#73 real_literal "0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
#74 reference_type "dynamic"
"object"
"string"
#75 reference_type "@"
ANY_IDENTIFIER_EXCEPT_keyword
#76 resource_acquisition "@"
"bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
ANY_IDENTIFIER_EXCEPT_keyword
#77 return_type "void"
#78 secondary_constraint "@"
ANY_IDENTIFIER_EXCEPT_keyword
#79 skipped_section_part ANY_UNICODE_Zs_CHAR
FF_u000C
HT_u0009
VT_u000B
#80 statement "bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
#81 statement "@"
ANY_IDENTIFIER_EXCEPT_keyword
#82 statement_expression "'"
"("
"."
"0"
"0X"
"0x"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"@"
"async"
"base"
"bool"
"byte"
"char"
"checked"
"decimal"
"default"
"delegate"
"double"
"dynamic"
"false"
"float"
"int"
"long"
"null"
"object"
"sbyte"
"short"
"sizeof"
"string"
"this"
"true"
"typeof"
"uint"
"ulong"
"unchecked"
"ushort"
'"'
'@"'
ANY_IDENTIFIER_EXCEPT_keyword
#83 statement_expression "++"
#84 statement_expression "--"
#85 statement_expression "new"
#86 statement_expression "await"
#87 struct_member_declaration "new"
#88 struct_member_declaration "["
"unsafe"
#89 struct_member_declaration "extern"
#90 struct_member_declaration "bool"
"byte"
"char"
"decimal"
"double"
"dynamic"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
#91 struct_member_declaration "internal"
"private"
"protected"
#92 struct_member_declaration "static"
#93 struct_member_declaration "abstract"
"sealed"
#94 struct_member_declaration "@"
ANY_IDENTIFIER_EXCEPT_keyword
#95 struct_member_declaration "override"
"virtual"
#96 struct_member_declaration "public"
#97 struct_member_declaration "partial"
#98 struct_type "bool"
"byte"
"char"
"decimal"
"double"
"float"
"int"
"long"
"sbyte"
"short"
"uint"
"ulong"
"ushort"
#99 struct_type "@"
ANY_IDENTIFIER_EXCEPT_keyword
#100 token "0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
#101 token "."
#102 type "@"
ANY_IDENTIFIER_EXCEPT_keyword
#103 type "bool"
"byte"
"char"
"decimal"
"double"
"float"
"int"
"long"
"object"
"sbyte"
"short"
"string"
"uint"
"ulong"
"ushort"
"void"
#104 type "dynamic"
#105 type_declaration "["
"internal"
"new"
"private"
"protected"
"public"
#106 type_declaration "unsafe"
#107 type_declaration "partial"
#108 type_parameter_constraints "@"
ANY_IDENTIFIER_EXCEPT_keyword
#109 typeof_argument "@"
ANY_IDENTIFIER_EXCEPT_keyword
#110 typeof_argument "void"
#111 unary_expression "("
#112 using_directive "using"
#113 value_type "@"
ANY_IDENTIFIER_EXCEPT_keyword

Created with ebnf2annot.pl (andreas.gieriet@externsoft.ch)