diff --git a/.github/workflows/dependencies/GrammarTestingEnv.tgz b/.github/workflows/dependencies/GrammarTestingEnv.tgz index a413f514c..789a06498 100644 Binary files a/.github/workflows/dependencies/GrammarTestingEnv.tgz and b/.github/workflows/dependencies/GrammarTestingEnv.tgz differ diff --git a/.github/workflows/dependencies/ReplaceAndAdd.md b/.github/workflows/dependencies/ReplaceAndAdd.md deleted file mode 100644 index 455c9a016..000000000 --- a/.github/workflows/dependencies/ReplaceAndAdd.md +++ /dev/null @@ -1,176 +0,0 @@ -# Replacements & Additions - -A “replacement & additions” file can be passed to `BuildGrammar`’s `--modification-file`/`-m` -option and contains replacement and additional rules to be added to: verify/test a grammar, -explore/test new language features, etc. It is a markdown (`.md`) file which follows the same -conventions as those used for the Standard. - -The file is processed by `BuildGrammar` similarly to other markdown files; clauses are -noted and text in ```` ```ANTLR ... ``` ```` code blocks is “parsed” (being generous here); -as ANTLR rules, mode commands, and comments (and nothing else, don’t go trying to set options -or other stuff); and added to the corresponding section in the produced grammar (`.g4`) file. - -The rules add to, or replace, existing rules in the corresponding clause; new rules are added -to the end of the clause’s rule list, replacements occur in-place. Further in the replacement -case the previous rule is kept as a comment, and this happens regardless of the previous rules -clause i.e. a replacement can move a rule to a different clause. - -A rule is only a replacement if it changes the rule’s definition or clause. -Rules with are neither additions or replacements are ignored. - -> *Note:* This means that a -replacement & additions file can actually be a complete Standard section markdown file -and only the changed rules will be extracted to update the grammar. So while working, say, -on a PR if the original Standard’s section files are passed to `BuildGrammar` as input files, -the section files changed by the PR are passed as modification files, then the resultant grammar will -reflect the PR’s changes with the old rules as comments. - -> **Important:** section numbers in replacement & additions files are not maintained by -the automatic section numbering tooling, they **must** be maintained manually. - ---- - -# Verification-Only Replacements & Additions - -This set of replacements and additions is the bare minimum required to allow the grammar -to verify and run, though it may not produce the desired lex and parse (that requires at -least the use of modes and/or lexical predicates). - -Pre-processing directives are skipped like whitespace, however lexing confirms the lexical -grammar is valid. - -This set can be used as a basic check that the grammar is a valid ANTLR grammar. - - ---- - -## Mutual Left Recursion Removal - -All but one mutual left recursive (MLR) group has been removed from the grammar (and we should -strive not to introduce any new ones). - -This change resolves the one remaining MLR group by inlining some of the non-terminal -alternatives in *primary_no_array_creation_expression*. - -Non-terminals that are inlined -are commented out and the inlined body is indented. - -This change has not been made to the Standard itself as it makes *primary_no_array_creation_expression* -“uglier” and would obfuscate somewhat the description in the Standard – both -subjective reasons of course... - -As MLR is not supported by ANTLR without this change the grammar would be rejected. - -### 12.8.1 General - -```ANTLR -// [CHANGE] This removes a mutual left-recursion group which we have (currently?) -// [CHANGE] decided to leave in the Standard. Without this change the grammar will -// [CHANGE] fail to verify. -# Expect -primary_no_array_creation_expression - : literal - | interpolated_string_expression - | simple_name - | parenthesized_expression - | tuple_expression - | member_access - | null_conditional_member_access - | invocation_expression - | element_access - | null_conditional_element_access - | this_access - | base_access - | post_increment_expression - | post_decrement_expression - | null_forgiving_expression - | object_creation_expression - | delegate_creation_expression - | anonymous_object_creation_expression - | typeof_expression - | sizeof_expression - | checked_expression - | unchecked_expression - | default_value_expression - | nameof_expression - | anonymous_method_expression - | pointer_member_access // unsafe code support - | pointer_element_access // unsafe code support - | stackalloc_expression - ; -# ReplaceWith -primary_no_array_creation_expression - : literal - | interpolated_string_expression - | simple_name - | parenthesized_expression - | tuple_expression - // | member_access - | primary_no_array_creation_expression '.' identifier type_argument_list? - | array_creation_expression '.' identifier type_argument_list? - | predefined_type '.' identifier type_argument_list? - | qualified_alias_member '.' identifier type_argument_list? - // | null_conditional_member_access - | primary_no_array_creation_expression '?' '.' identifier type_argument_list? dependent_access* - | array_creation_expression '?' '.' identifier type_argument_list? dependent_access* - // | invocation_expression - | primary_no_array_creation_expression '(' argument_list? ')' - | array_creation_expression '(' argument_list? ')' - // | element_access and pointer_element_access (unsafe code support) - | primary_no_array_creation_expression '[' argument_list ']' - // | null_conditional_element_access - | primary_no_array_creation_expression '?' '[' argument_list ']' dependent_access* - | this_access - | base_access - // | post_increment_expression - | primary_no_array_creation_expression '++' - | array_creation_expression '++' - // | post_decrement_expression - | primary_no_array_creation_expression '--' - | array_creation_expression '--' - // | null_forgiving_expression - | primary_no_array_creation_expression null_forgiving_operator - | array_creation_expression null_forgiving_operator - | object_creation_expression - | delegate_creation_expression - | anonymous_object_creation_expression - | typeof_expression - | sizeof_expression - | checked_expression - | unchecked_expression - | default_value_expression - | nameof_expression - | anonymous_method_expression - // | pointer_member_access // unsafe code support - | primary_no_array_creation_expression '->' identifier type_argument_list? - | array_creation_expression '->' identifier type_argument_list? - // | pointer_element_access // unsafe code support - // covered by element_access replacement above - | stackalloc_expression - ; -``` - - ---- - -## Interpolated strings - -The lexical rules for interpolated strings are context-sensitive and are not ANLTR-ready in the Standard -as how such rules are handled is an implementation detail, e.g. using ANTLR modes. -Here we just define one token in terms of another to remove the overlap warnings. - -### 12.8.3 Interpolated string expressions - -```ANTLR -// [CHANGE] This allows the grammar to verify without warnings, it does NOT correctly -// [CHANGE] parse interpolated strings – that requires modes and/or lexical predicates. -// [CHANGE] Note: Interpolated strings are properly parsed in Base and other sets. -# Expect -Interpolated_Verbatim_String_End - : '"' - ; -# ReplaceWith -Interpolated_Verbatim_String_End - : Interpolated_Regular_String_End - ; -``` diff --git a/standard/expressions.md b/standard/expressions.md index 8884715c7..eec3aa78c 100644 --- a/standard/expressions.md +++ b/standard/expressions.md @@ -1273,11 +1273,6 @@ Primary expressions include the simplest forms of expressions. ```ANTLR primary_expression - : primary_no_array_creation_expression - | array_creation_expression - ; - -primary_no_array_creation_expression : literal | interpolated_string_expression | simple_name @@ -1293,6 +1288,7 @@ primary_no_array_creation_expression | post_increment_expression | post_decrement_expression | null_forgiving_expression + | array_creation_expression | object_creation_expression | delegate_creation_expression | anonymous_object_creation_expression @@ -1309,24 +1305,10 @@ primary_no_array_creation_expression ; ``` -> *Note*: These grammar rules are not ANTLR-ready as they are part of a set of mutually left-recursive rules (`primary_expression`, `primary_no_array_creation_expression`, `member_access`, `invocation_expression`, `element_access`, `post_increment_expression`, `post_decrement_expression`, `null_forgiving_expression`, `pointer_member_access` and `pointer_element_access`) which ANTLR does not handle. Standard techniques can be used to transform the grammar to remove the mutual left-recursion. This has not been done as not all parsing strategies require it (e.g. an LALR parser would not) and doing so would obfuscate the structure and description. *end note* +> *Note*: This grammar rule is not ANTLR-ready as it is part of a set of mutually left-recursive rules (`primary_expression`, `member_access`, `invocation_expression`, `element_access`, `post_increment_expression`, `post_decrement_expression`, `null_forgiving_expression`, `pointer_member_access` and `pointer_element_access`) which ANTLR does not handle. Standard techniques can be used to transform the grammar to remove the mutual left-recursion. This Standard does not do this as not all parsing strategies require it (e.g. an LALR parser would not) and doing so would obfuscate the structure and description. *end note* *pointer_member_access* ([§23.6.3](unsafe-code.md#2363-pointer-member-access)) and *pointer_element_access* ([§23.6.4](unsafe-code.md#2364-pointer-element-access)) are only available in unsafe code ([§23](unsafe-code.md#23-unsafe-code)). -Primary expressions are divided between *array_creation_expression*s and *primary_no_array_creation_expression*s. Treating *array_creation_expression* in this way, rather than listing it along with the other simple expression forms, enables the grammar to disallow potentially confusing code such as - - -```csharp -object o = new int[3][1]; -``` - -which would otherwise be interpreted as - - -```csharp -object o = (new int[3])[1]; -``` - ### 12.8.2 Literals A *primary_expression* that consists of a *literal* ([§6.4.5](lexical-structure.md#645-literals)) is classified as a value. @@ -2206,32 +2188,52 @@ When `E` occurs as a *anonymous_function_body* or *method_body* the meaning of ` #### 12.8.12.1 General -An *element_access* consists of a *primary_no_array_creation_expression*, followed by a “`[`” token, followed by an *argument_list*, followed by a “`]`” token. The *argument_list* consists of one or more *argument*s, separated by commas. +An *element_access* consists of a *primary_expression*, followed by a “`[`” token, followed by an *argument_list*, followed by a “`]`” token. The *argument_list* consists of one or more *argument*s, separated by commas. ```ANTLR element_access - : primary_no_array_creation_expression '[' argument_list ']' + : primary_expression '[' argument_list ']' ; ``` -The *argument_list* of an *element_access* is not allowed to contain `out` or `ref` arguments. +When recognising a *primary_expression* if both the *element_access* and *pointer_element_access* ([§23.6.4](unsafe-code.md#2364-pointer-element-access)) alternatives are applicable then the latter shall be chosen if the embedded *primary_expression* is of pointer type ([§23.3](unsafe-code.md#233-pointer-types)). + +The *argument_list* of an *element_access* shall not contain `out` or `ref` arguments. + +The *primary_expression* of an *element_access* may not be an *array_creation_expression* unless it includes an *array_initializer*, or a *stackalloc_expression* unless it includes a *stackalloc_initializer*. + +> *Note*: This restriction exists to disallow potentially confusing code such as: +> +> +> ```csharp +> var a = new int[3][1]; +> ``` +> +> which would otherwise be interpreted as: +> +> +> ```csharp +> var a = (new int[3])[1]; +> ``` +> +> A similar restriction applies to *null_conditional_element_access* ([§12.8.13](expressions.md#12813-null-conditional-element-access)). *end note* An *element_access* is dynamically bound ([§12.3.3](expressions.md#1233-dynamic-binding)) if at least one of the following holds: -- The *primary_no_array_creation_expression* has compile-time type `dynamic`. -- At least one expression of the *argument_list* has compile-time type `dynamic` and the *primary_no_array_creation_expression* does not have an array type. +- The *primary_expression* has compile-time type `dynamic`. +- At least one expression of the *argument_list* has compile-time type `dynamic` and the *primary_expression* does not have an array type. -In this case, the compiler classifies the *element_access* as a value of type `dynamic`. The rules below to determine the meaning of the *element_access* are then applied at run-time, using the run-time type instead of the compile-time type of those of the *primary_no_array_creation_expression* and *argument_list* expressions which have the compile-time type `dynamic`. If the *primary_no_array_creation_expression* does not have compile-time type `dynamic`, then the element access undergoes a limited compile-time check as described in [§12.6.5](expressions.md#1265-compile-time-checking-of-dynamic-member-invocation). +In this case, the compiler classifies the *element_access* as a value of type `dynamic`. The rules below to determine the meaning of the *element_access* are then applied at run-time, using the run-time type instead of the compile-time type of those of the *primary_expression* and *argument_list* expressions which have the compile-time type `dynamic`. If the *primary_expression* does not have compile-time type `dynamic`, then the element access undergoes a limited compile-time check as described in [§12.6.5](expressions.md#1265-compile-time-checking-of-dynamic-member-invocation). -If the *primary_no_array_creation_expression* of an *element_access* is a value of an *array_type*, the *element_access* is an array access ([§12.8.12.2](expressions.md#128122-array-access)). Otherwise, the *primary_no_array_creation_expression* shall be a variable or value of a class, struct, or interface type that has one or more indexer members, in which case the *element_access* is an indexer access ([§12.8.12.3](expressions.md#128123-indexer-access)). +If the *primary_expression* of an *element_access* is a value of an *array_type*, the *element_access* is an array access ([§12.8.12.2](expressions.md#128122-array-access)). Otherwise, the *primary_expression* shall be a variable or value of a class, struct, or interface type that has one or more indexer members, in which case the *element_access* is an indexer access ([§12.8.12.3](expressions.md#128123-indexer-access)). #### 12.8.12.2 Array access -For an array access, the *primary_no_array_creation_expression* of the *element_access* shall be a value of an *array_type*. Furthermore, the *argument_list* of an array access is not allowed to contain named arguments. The number of expressions in the *argument_list* shall be the same as the rank of the *array_type*, and each expression shall be of type `int`, `uint`, `long`, or `ulong,` or shall be implicitly convertible to one or more of these types. +For an array access, the *primary_expression* of the *element_access* shall be a value of an *array_type*. Furthermore, the *argument_list* of an array access shall not contain named arguments. The number of expressions in the *argument_list* shall be the same as the rank of the *array_type*, and each expression shall be of type `int`, `uint`, `long`, or `ulong,` or shall be implicitly convertible to one or more of these types. The result of evaluating an array access is a variable of the element type of the array, namely the array element selected by the values of the expressions in the *argument_list*. -The run-time processing of an array access of the form `P[A]`, where `P` is a *primary_no_array_creation_expression* of an *array_type* and `A` is an *argument_list*, consists of the following steps: +The run-time processing of an array access of the form `P[A]`, where `P` is a *primary_expression* of an *array_type* and `A` is an *argument_list*, consists of the following steps: - `P` is evaluated. If this evaluation causes an exception, no further steps are executed. - The index expressions of the *argument_list* are evaluated in order, from left to right. Following evaluation of each index expression, an implicit conversion ([§10.2](conversions.md#102-implicit-conversions)) to one of the following types is performed: `int`, `uint`, `long`, `ulong`. The first type in this list for which an implicit conversion exists is chosen. For instance, if the index expression is of type `short` then an implicit conversion to `int` is performed, since implicit conversions from `short` to `int` and from `short` to `long` are possible. If evaluation of an index expression or the subsequent implicit conversion causes an exception, then no further index expressions are evaluated and no further steps are executed. @@ -2241,9 +2243,9 @@ The run-time processing of an array access of the form `P[A]`, where `P` is a *p #### 12.8.12.3 Indexer access -For an indexer access, the *primary_no_array_creation_expression* of the *element_access* shall be a variable or value of a class, struct, or interface type, and this type shall implement one or more indexers that are applicable with respect to the *argument_list* of the *element_access*. +For an indexer access, the *primary_expression* of the *element_access* shall be a variable or value of a class, struct, or interface type, and this type shall implement one or more indexers that are applicable with respect to the *argument_list* of the *element_access*. -The binding-time processing of an indexer access of the form `P[A]`, where `P` is a *primary_no_array_creation_expression* of a class, struct, or interface type `T`, and `A` is an *argument_list*, consists of the following steps: +The binding-time processing of an indexer access of the form `P[A]`, where `P` is a *primary_expression* of a class, struct, or interface type `T`, and `A` is an *argument_list*, consists of the following steps: - The set of indexers provided by `T` is constructed. The set consists of all indexers declared in `T` or a base type of `T` that are not override declarations and are accessible in the current context ([§7.5](basic-concepts.md#75-member-access)). - The set is reduced to those indexers that are applicable and not hidden by other indexers. The following rules are applied to each indexer `S.I` in the set, where `S` is the type in which the indexer `I` is declared: @@ -2258,15 +2260,21 @@ Depending on the context in which it is used, an indexer access causes invocatio ### 12.8.13 Null Conditional Element Access -A *null_conditional_element_access* consists of a *primary_no_array_creation_expression* followed by the two tokens “`?`” and “`[`”, followed by an *argument_list*, followed by a “`]`” token, followed by zero or more *dependent_access*es any of which can be preceded by a *null_forgiving_operator*. +A *null_conditional_element_access* consists of a *primary_expression* followed by the two tokens “`?`” and “`[`”, followed by an *argument_list*, followed by a “`]`” token, followed by zero or more *dependent_access*es any of which can be preceded by a *null_forgiving_operator*. ```ANTLR null_conditional_element_access - : primary_no_array_creation_expression '?' '[' argument_list ']' + : primary_expression '?' '[' argument_list ']' (null_forgiving_operator? dependent_access)* ; ``` +The *argument_list* of an *null_conditional_element_access* shall not contain `out` or `ref` arguments. + +The *primary_expression* of an *null_conditional_element_access* shall not be an *array_creation_expression* unless it includes an *array_initializer*, or a *stackalloc_expression* unless it includes a *stackalloc_initializer*. + +> *Note*: This restriction exists to disallow potentially confusing code. A similar restriction applies to *element_access* ([§12.8.12](expressions.md#12812-element-access)) where an example of what is excluded may be found. *end note* + A *null_conditional_element_access* is a conditional version of *element_access* ([§12.8.12](expressions.md#12812-element-access)) and it is a binding time error if the result type is `void`. For a null conditional expression where the result type may be `void` see ([§12.8.11](expressions.md#12811-null-conditional-invocation-expression)). A *null_conditional_element_access* expression `E` is of the form `P?[A]B`; where `B` are the *dependent_access*es, if any. The meaning of `E` is determined as follows: diff --git a/standard/unsafe-code.md b/standard/unsafe-code.md index 060bbc999..05b570cfc 100644 --- a/standard/unsafe-code.md +++ b/standard/unsafe-code.md @@ -386,7 +386,7 @@ The variables `a`, `i0`, `i1`, … `in` are not visible to or accessible to `x` In an unsafe context, an expression may yield a result of a pointer type, but outside an unsafe context, it is a compile-time error for an expression to be of a pointer type. In precise terms, outside an unsafe context a compile-time error occurs if any *simple_name* ([§12.8.4](expressions.md#1284-simple-names)), *member_access* ([§12.8.7](expressions.md#1287-member-access)), *invocation_expression* ([§12.8.10](expressions.md#12810-invocation-expressions)), or *element_access* ([§12.8.12](expressions.md#12812-element-access)) is of a pointer type. -In an unsafe context, the *primary_no_array_creation_expression* ([§12.8](expressions.md#128-primary-expressions)) and *unary_expression* ([§12.9](expressions.md#129-unary-operators)) productions permit additional constructs, which are described in the following subclauses. +In an unsafe context, the *primary_expression* ([§12.8](expressions.md#128-primary-expressions)) and *unary_expression* ([§12.9](expressions.md#129-unary-operators)) productions permit additional constructs, which are described in the following subclauses. > *Note*: The precedence and associativity of the unsafe operators is implied by the grammar. *end note* @@ -476,14 +476,16 @@ A pointer member access of the form `P->I` is evaluated exactly as `(*P).I`. For ### 23.6.4 Pointer element access -A *pointer_element_access* consists of a *primary_no_array_creation_expression* followed by an expression enclosed in “`[`” and “`]`”. +A *pointer_element_access* consists of a *primary_expression* followed by an expression enclosed in “`[`” and “`]`”. ```ANTLR pointer_element_access - : primary_no_array_creation_expression '[' expression ']' + : primary_expression '[' expression ']' ; ``` +When recognising a *primary_expression* if both the *element_access* and *pointer_element_access* ([§23.6.4](unsafe-code.md#2364-pointer-element-access)) alternatives are applicable then the latter shall be chosen if the embedded *primary_expression* is of pointer type ([§23.3](unsafe-code.md#233-pointer-types)). + In a pointer element access of the form `P[E]`, `P` shall be an expression of a pointer type other than `void*`, and `E` shall be an expression that can be implicitly converted to `int`, `uint`, `long`, or `ulong`. A pointer element access of the form `P[E]` is evaluated exactly as `*(P + E)`. For a description of the pointer indirection operator (`*`), see [§23.6.2](unsafe-code.md#2362-pointer-indirection). For a description of the pointer addition operator (`+`), see [§23.6.7](unsafe-code.md#2367-pointer-arithmetic). @@ -993,7 +995,7 @@ In a member access of the form `E.I` where `E.` may be the implicit `this.`, if - If `E` is classified as a value, a compile-time error occurs. - Otherwise, if `E` is a moveable variable ([§23.4](unsafe-code.md#234-fixed-and-moveable-variables)) then: - If the expression `E.I` is a *fixed_pointer_initializer* ([§23.7](unsafe-code.md#237-the-fixed-statement)), then the result of the expression is a pointer to the first element of the fixed size buffer member `I` in `E`. - - Otherwise if the expression `E.I` is a *primary_no_array_creation_expression* ([§12.8.12.1](expressions.md#128121-general)) within an *element_access* ([§12.8.12](expressions.md#12812-element-access)) of the form `E.I[J]`, then the result of `E.I` is a pointer, `P`, to the first element of the fixed size buffer member `I` in `E`, and the enclosing *element_access* is then evaluated as the *pointer_element_access* ([§23.6.4](unsafe-code.md#2364-pointer-element-access)) `P[J]`. + - Otherwise if the expression `E.I` is a *primary_expression* ([§12.8.12.1](expressions.md#128121-general)) within an *element_access* ([§12.8.12](expressions.md#12812-element-access)) of the form `E.I[J]`, then the result of `E.I` is a pointer, `P`, to the first element of the fixed size buffer member `I` in `E`, and the enclosing *element_access* is then evaluated as the *pointer_element_access* ([§23.6.4](unsafe-code.md#2364-pointer-element-access)) `P[J]`. - Otherwise a compile-time error occurs. - Otherwise, `E` references a fixed variable and the result of the expression is a pointer to the first element of the fixed-size buffer member `I` in `E`. The result is of type `S*`, where S is the element type of `I`, and is classified as a value. diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.gruntree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.gruntree.red.txt index 128ff817b..46e5fef61 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.gruntree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.gruntree.red.txt @@ -718,51 +718,45 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_initializer ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ object_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_creation_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ new ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_type ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_type -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ floating_point_type -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ float -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ rank_specifier -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ floating_point_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ float ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ rank_specifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ object_or_collection_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ collection_initializer -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer_list ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_initializer_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_initializer -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 0f -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 0f ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_initializer -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 1.1f -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 1.1f ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ @@ -1148,7 +1142,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ arr @@ -1221,11 +1215,11 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ arr diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.stderr.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.tree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.tree.red.txt index d71858e23..e724ada52 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.tree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.tree.red.txt @@ -1 +1 @@ -(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier My)) (namespace_body { (namespace_member_declaration (class_declaration (class_modifier public) (class_modifier (unsafe_modifier unsafe)) partial class (identifier A) (class_base : (interface_type_list (interface_type (identifier C)) , (interface_type (identifier I)))) (class_body { (class_member_declaration (constructor_declaration (constructor_modifier public) (constructor_declarator (identifier A) ( (parameter_list (fixed_parameter (attributes (attribute_section [ (attribute_target_specifier (attribute_target (identifier param)) :) (attribute_list (identifier Obsolete)) ])) (type (integral_type int)) (identifier foo))) ) (constructor_initializer : base ( (argument_list (literal 1)) ))) (constructor_body (block { (statement_list (statement (if_statement if ( (boolean_expression (relational_expression (relational_expression (identifier i)) > (shift_expression (literal 0)))) ) (embedded_statement (block { (statement_list (return_statement return ;)) })) else (embedded_statement (if_statement if ( (boolean_expression (equality_expression (equality_expression (identifier i)) == (relational_expression (literal 0)))) ) (embedded_statement (block { (statement_list (throw_statement throw (expression (object_creation_expression new (type (identifier Exception)) ( ))) ;)) })))))) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier o1) = (expression (object_creation_expression new (type (identifier MyObject)) ( )))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier o2) = (expression (object_creation_expression new (type (identifier MyObject)) ( (argument_list (contextual_keyword var)) )))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier o3) = (expression (object_creation_expression new (type (identifier MyObject)) (object_or_collection_initializer (object_initializer { (member_initializer_list (member_initializer (initializer_target (identifier A)) = (initializer_value (identifier i)))) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier o4) = (expression (object_creation_expression new (type (identifier MyObject)) ( (argument_list (identifier @dynamic)) ) (object_or_collection_initializer (object_initializer { (member_initializer_list (member_initializer (initializer_target (identifier A)) = (initializer_value (literal 0))) , (member_initializer (initializer_target (identifier B)) = (initializer_value (literal 0))) , (member_initializer (initializer_target (identifier C)) = (initializer_value (literal 0)))) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier o5) = (expression (anonymous_object_creation_expression new (anonymous_object_initializer { (member_declarator_list (member_declarator (identifier A) = (expression (literal 0)))) })))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier dictionaryInitializer) = (expression (object_creation_expression new (type (namespace_or_type_name (identifier Dictionary) (type_argument_list < (type_argument (integral_type int)) , (type_argument (class_type string)) >))) (object_or_collection_initializer (collection_initializer { (element_initializer_list (element_initializer { (expression_list (expression (literal 1)) , (expression (literal ""))) }) , (element_initializer { (expression_list (expression (literal 2)) , (expression (literal "a"))) })) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (floating_point_type float)) (rank_specifier [ ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (object_creation_expression new (type (array_type (non_array_type (floating_point_type float)) (rank_specifier [ ]))) (object_or_collection_initializer (collection_initializer { (element_initializer_list (element_initializer (literal 0f)) , (element_initializer (literal 1.1f))) })))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (integral_type int)) (rank_specifier [ , , ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier cube) = (local_variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 111)) , (variable_initializer (literal 112))) , })) , (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 121)) , (variable_initializer (literal 122))) }))) })) , (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 211)) , (variable_initializer (literal 212))) })) , (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 221)) , (variable_initializer (literal 222))) }))) }))) })))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (integral_type int)) (rank_specifier [ ]) (rank_specifier [ ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier jagged) = (local_variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (array_initializer { (variable_initializer_list (literal 111)) })) , (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 121)) , (variable_initializer (literal 122))) }))) })))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (integral_type int)) (rank_specifier [ ]) (rank_specifier [ , ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier arr) = (local_variable_initializer (array_creation_expression new (non_array_type (integral_type int)) [ (expression_list (literal 5)) ] (rank_specifier [ , ]))))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (element_access (primary_no_array_creation_expression (identifier arr)) [ (argument_list (literal 0)) ])) (assignment_operator =) (expression (array_creation_expression new (non_array_type (integral_type int)) [ (expression_list (expression (literal 5)) , (expression (literal 5))) ])))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (element_access (primary_no_array_creation_expression (element_access (primary_no_array_creation_expression (identifier arr)) [ (argument_list (literal 0)) ])) [ (argument_list (argument (literal 0)) , (argument (literal 0))) ])) (assignment_operator =) (expression (literal 47)))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (integral_type int)) (rank_specifier [ ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier arrayTypeInference) = (local_variable_initializer (array_creation_expression new (rank_specifier [ ]) (array_initializer { (variable_initializer_list (variable_initializer (literal 0)) , (variable_initializer (literal 1))) , }))))))) ;))) })))) }))) })))) +(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier My)) (namespace_body { (namespace_member_declaration (class_declaration (class_modifier public) (class_modifier (unsafe_modifier unsafe)) partial class (identifier A) (class_base : (interface_type_list (interface_type (identifier C)) , (interface_type (identifier I)))) (class_body { (class_member_declaration (constructor_declaration (constructor_modifier public) (constructor_declarator (identifier A) ( (parameter_list (fixed_parameter (attributes (attribute_section [ (attribute_target_specifier (attribute_target (identifier param)) :) (attribute_list (identifier Obsolete)) ])) (type (integral_type int)) (identifier foo))) ) (constructor_initializer : base ( (argument_list (literal 1)) ))) (constructor_body (block { (statement_list (statement (if_statement if ( (boolean_expression (relational_expression (relational_expression (identifier i)) > (shift_expression (literal 0)))) ) (embedded_statement (block { (statement_list (return_statement return ;)) })) else (embedded_statement (if_statement if ( (boolean_expression (equality_expression (equality_expression (identifier i)) == (relational_expression (literal 0)))) ) (embedded_statement (block { (statement_list (throw_statement throw (expression (object_creation_expression new (type (identifier Exception)) ( ))) ;)) })))))) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier o1) = (expression (object_creation_expression new (type (identifier MyObject)) ( )))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier o2) = (expression (object_creation_expression new (type (identifier MyObject)) ( (argument_list (contextual_keyword var)) )))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier o3) = (expression (object_creation_expression new (type (identifier MyObject)) (object_or_collection_initializer (object_initializer { (member_initializer_list (member_initializer (initializer_target (identifier A)) = (initializer_value (identifier i)))) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier o4) = (expression (object_creation_expression new (type (identifier MyObject)) ( (argument_list (identifier @dynamic)) ) (object_or_collection_initializer (object_initializer { (member_initializer_list (member_initializer (initializer_target (identifier A)) = (initializer_value (literal 0))) , (member_initializer (initializer_target (identifier B)) = (initializer_value (literal 0))) , (member_initializer (initializer_target (identifier C)) = (initializer_value (literal 0)))) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier o5) = (expression (anonymous_object_creation_expression new (anonymous_object_initializer { (member_declarator_list (member_declarator (identifier A) = (expression (literal 0)))) })))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier dictionaryInitializer) = (expression (object_creation_expression new (type (namespace_or_type_name (identifier Dictionary) (type_argument_list < (type_argument (integral_type int)) , (type_argument (class_type string)) >))) (object_or_collection_initializer (collection_initializer { (element_initializer_list (element_initializer { (expression_list (expression (literal 1)) , (expression (literal ""))) }) , (element_initializer { (expression_list (expression (literal 2)) , (expression (literal "a"))) })) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (floating_point_type float)) (rank_specifier [ ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (array_creation_expression new (array_type (non_array_type (floating_point_type float)) (rank_specifier [ ])) (array_initializer { (variable_initializer_list (variable_initializer (literal 0f)) , (variable_initializer (literal 1.1f))) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (integral_type int)) (rank_specifier [ , , ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier cube) = (local_variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 111)) , (variable_initializer (literal 112))) , })) , (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 121)) , (variable_initializer (literal 122))) }))) })) , (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 211)) , (variable_initializer (literal 212))) })) , (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 221)) , (variable_initializer (literal 222))) }))) }))) })))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (integral_type int)) (rank_specifier [ ]) (rank_specifier [ ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier jagged) = (local_variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (array_initializer { (variable_initializer_list (literal 111)) })) , (variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 121)) , (variable_initializer (literal 122))) }))) })))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (integral_type int)) (rank_specifier [ ]) (rank_specifier [ , ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier arr) = (local_variable_initializer (array_creation_expression new (non_array_type (integral_type int)) [ (expression_list (literal 5)) ] (rank_specifier [ , ]))))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (element_access (primary_expression (identifier arr)) [ (argument_list (literal 0)) ])) (assignment_operator =) (expression (array_creation_expression new (non_array_type (integral_type int)) [ (expression_list (expression (literal 5)) , (expression (literal 5))) ])))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (element_access (primary_expression (element_access (primary_expression (identifier arr)) [ (argument_list (literal 0)) ])) [ (argument_list (argument (literal 0)) , (argument (literal 0))) ])) (assignment_operator =) (expression (literal 47)))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (integral_type int)) (rank_specifier [ ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier arrayTypeInference) = (local_variable_initializer (array_creation_expression new (rank_specifier [ ]) (array_initializer { (variable_initializer_list (variable_initializer (literal 0)) , (variable_initializer (literal 1))) , }))))))) ;))) })))) }))) })))) diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.tree.svg b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.tree.svg index 5deace02c..05a1289c9 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.tree.svg +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-C/Reference/sample.tree.svg @@ -1,23 +1,23 @@ - - - - - - - - - - - + + + + + + + + + + + - + - - - + + + - + @@ -27,13 +27,13 @@ - - - - - + + + + + - + @@ -65,11 +65,11 @@ - - - - - + + + + + @@ -122,7 +122,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -161,7 +161,7 @@ - + @@ -190,7 +190,7 @@ - + @@ -242,7 +242,7 @@ - + @@ -266,7 +266,7 @@ - + @@ -321,7 +321,7 @@ - + @@ -340,2856 +340,2846 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -statement_list + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +floating_point_type - - -object_initializer + + +array_type - - -identifier + + +array_initializer - - -member_initializer_list + + +Obsolete - - -literal + + +} - - -"" + + +] - - -type_argument + + +unary_expression - - -{ + + +var - - -integral_type + + +explicitly_typed_local_variable_declarators - - -class_type + + +rank_specifier - - -1 + + +embedded_statement - - -object_creation_expression + + +2 - - -explicitly_typed_local_variable_declarators + + +element_initializer_list - - -: + + +expression - - -attribute_target + + +] - - -array_initializer + + +non_array_type - - -literal + + +expression - - -primary_no_array_creation_expression + + +; - - -attribute_target_specifier + + +] - - -int + + +} - - -primary_no_array_creation_expression + + +type - - + + { - - -a - - - -statement + + +constructor_modifier - - -namespace_or_type_name + + +initializer_target - - -literal + + +declaration_statement - - -{ + + +integral_type - - -floating_point_type + + +121 - - -int + + +, - - -identifier + + +: - - -array_type + + +return_statement - - -statement + + +expression_statement - - -array_creation_expression + + +non_array_type - - -throw_statement + + +identifier - - -expression + + +( - - -local_variable_declaration + + +class_type - - -rank_specifier + + +assignment - - -variable_initializer_list + + +{ - - -literal + + +primary_expression - - -local_variable_initializer + + +array_initializer - - -arr + + +I - - + + int - - -relational_expression + + +[ - - -: + + +A - - + + { - - -rank_specifier + + +literal - - -0 + + +declaration_statement - - -variable_initializer_list + + +identifier - - -assignment_operator + + += - - -0 + + +equality_expression - - -rank_specifier + + +type - - -, + + +variable_initializer - - -identifier + + +variable_initializer_list - - -local_variable_declaration + + +variable_initializer_list - - -new + + +statement_expression - - -= + + +variable_initializer_list - - -local_variable_declaration + + +{ - - -class_declaration + + +} - - -, + + +boolean_expression - - -statement + + +array_creation_expression - - -identifier + + +rank_specifier - - -} + + +A - - -fixed_parameter + + +) - - -A + + +explicitly_typed_local_variable_declarator - - -integral_type + + +statement - - -new + + +arr - - -variable_initializer + + +member_initializer - - -0 + + +{ - - -type + + +211 - - -= - - - -array_initializer - - - -non_array_type - - - -constructor_declarator + + +unary_expression - - -, + + +identifier - - + + literal - - -5 + + +throw_statement - - + + argument_list - - -expression + + +local_variable_declaration - - -{ + + +statement_list - - + + +array_creation_expression + + + literal - - -expression + + +implicitly_typed_local_variable_declarator - - -anonymous_object_initializer + + +@dynamic - - -; + + +C - - -member_initializer + + +literal - - -int + + +declaration_statement - - -[ + + +declaration_statement - - + + variable_initializer_list - - -] + + +0 + + + +A - - + + } - - -] + + +identifier + + + +, + + + +literal - - + + +5 + + + +expression + + + = - - -identifier + + +expression_list - - -MyObject + + +explicitly_typed_local_variable_declarators - - -var + + +literal - - -array_initializer + + +[ - - -cube + + +literal - - -, + + +type - - -implicitly_typed_local_variable_declarator + + +array_type - - -] + + +variable_initializer - - -( + + +class_modifier - - + + +identifier + + + +identifier + + + +{ + + + 0 - - -var + + +{ - - -literal + + +identifier - - -initializer_target + + +explicitly_typed_local_variable_declarator - - -string + + +local_variable_initializer - - -array_initializer + + +variable_initializer_list - - -i + + +declaration_statement - - -A + + +declaration_statement - - -object_or_collection_initializer + + +variable_initializer_list - - -rank_specifier + + +222 - - -) + + +literal - - -collection_initializer + + += - - -{ + + +: + + + +statement + + + += + + + +jagged + + + +variable_initializer initializer_target - - -0 + + +111 - - -statement + + +] - - -type + + +interface_type_list - - -identifier + + +variable_initializer - - -literal + + +{ - - -} + + +[ - - -implicitly_typed_local_variable_declaration + + +0f - - + + +constructor_body + + + identifier - - -0 + + +element_access - - -interface_type + + +array_initializer - - -] + + +[ - - -literal + + +argument - - -( + + +param - - -interface_type + + +dictionaryInitializer - - -new + + +relational_expression - - -, + + +0 - - -expression_list + + +rank_specifier - - -new + + +( - - -object_creation_expression + + +explicitly_typed_local_variable_declarators - - -, + + +] - - -A + + +expression - - -local_variable_initializer + + +} - - -identifier + + +MyObject - - -expression_list + + +new - - -element_access + + +, - - -212 + + +class_member_declaration - - -explicitly_typed_local_variable_declaration + + +type_argument_list - - -if + + +] - - -unary_expression + + +block - - -member_initializer_list + + +local_variable_declaration - - -partial + + +statement - - -non_array_type + + +122 - - -namespace_member_declaration + + +local_variable_declaration - - + + } - - -literal + + +member_initializer - - -} + + +o1 - - -foo + + +identifier ; - - -identifier + + +local_variable_declaration - - + + identifier - - -< - - - -namespace - - - -identifier + + +relational_expression - - -} + + +literal - - -) + + +member_declarator - - -= + + +float - - -Exception + + +local_variable_initializer - - -var + + +attribute_target - - -; + + +) expression_list - - -namespace_body + + +array_initializer - - -My + + +[ + + + +rank_specifier + + + +i + + + +"" + + + +{ + + + +, + + + +identifier + + + +argument_list + + + +Exception - - + + identifier - - -C + + +object_creation_expression - - -int + + +o5 - - -element_initializer + + +int - - -; + + +integral_type - - -} + + +argument_list - - -collection_initializer + + +type_argument - - -array_type + + +} - - + + ] - - -namespace_declaration - - - -; + + +0 - - -; + + +identifier - - -array_initializer + + +object_creation_expression - - + + , - - -object_initializer + + +My - - -class_base + + +explicitly_typed_local_variable_declarator - - -variable_initializer_list + + +, - - -explicitly_typed_local_variable_declarator + + +1.1f - - -expression + + +literal - - -embedded_statement + + +unsafe_modifier - - -[ + + +] - - + + expression - - -identifier - - - -{ + + +, - - -block + + +element_access - - -equality_expression + + +identifier - - -o3 + + +float - - -, + + +local_variable_declaration - - -statement + + +identifier - - -variable_initializer + + +0 - - -Obsolete + + +} - - -argument_list + + +literal - - -constructor_declaration + + +== - - -, + + +implicitly_typed_local_variable_declarator - - -statement + + +member_declarator_list - - -identifier + + +expression - - -unsafe_modifier + + +non_array_type - - -expression + + +constructor_initializer - - -identifier + + +variable_initializer_list - - -{ + + +variable_initializer_list - - -arr + + +embedded_statement ; - - -identifier - - - -MyObject - - - -[ + + +, - - -explicitly_typed_local_variable_declaration + + +{ - - -1.1f + + += - - -literal + + +local_variable_declaration - - -block + + +0 - - -statement + + +object_creation_expression - - -variable_initializer + + +literal - - -variable_initializer + + +identifier - - -expression + + +new - - -assignment_operator + + += - - -5 + + +} - - -= + + +type - - -5 + + +local_variable_declaration - - -) + + +Dictionary - - -variable_initializer_list + + +: - - -assignment + + +literal - - -primary_no_array_creation_expression + + +array_initializer - - -, + + +new - - -argument + + +variable_initializer - - -declaration_statement + + += - - -{ + + +prog - - -literal + + +; - - -element_access + + +namespace_or_type_name - - -] + + +} - - -expression + + +, - - -implicitly_typed_local_variable_declaration + + +} - - -local_variable_declaration + + +{ - - -type + + +] - - -prog + + +literal - - -rank_specifier + + +public - - -, + + +] - - -expression + + +object_or_collection_initializer - - -221 + + +212 - - -local_variable_initializer + + +; - - -literal + + +equality_expression - - -initializer_value + + +declaration_statement - - -initializer_target + + +{ - - -111 + + += - - -statement + + +a - - -array_creation_expression + + +type_argument - - + + = - - -local_variable_declaration + + +block - - -interface_type_list + + +} - - -[ + + +statement - - -] + + +( - - -return + + +argument_list - - -, + + +} - - -declaration_statement + + +member_initializer_list - - -statement_expression + + +collection_initializer - - -111 + + +1 - - -object_or_collection_initializer + + +else + + + +o3 initializer_value - - -declaration_statement + + +{ - - -= + + +var - - -= + + +foo - - -statement + + +type - - -] + + +class_declaration - - + + +array_type + + + literal - - -type_argument + + +var - - -> + + +0 - - -floating_point_type + + +declaration_statement - - -float + + +1 - - -statement + + +array_type - - -211 + + +variable_initializer - - -identifier + + +} - - -array_initializer + + +explicitly_typed_local_variable_declarator - - -; + + +] - - -, + + +[ - - -var + + +new - - -o5 + + +implicitly_typed_local_variable_declaration - - -"a" + + +< - - + + +declaration_statement + + + +embedded_statement + + + +C + + + identifier - - -rank_specifier + + +identifier + + + +, unsafe - - -local_variable_declaration + + +identifier - - -integral_type + + +new - - -} + + +element_initializer - - -{ + + +identifier - - -argument_list + + +0 - - -identifier + + +namespace_body - - -identifier + + +111 - - -expression_statement + + +integral_type - - -equality_expression + + +( - - -122 + + +variable_initializer_list - - -variable_initializer + + +block + + + +contextual_keyword + + + +int - - -variable_initializer + + +{ - - -) + + +explicitly_typed_local_variable_declaration - - -arrayTypeInference + + +variable_initializer - - -member_initializer + + +literal - - -Dictionary + + +expression - - + + identifier - - + + literal - - -explicitly_typed_local_variable_declarators + + +) - - -[ + + +expression - - -, + + +object_initializer - - -, + + +implicitly_typed_local_variable_declarator - - -= + + +, - - -local_variable_initializer + + +new - - -] + + +object_or_collection_initializer - - -anonymous_object_creation_expression + + +explicitly_typed_local_variable_declaration - - + + literal - - -literal + + +variable_initializer - - -explicitly_typed_local_variable_declaration + + +qualified_identifier - - -121 + + +; - - -declaration_statement + + +statement - - -statement_expression + + +initializer_value - - -array_initializer + + +base - - + + identifier - - -o1 - - - + + literal - - -} + + +literal - - + + [ - - -] - - - -{ + + +argument - - -type + + +local_variable_initializer - - -boolean_expression + + +class_base - - -boolean_expression + + +var - - -member_initializer + + +relational_expression - - -variable_initializer_list + + +[ - - -rank_specifier + + +var - - -( + + +121 - - -statement_list + + +; - - -declaration_statement + + +; - - -array_initializer + + +local_variable_initializer - - -variable_initializer + + +literal - - -array_creation_expression + + +expression_list - - -, + + +> - - -object_creation_expression + + +literal - - -= + + +attributes - - -throw + + +new - - -, + + +identifier - - -122 + + +int - - -explicitly_typed_local_variable_declarators + + +integral_type - - -dictionaryInitializer + + +var - - -} + + +{ - - + + [ - - -type - - - -integral_type - - - -explicitly_typed_local_variable_declarators - - - -object_or_collection_initializer - - - -= + + +literal - - -{ + + +112 - - -47 + + +literal - - -} + + +cube - - + + = - - -{ + + +arr - - -0 + + +explicitly_typed_local_variable_declaration - - -if_statement + + +rank_specifier - - + + type - - -( - - - -B - - - -[ - - - -) - - - -else - - - -variable_initializer - - - -public - - - -{ - - - -expression + + +non_array_type - - -int + + +argument_list - - -object_creation_expression + + +identifier - - -112 + + +} - - -if_statement + + +type - - -implicitly_typed_local_variable_declarator + + +{ - - -relational_expression + + +identifier - - -; + + +identifier - - + + variable_initializer_list - - -explicitly_typed_local_variable_declarators + + +MyObject - - -implicitly_typed_local_variable_declarator + + +local_variable_declaration - - + + , - - -new + + +[ - - -A + + +type - - -element_initializer + + += - - -implicitly_typed_local_variable_declaration + + +explicitly_typed_local_variable_declaration - - -identifier + + +rank_specifier - - + + int - - -implicitly_typed_local_variable_declarator + + +identifier - - -literal + + +implicitly_typed_local_variable_declaration - - -{ + + +anonymous_object_creation_expression - - -identifier + + +, - - -] + + += - - -non_array_type + + +; - - -i + + +member_initializer - - -expression + + +int - - -var + + +statement_list - - -new + + +} - - -integral_type + + +identifier - - -shift_expression + + +object_creation_expression - - -} + + +o4 - - -type + + +} - - -implicitly_typed_local_variable_declaration + + +namespace_declaration - - -non_array_type + + +statement - - -explicitly_typed_local_variable_declarator + + +expression - - -element_initializer + + +variable_initializer - - -{ + + +] - - -array_initializer + + +if - - -, + + +variable_initializer - - -non_array_type + + +[ - - -} + + +5 - - -@dynamic + + +string - - -121 + + +[ - - -literal + + +array_initializer - - -attribute_section + + +} - - -] + + +rank_specifier - - -int + + +interface_type - - -[ + + +expression - - -= + + +( - - -identifier + + +i - - -, + + +literal - - -variable_initializer_list + + +statement_expression o2 - - -literal + + +1 - - -MyObject + + +namespace - - -identifier + + +integral_type - - -literal + + +new - - -expression + + +, - - + + { - - -expression_statement - - - -expression - - - -literal - - - -statement - - - -statement + + +[ - - -identifier + + +array_initializer - - -) + + +type - - -literal + + +; - - -class_modifier + + +element_initializer - - -, + + += - - -non_array_type + + +if - - -member_declarator + + +argument_list - - -statement_list + + +assignment_operator - - -explicitly_typed_local_variable_declaration + + +class_body - - -explicitly_typed_local_variable_declarator + + +array_type - - -, + + +partial - - -= + + +member_initializer_list - - -[ + + +anonymous_object_initializer - - -[ + + +literal - - -identifier + + +local_variable_declaration - - -} + + +array_type - - + + ] - - + + +explicitly_typed_local_variable_declarator + + + object_creation_expression - - -initializer_target + + +122 - - -variable_initializer + + +expression - - -expression_list + + +local_variable_initializer - - -class_member_declaration + + +} - - -variable_initializer_list + + +expression - - -variable_initializer + + +} - - -new + + +) - - -identifier + + +0 - - + + array_initializer - - -{ - - - -argument_list - - - + + variable_initializer - - -{ - - - -i - - - -identifier - - - -unary_expression + + +0 - - -argument + + +, - - -explicitly_typed_local_variable_declarator + + +{ - - -; + + +[ - - -literal + + +local_variable_declaration - - + + declaration_statement - - + + literal - - -rank_specifier - - - -= - - - -argument_list - - - -type_argument_list + + +statement - - -assignment + + +if_statement - - -; + + +variable_initializer_list - - -contextual_keyword + + +type - - -local_variable_declaration + + +variable_initializer - - + + integral_type - - -initializer_value + + +, - - -public + + +; - - -member_declarator_list + + += - - -jagged + + +new - - -literal + + +variable_initializer - - -object_or_collection_initializer + + +literal - - + + implicitly_typed_local_variable_declaration - - -element_initializer_list + + +) - - -if + + +5 - - -array_type + + +local_variable_declaration - - -type + + +attribute_list - - -initializer_value + + +non_array_type - - -explicitly_typed_local_variable_declarator + + +compilation_unit - - -} + + +expression - - -return_statement + + +221 - - -expression + + +int - - + + += + + + rank_specifier - - -new + + +identifier - - -compilation_unit + + +implicitly_typed_local_variable_declaration - - -embedded_statement + + +integral_type - - -} + + +initializer_value - - -identifier + + +fixed_parameter - - -element_initializer + + +rank_specifier - - -implicitly_typed_local_variable_declarator + + +int - - + + literal - - -222 - - - -identifier + + +statement - - -{ + + +) - - -arr + + +declaration_statement - - + + , - - -rank_specifier + + +"a" - - -constructor_modifier + + +array_creation_expression - - -parameter_list + + +identifier - - -local_variable_declaration + + +primary_expression + + + +0 - - + + } - - -literal + + +class_modifier - - -( + + +[ - - -type + + +i - - -class + + +implicitly_typed_local_variable_declaration - - -base + + +array_initializer - - -; + + +variable_initializer_list - - -variable_initializer + + +expression_statement - - -variable_initializer + + +object_creation_expression - - -literal + + +expression_list - - -local_variable_declaration + + +{ - - -variable_initializer + + +implicitly_typed_local_variable_declarator - - -variable_initializer_list + + +floating_point_type - - -implicitly_typed_local_variable_declaration + + +literal - - -( + + +initializer_value - - -] + + +type - - -0 + + +new - - -identifier + + +} - - -local_variable_declaration + + +assignment - - -0 + + +member_initializer - - -; + + +non_array_type - - -integral_type + + +variable_initializer - - -array_initializer + + +statement_list - - -variable_initializer + + += - - + + integral_type - - -> + + +variable_initializer - - -; + + +MyObject - - -== + + +expression - - -var + + +{ - - -explicitly_typed_local_variable_declaration + + +array_initializer - - -declaration_statement + + +A - - -float + + +; - - -[ + + += - - -C + + +variable_initializer - - -2 + + +arrayTypeInference - - -array_type + + +assignment_operator - - -[ + + +( - - -} + + +explicitly_typed_local_variable_declarators - - + + identifier - - -non_array_type + + +throw - - -] + + +literal - - -type + + +] - - -new + + +statement - - -) + + +var - - + + literal - - -} + + +[ - - -A + + +; - - -{ + + +explicitly_typed_local_variable_declarators - - -new + + +element_access - - -} + + +, - - -declaration_statement + + +variable_initializer - - -o4 + + +variable_initializer + + + +attribute_section + + + +identifier - - + + , - - -0 + + +literal - - -qualified_identifier + + +MyObject - - -param + + +non_array_type - - -declaration_statement + + +, - - -variable_initializer + + +return - - -array_type + + +{ - - -I + + +, - - -variable_initializer + + +identifier - - -element_access + + +if_statement - - -} + + +, - - -var + + +interface_type ( - - -variable_initializer - - - -constructor_initializer - - - -literal + + +implicitly_typed_local_variable_declarator - - -variable_initializer_list + + +parameter_list - - -[ + + +object_or_collection_initializer - - -, + + +rank_specifier - - + + variable_initializer - - + + variable_initializer - - -; + + +explicitly_typed_local_variable_declaration - - -identifier + + +{ - - -= + + +; - - -MyObject + + +shift_expression - - -type + + +] - - -class_body + + +) - - -new + + +A - - -= + + +B - - -expression + + +array_initializer - - + + statement - - -declaration_statement + + +identifier - - -local_variable_declaration + + +constructor_declaration - - -attribute_list + + +implicitly_typed_local_variable_declarator - - -) + + +new - - -element_initializer_list + + +statement + + + +namespace_member_declaration + + + +] - - + + } - - -relational_expression + + +identifier - - -( + + +object_initializer - - -literal + + +variable_initializer - - -: + + +non_array_type - - -{ + + +( - - -} + + +variable_initializer - - -{ + + +type - - -statement + + +, - - + + literal - - -] + + +{ - - -non_array_type + + +statement - - -[ + + +primary_expression - - -[ + + +, - - -embedded_statement + + +; - - -block + + +initializer_target - - -object_creation_expression + + +expression - - -type + + +, - - -array_type + + +class - - -constructor_body + + +identifier - - -1 + + +initializer_target - - -member_initializer + + +expression - - -argument_list + + +arr - - -implicitly_typed_local_variable_declarator + + +implicitly_typed_local_variable_declaration - - -0f + + +statement - - -class_modifier + + +, - - -attributes + + +array_initializer - - -local_variable_initializer + + += - - -type + + +attribute_target_specifier - - -expression + + +constructor_declarator - - -0 + + +47 - - -1 + + +) - - -= + + +array_creation_expression - - -, + + +public - - -identifier + + +> - - -declaration_statement + + +boolean_expression - - -object_creation_expression + + +statement \ No newline at end of file diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.gruntree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.gruntree.red.txt index e95fbdfd6..d26da2d8c 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.gruntree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.gruntree.red.txt @@ -385,7 +385,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ member_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.tree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.tree.red.txt index bfca7eca0..12ca1f2db 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.tree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.tree.red.txt @@ -1 +1 @@ -(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier My)) (namespace_body { (namespace_member_declaration (class_declaration (class_modifier public) (class_modifier (unsafe_modifier unsafe)) partial class (identifier A) (class_base : (interface_type_list (interface_type (identifier C)) , (interface_type (identifier I)))) (class_body { (class_member_declaration (constructor_declaration (constructor_modifier public) (constructor_declarator (identifier A) ( (parameter_list (fixed_parameter (attributes (attribute_section [ (attribute_target_specifier (attribute_target (identifier param)) :) (attribute_list (identifier Obsolete)) ])) (type (integral_type int)) (identifier foo))) ) (constructor_initializer : base ( (argument_list (literal 1)) ))) (constructor_body (block { (statement_list (statement (lock_statement lock ( (expression (identifier sync)) ) (embedded_statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier process)) ( ))) ;)))) (statement (using_statement using ( (resource_acquisition (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier v) = (expression (invocation_expression (primary_expression (identifier BeginScope)) ( )))))) ) (embedded_statement (using_statement using ( (resource_acquisition (explicitly_typed_local_variable_declaration (type (identifier A)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (object_creation_expression new (type (identifier A)) ( ))))))) ) (embedded_statement (using_statement using ( (resource_acquisition (explicitly_typed_local_variable_declaration (type (identifier A)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (object_creation_expression new (type (identifier A)) ( )))) , (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (object_creation_expression new (type (identifier A)) ( ))))))) ) (embedded_statement (using_statement using ( (resource_acquisition (invocation_expression (primary_expression (identifier BeginScope)) ( ))) ) (embedded_statement (return_statement return ;)))))))))) (statement (yield_statement yield return (expression (element_access (primary_no_array_creation_expression (member_access (primary_expression (this_access this)) . (identifier items))) [ (argument_list (literal 3)) ])) ;)) (statement (yield_statement yield break ;)) (statement (fixed_statement fixed ( (pointer_type (value_type (integral_type int)) *) (fixed_pointer_declarators (fixed_pointer_declarator (identifier p) = (fixed_pointer_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 100)) ]))) , (fixed_pointer_declarator (identifier q) = (fixed_pointer_initializer & (variable_reference (identifier y))))) ) (embedded_statement (block { (statement_list (expression_statement (statement_expression (assignment (unary_expression (pointer_indirection_expression * (unary_expression (identifier intref)))) (assignment_operator =) (expression (literal 1)))) ;)) })))) (statement (fixed_statement fixed ( (pointer_type (value_type (integral_type int)) *) (fixed_pointer_declarators (fixed_pointer_declarator (identifier p) = (fixed_pointer_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 100)) ])))) ) (embedded_statement (block { (statement_list (expression_statement (statement_expression (assignment (unary_expression (pointer_indirection_expression * (unary_expression (identifier intref)))) (assignment_operator =) (expression (literal 1)))) ;)) })))) (statement (unsafe_statement unsafe (block { (statement_list (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (pointer_type (value_type (integral_type int)) *)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier p) = (local_variable_initializer (null_literal null)))))) ;)) }))) (statement (try_statement try (block { (statement_list (throw_statement throw (expression (null_literal null)) ;)) }) (catch_clauses (specific_catch_clause catch (exception_specifier ( (type (namespace_or_type_name (identifier System) . (identifier AccessViolationException))) (identifier av) )) (block { (statement_list (throw_statement throw (expression (identifier av)) ;)) })) (specific_catch_clause catch (exception_specifier ( (type (identifier Exception)) )) (block { (statement_list (throw_statement throw ;)) }))) (finally_clause finally (block { (statement_list (try_statement try (block { }) (catch_clauses (general_catch_clause catch (block { }))))) })))) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (contextual_keyword var)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier anonymous) = (local_variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (assignment (unary_expression (identifier A)) (assignment_operator =) (expression (literal 1)))) , (variable_initializer (assignment (unary_expression (identifier B)) (assignment_operator =) (expression (literal 2)))) , (variable_initializer (assignment (unary_expression (identifier C)) (assignment_operator =) (expression (literal 3))))) , })))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier query) = (expression (query_expression (from_clause from (identifier c) in (expression (identifier customers))) (query_body (query_body_clause (let_clause let (identifier d) = (expression (identifier c)))) (query_body_clause (where_clause where (boolean_expression (equality_expression (equality_expression (identifier d)) != (relational_expression (null_literal null)))))) (query_body_clause (join_clause join (identifier c1) in (expression (identifier customers)) on (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier c1)) . (identifier GetHashCode))) ( ))) equals (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier c)) . (identifier GetHashCode))) ( ))))) (query_body_clause (join_into_clause join (identifier c1) in (expression (identifier customers)) on (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier c1)) . (identifier GetHashCode))) ( ))) equals (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier c)) . (identifier GetHashCode))) ( ))) into (identifier e))) (select_or_group_clause (group_clause group (expression (identifier c)) by (expression (member_access (primary_expression (identifier c)) . (identifier Country))))) (query_continuation into (identifier g) (query_body (query_body_clause (orderby_clause orderby (orderings (ordering (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier g)) . (identifier Count))) ( ))) (ordering_direction ascending))))) (query_body_clause (orderby_clause orderby (orderings (ordering (expression (member_access (primary_expression (identifier g)) . (identifier Key))) (ordering_direction descending))))) (select_or_group_clause (select_clause select (expression (anonymous_object_creation_expression new (anonymous_object_initializer { (member_declarator_list (member_declarator (identifier Country) = (expression (member_access (primary_expression (identifier g)) . (identifier Key)))) , (member_declarator (identifier CustCount) = (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier g)) . (identifier Count))) ( ))))) }))))))))))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier query)) (assignment_operator =) (expression (query_expression (from_clause from (identifier c) in (expression (identifier customers))) (query_body (select_or_group_clause (select_clause select (expression (identifier c)))) (query_continuation into (identifier d) (query_body (select_clause select (expression (identifier d)))))))))) ;))) })))) }))) })))) +(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier My)) (namespace_body { (namespace_member_declaration (class_declaration (class_modifier public) (class_modifier (unsafe_modifier unsafe)) partial class (identifier A) (class_base : (interface_type_list (interface_type (identifier C)) , (interface_type (identifier I)))) (class_body { (class_member_declaration (constructor_declaration (constructor_modifier public) (constructor_declarator (identifier A) ( (parameter_list (fixed_parameter (attributes (attribute_section [ (attribute_target_specifier (attribute_target (identifier param)) :) (attribute_list (identifier Obsolete)) ])) (type (integral_type int)) (identifier foo))) ) (constructor_initializer : base ( (argument_list (literal 1)) ))) (constructor_body (block { (statement_list (statement (lock_statement lock ( (expression (identifier sync)) ) (embedded_statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier process)) ( ))) ;)))) (statement (using_statement using ( (resource_acquisition (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier v) = (expression (invocation_expression (primary_expression (identifier BeginScope)) ( )))))) ) (embedded_statement (using_statement using ( (resource_acquisition (explicitly_typed_local_variable_declaration (type (identifier A)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (object_creation_expression new (type (identifier A)) ( ))))))) ) (embedded_statement (using_statement using ( (resource_acquisition (explicitly_typed_local_variable_declaration (type (identifier A)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (object_creation_expression new (type (identifier A)) ( )))) , (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (object_creation_expression new (type (identifier A)) ( ))))))) ) (embedded_statement (using_statement using ( (resource_acquisition (invocation_expression (primary_expression (identifier BeginScope)) ( ))) ) (embedded_statement (return_statement return ;)))))))))) (statement (yield_statement yield return (expression (element_access (primary_expression (member_access (primary_expression (this_access this)) . (identifier items))) [ (argument_list (literal 3)) ])) ;)) (statement (yield_statement yield break ;)) (statement (fixed_statement fixed ( (pointer_type (value_type (integral_type int)) *) (fixed_pointer_declarators (fixed_pointer_declarator (identifier p) = (fixed_pointer_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 100)) ]))) , (fixed_pointer_declarator (identifier q) = (fixed_pointer_initializer & (variable_reference (identifier y))))) ) (embedded_statement (block { (statement_list (expression_statement (statement_expression (assignment (unary_expression (pointer_indirection_expression * (unary_expression (identifier intref)))) (assignment_operator =) (expression (literal 1)))) ;)) })))) (statement (fixed_statement fixed ( (pointer_type (value_type (integral_type int)) *) (fixed_pointer_declarators (fixed_pointer_declarator (identifier p) = (fixed_pointer_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 100)) ])))) ) (embedded_statement (block { (statement_list (expression_statement (statement_expression (assignment (unary_expression (pointer_indirection_expression * (unary_expression (identifier intref)))) (assignment_operator =) (expression (literal 1)))) ;)) })))) (statement (unsafe_statement unsafe (block { (statement_list (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (pointer_type (value_type (integral_type int)) *)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier p) = (local_variable_initializer (null_literal null)))))) ;)) }))) (statement (try_statement try (block { (statement_list (throw_statement throw (expression (null_literal null)) ;)) }) (catch_clauses (specific_catch_clause catch (exception_specifier ( (type (namespace_or_type_name (identifier System) . (identifier AccessViolationException))) (identifier av) )) (block { (statement_list (throw_statement throw (expression (identifier av)) ;)) })) (specific_catch_clause catch (exception_specifier ( (type (identifier Exception)) )) (block { (statement_list (throw_statement throw ;)) }))) (finally_clause finally (block { (statement_list (try_statement try (block { }) (catch_clauses (general_catch_clause catch (block { }))))) })))) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (contextual_keyword var)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier anonymous) = (local_variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (assignment (unary_expression (identifier A)) (assignment_operator =) (expression (literal 1)))) , (variable_initializer (assignment (unary_expression (identifier B)) (assignment_operator =) (expression (literal 2)))) , (variable_initializer (assignment (unary_expression (identifier C)) (assignment_operator =) (expression (literal 3))))) , })))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier query) = (expression (query_expression (from_clause from (identifier c) in (expression (identifier customers))) (query_body (query_body_clause (let_clause let (identifier d) = (expression (identifier c)))) (query_body_clause (where_clause where (boolean_expression (equality_expression (equality_expression (identifier d)) != (relational_expression (null_literal null)))))) (query_body_clause (join_clause join (identifier c1) in (expression (identifier customers)) on (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier c1)) . (identifier GetHashCode))) ( ))) equals (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier c)) . (identifier GetHashCode))) ( ))))) (query_body_clause (join_into_clause join (identifier c1) in (expression (identifier customers)) on (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier c1)) . (identifier GetHashCode))) ( ))) equals (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier c)) . (identifier GetHashCode))) ( ))) into (identifier e))) (select_or_group_clause (group_clause group (expression (identifier c)) by (expression (member_access (primary_expression (identifier c)) . (identifier Country))))) (query_continuation into (identifier g) (query_body (query_body_clause (orderby_clause orderby (orderings (ordering (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier g)) . (identifier Count))) ( ))) (ordering_direction ascending))))) (query_body_clause (orderby_clause orderby (orderings (ordering (expression (member_access (primary_expression (identifier g)) . (identifier Key))) (ordering_direction descending))))) (select_or_group_clause (select_clause select (expression (anonymous_object_creation_expression new (anonymous_object_initializer { (member_declarator_list (member_declarator (identifier Country) = (expression (member_access (primary_expression (identifier g)) . (identifier Key)))) , (member_declarator (identifier CustCount) = (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier g)) . (identifier Count))) ( ))))) }))))))))))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier query)) (assignment_operator =) (expression (query_expression (from_clause from (identifier c) in (expression (identifier customers))) (query_body (select_or_group_clause (select_clause select (expression (identifier c)))) (query_continuation into (identifier d) (query_body (select_clause select (expression (identifier d)))))))))) ;))) })))) }))) })))) diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.tree.svg b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.tree.svg index 503732c15..94d9b36ba 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.tree.svg +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-E/Reference/sample.tree.svg @@ -1,23 +1,23 @@ - - - - - - - - - - - + + + + + + + + + + + - + - - - + + + - + @@ -27,13 +27,13 @@ - - - - - + + + + + - + @@ -65,11 +65,11 @@ - - - - - + + + + + @@ -87,7 +87,7 @@ - + @@ -181,13 +181,13 @@ - - - - - - - + + + + + + + @@ -195,3331 +195,3331 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -embedded_statement - - - -100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +( - - -[ + + +query_body_clause - - -} + + +fixed - - -value_type + + +identifier - - -I + + +try - - -av + + +anonymous_object_creation_expression - - -where + + +identifier - - -expression_statement + + +A - - -expression + + +namespace_declaration - - -fixed_pointer_declarator + + +int - - -assignment + + +( - - -join_clause + + +} - - -namespace_declaration + + +member_access - - -= + + +member_declarator - - + + expression - - -primary_expression + + +intref + + + +identifier - - + + ( - - + + expression - - -explicitly_typed_local_variable_declarators + + +A - - -statement_list + + +break - - -literal + + +identifier - - + + +2 + + + identifier - - -expression + + +pointer_type - - -where_clause + + +member_access - - -by + + +pointer_type - - -c + + +block - - -return_statement + + +p - - -explicitly_typed_local_variable_declaration + + +identifier - - -intref + + +member_access - - -. + + +type - - -query_continuation + + +g - - + + identifier - - -resource_acquisition - - - -join + + +) - - -int + + +statement - - -A + + +query_body_clause - - -fixed + + +identifier - - -{ + + +primary_expression - - -c1 + + +explicitly_typed_local_variable_declarators - - -= + + +, - - -statement_expression + + +identifier - - -invocation_expression + + +embedded_statement - - -) + + +block - - -statement_expression + + +new - - -: + + +) - - + + declaration_statement - - -} - - - + + invocation_expression - - -fixed_pointer_declarator + + +primary_expression - - -( + + +expression - - -statement + + +equals - - -int + + +) - - -explicitly_typed_local_variable_declarators + + +identifier - - -fixed_parameter + + +g - - -primary_no_array_creation_expression + + +) - - -statement + + +expression - - -contextual_keyword + + +. - - -ordering_direction + + +identifier - - -; + + +} - - -( + + +c - - -catch_clauses + + +. - - -embedded_statement + + += - - -& + + +using - - -exception_specifier + + +expression - - -integral_type + + +stackalloc_expression - - -integral_type + + +GetHashCode - - -Country + + +d - - -partial + + +unary_expression - - -query_body_clause + + +namespace - - -primary_expression + + +; - - -let_clause + + +query_body - - -explicitly_typed_local_variable_declaration + + +expression_statement - - -block + + +pointer_type - - -assignment + + +statement_expression - - -new + + +let_clause - - -invocation_expression + + +unary_expression - - -customers + + +class_body - - -expression + + +1 - - -= + + +implicitly_typed_local_variable_declarator - - -array_initializer + + +block - - -yield_statement + + +throw - - -pointer_indirection_expression + + +; - - -group + + +( - - -orderings + + +from - - -finally + + +I - - -items + + +using - - -statement_list + + +primary_expression - - -d + + +expression - - -query_body_clause + + +primary_expression - - -= + + +A - - -foo + + +identifier - - -primary_expression + + +query_expression - - -) - - - -class_base - - - -statement + + +unsafe_statement - - -{ + + +( - - -{ + + +, - - -( + + +) - - -new + + +statement_list - - -expression + + +explicitly_typed_local_variable_declarators - - -qualified_identifier + + +local_variable_initializer - - -resource_acquisition + + +catch - - -g + + +GetHashCode - - -class_declaration + + +) - - -expression + + +; - - -fixed_pointer_declarators + + +int - - -query_body_clause + + +class_member_declaration - - -statement_expression + + +public - - -anonymous_object_creation_expression + + +primary_expression - - -* + + +BeginScope - - -Count + + +let - - -av + + +throw - - -= + + +expression - - -identifier + + +Obsolete - - + + primary_expression - - -block - - - -using + + +} - - -local_variable_initializer + + +stackalloc = - - -block - - - -constructor_initializer + + +; - - -System + + +Key - - + + } - - -type - - - -. + + +identifier - - -( + + +identifier - - -resource_acquisition + + +{ - - -AccessViolationException + + +finally_clause - - -( + + +orderby - - -identifier + + +local_variable_initializer - - -in + + +invocation_expression - - -select_or_group_clause + + +expression - - -identifier + + +type - - -explicitly_typed_local_variable_declarators + + +fixed_pointer_initializer - - -pointer_type + + +. - - -literal + + +( - - -param + + +expression_statement - - -variable_initializer + + +fixed_statement - - -statement_list + + +expression - - -] + + +identifier - - -catch + + +expression - - -= + + +expression_statement - - -throw + + +type - - -explicitly_typed_local_variable_declarator + + +throw_statement - - -attribute_target + + +null - - -implicitly_typed_local_variable_declaration + + +variable_reference - - -; + + +group_clause - - + + identifier - - -query_body_clause - - - -lock_statement + + +null_literal - - -Key + + +statement - - -literal + + +statement_list - - -new + + +type - - -) + + +. - - -select_clause + + +identifier - - -= + + +c - - -statement + + +anonymous_object_initializer - - -declaration_statement + + +local_variable_declaration - - + + member_access - - -primary_expression - - - -assignment - - - -expression_statement + + +Country - - -new + + +d - - -assignment_operator + + +explicitly_typed_local_variable_declarators - - + + identifier - - -} + + +yield_statement - - -stackalloc_expression + + +unsafe_modifier - - -local_variable_declaration + + +, - - -g + + +constructor_body + + + +{ - - + + = - - -assignment + + +query_body_clause - - -primary_expression + + +statement_list - - -identifier + + +using_statement - - -from_clause + + +query - - -using + + +class_base - - -descending + + +unmanaged_type - - -fixed_pointer_initializer + + +1 - - -identifier + + +; - - -identifier + + +catch_clauses - - -a + + +) - - -a + + +assignment_operator - - -identifier + + +( - - + + ) - - -try + + +integral_type - - -identifier - - - -into - - - -{ - - - -literal + + +: - - -using_statement + + +assignment_operator - - -boolean_expression + + +query_continuation - - -q + + +* - - -p + + +} - - -assignment + + +statement - - -on + + += - - -e + + +implicitly_typed_local_variable_declarator - - -identifier + + +member_access - - -constructor_declarator + + +) - - -( + + +* - - -local_variable_initializer + + +) - - -BeginScope + + +return - - -; + + +identifier - - -{ + + +assignment - - -) + + +attribute_target_specifier - - -class_member_declaration + + +identifier - - -Obsolete + + +invocation_expression - - -identifier + + +variable_initializer - - + + A - - -} + + +new - - -class_body + + +fixed_pointer_declarators - - -var + + +class_modifier - - -join_into_clause + + +type - - -statement + + +expression - - -identifier + + +orderings - - -member_access + + += - - -equality_expression + + +assignment - - -primary_expression + + +Count - - -int + + +items - - -select + + +namespace_or_type_name - - -} + + +block - - -( + + +contextual_keyword - - -identifier + + +expression - - -Count + + +identifier - - -invocation_expression + + +BeginScope - - -object_creation_expression + + +[ - - + + identifier - - -primary_expression + + +partial - - -var + + +object_creation_expression - - -null + + +constructor_modifier - - + + assignment - - -attribute_section - - - -interface_type + + +query_body - - -try_statement + + +identifier - - -constructor_body + + +identifier - - -int + + +unsafe - - -yield + + +. - - -statement_list + + +member_access - - -) + + +select_clause - - -( + + +; - - -c + + +select - - -argument_list + + +query_body - - -* + + +} - - -primary_expression + + +explicitly_typed_local_variable_declarators - - -member_access + + +specific_catch_clause - - -GetHashCode + + +{ - - -v + + +type - - -identifier + + +customers - - -member_declarator_list + + +statement_list - - + + identifier - - -explicitly_typed_local_variable_declaration + + +where_clause - - -identifier + + +g - - -explicitly_typed_local_variable_declaration + + +statement_expression - - -identifier + + +in - - -; + + +explicitly_typed_local_variable_declarator - - -identifier + + +declaration_statement - - -identifier + + +fixed_pointer_declarators - - -) + + +unary_expression - - -intref + + += - - -explicitly_typed_local_variable_declarator + + +type - - -fixed_pointer_declarator + + +( - - -] + + +into - - -interface_type_list + + +c - - -. + + +sync - - -explicitly_typed_local_variable_declarator + + +variable_initializer - - -GetHashCode + + +pointer_indirection_expression - - + + +ordering + + + primary_expression - - -anonymous_object_initializer + + +invocation_expression - - -variable_initializer + + +; - - -BeginScope + + +( - - -identifier + + +. - - -anonymous + + +member_access - - -, + + +) - - + + identifier - - -A + + +attribute_target - - + + using - - -block - - - -local_variable_declaration - - - -this_access - - - -( - - - -= - - - + + identifier - - -( - - - -yield - - - -= + + +expression - - + + ) - - -stackalloc_expression - - - -identifier + + +join - - -type + + +. - - + + identifier - - -[ - - - -= - - - -statement_expression - - - -CustCount - - - -( - - - -explicitly_typed_local_variable_declarator + + +namespace_body - - -} + + +statement - - -y + + +variable_initializer_list - - -using_statement + + +local_variable_initializer - - -class_modifier + + +block - - -local_variable_initializer + + +identifier - - -) + + +boolean_expression - - + + . - - -catch + + +literal - - -* + + +, - - -type + + +fixed_statement + + + +{ - - + + literal - - -query + + +variable_initializer - - -yield_statement + + +embedded_statement - - + + identifier - - + + +GetHashCode + + + +int + + + A - - -) + + +literal - - -p + + +assignment - - -{ + + +select_or_group_clause - - -throw + + +constructor_declaration - - -primary_expression + + +return - - -unsafe_statement + + +primary_expression - - + + identifier - - -) + + +( - - -literal + + +foo - - -throw_statement + + +expression - - -finally_clause + + +statement - - -implicitly_typed_local_variable_declarator + + +av - - -identifier + + +{ - - -expression + + += - - + + +base + + + expression - - -fixed_statement + + +yield - - -query_expression + + +d - - -identifier + + +( - - -100 + + +expression - - -A + + +primary_expression - - -type + + +primary_expression - - -attribute_list + + +primary_expression - - -] + + +this - - + + unary_expression - - -block + + +var - - -; + + +select_or_group_clause - - -var + + +try_statement - - -query_body + + +select_clause - - -expression + + +fixed_parameter - - -public + + +c - - -} + + += - - -( + + +) - - -A + + +identifier - - -primary_expression + + +) - - + + +{ + + + identifier - - -statement_list + + +identifier - - -expression + + +equals - - -d + + +select_clause - - -unary_expression + + +expression_statement - - -null_literal + + +statement - - -into + + +c1 - - -public + + +( - - -this + + +identifier - - -equals + + +throw_statement - - -) + + +pointer_indirection_expression - - -c + + +where + + + +join embedded_statement - - -integral_type + + +relational_expression - - -1 + + +& - - -break + + +expression - - -explicitly_typed_local_variable_declarators + + +primary_expression - - -} + + +statement_expression - - -null_literal + + +in - - -invocation_expression + + +expression - - -identifier + + +expression - - -identifier + + +type - - -2 + + +unsafe - - -. + + +constructor_declarator - - -select_clause + + +new - - -relational_expression + + +assignment_operator - - -primary_expression + + += - - -type + + +{ - - -embedded_statement + + +( - - -My + + +try_statement - - -* + + +unary_expression - - -primary_expression + + +orderby_clause - - + + identifier - - -expression - - - -3 + + +local_variable_initializer - - -= + + +catch - - -* + + +identifier - - -orderings + + +finally - - -into + + +100 - - + + identifier - - -expression + + +a - - -expression + + +attribute_section - - -( + + +Exception - - -specific_catch_clause + + +} - - -c + + +, - - -unmanaged_type + + +, - - -) + + +orderby + + + +identifier - - + + { - - -namespace_member_declaration + + +by - - -type + + += - - -fixed_statement + + +fixed - - -identifier + + +; - - -fixed_pointer_initializer + + +ascending - - -} + + +using - - -= + + +( - - -assignment_operator + + +identifier - - -{ + + +statement_expression - - -member_access + + +explicitly_typed_local_variable_declarator - - -expression + + +q - - -join + + +in - - -C + + +attribute_list - - -identifier + + +} - - -: + + +expression - - -{ + + +yield - - -query_body + + +invocation_expression - - -identifier + + +local_variable_declaration - - -, + + +block - - -identifier + + +namespace_member_declaration - - -identifier + + += - - -primary_expression + + +orderby_clause - - -integral_type + + +statement - - + + identifier - - -c + + +integral_type - - + + +anonymous + + + identifier - - -argument_list + + +throw_statement + + + +general_catch_clause - - + + identifier - - -; + + +object_creation_expression - - -) + + +ordering_direction - - -integral_type + + +compilation_unit - - -sync + + +null_literal - - -A + + +embedded_statement - - -block + + +statement_list - - -) + + +in - - -namespace + + +a - - -object_creation_expression + + +int - - -local_variable_declaration + + += - - -null + + +c - - -, + + +into - - -query + + +identifier - - -null_literal + + +query_body_clause - - -identifier + + +} - - -fixed_pointer_initializer + + +query_continuation - - -expression + + +explicitly_typed_local_variable_declarator + + + +int - - + + d - - -= + + +ordering - - -member_access + + +join_into_clause - - -unary_expression + + +on - - -member_access + + +block - - -query_body_clause + + +block - - -embedded_statement + + +query - - -invocation_expression + + +parameter_list - - -} + + +local_variable_declaration - - + + ) - - -( + + +constructor_initializer - - -unsafe_modifier + + +A + + + +; + + + +interface_type + + + += + + + +identifier + + + +param expression - - -Country + + +into - - -query_continuation + + +integral_type - - -) + + +GetHashCode - - -identifier + + +: - - -lock + + +type - - -, + + +) - - -statement_list + + +element_access - - -. + + +customers - - -g + + +using_statement - - -expression + + +block - - -embedded_statement + + +] - - -orderby + + +primary_expression - - + + +resource_acquisition + + + identifier - - -throw_statement + + +identifier - - -variable_reference + + +. - - -object_creation_expression + + +member_access - - -primary_expression + + +identifier - - -try_statement + + +argument_list + + + +explicitly_typed_local_variable_declaration - - + + 1 - - -ordering + + +integral_type - - -base + + +join_clause - - -local_variable_initializer + + +implicitly_typed_local_variable_declaration - - -A + + +var - - -variable_initializer_list + + +intref - - -invocation_expression + + +object_creation_expression - - -attributes + + +implicitly_typed_local_variable_declaration - - -{ + + +( - - -block + + +!= - - -stackalloc + + +AccessViolationException - - -. + + +using_statement - - -customers + + +type - - -member_access + + +identifier - - -statement + + +from_clause - - -; + + +* - - -identifier + + +interface_type - - -( + + +C - - -literal + + +ordering_direction - - -general_catch_clause + + +b - - -constructor_modifier + + +) - - -process + + +unary_expression - - -= + + +identifier - - -expression + + +query_body_clause - - -1 + + +identifier - - -g + + +{ - - -identifier + + +A - - -unary_expression + + +integral_type - - -query_expression + + +v - - -; + + +) - - -; + + +( - - -customers + + +from_clause - - -{ + + +fixed_pointer_declarator + + + +statement + + + +expression + + + +class_declaration - - + + null - - -= + + +[ - - -catch_clauses + + +B - - + + +statement_list + + + +expression + + + block - - -. + + +statement - - -constructor_declaration + + +* - - -expression + + +select - - + + identifier - - -class_modifier + + +) - - -select_or_group_clause + + +exception_specifier - - -select + + +embedded_statement - - -catch + + +} - - -namespace_or_type_name + + +; + + + +customers + + + +( + + + +process - - -pointer_indirection_expression + + +null - - -expression + + +; - - -type + + +literal - - -identifier + + +{ - - -) + + +( - - -equality_expression + + +} - - -identifier + + +literal - - + + . - - -statement + + +identifier - - -member_declarator + + +catch - - -expression + + +query_expression - - -unary_expression + + +fixed_pointer_declarator - - -member_access + + +identifier - - -compilation_unit + + +1 - - -type + + +value_type - - -unsafe + + +c1 - - -; + + +My - - -pointer_type + + +primary_expression - - -orderby_clause + + +explicitly_typed_local_variable_declaration - - -primary_expression + + +integral_type - - -identifier + + +{ - - -return + + +c - - + + identifier - - -query_body - - - -in + + +primary_expression - - -pointer_type + + +from - - -in + + +{ - - -( + + += - - -select_or_group_clause + + +} - - -identifier + + +expression - - -assignment_operator + + +orderings - - + + ( - - -( + + +fixed_pointer_initializer - - -literal + + +c1 - - -class + + +select - - -identifier + + +] + + + +primary_expression - - + + identifier - - -assignment_operator + + +identifier - - -. + + +) - - -B + + +C - - + + identifier - - -fixed + + += - - -expression + + +invocation_expression - - -orderby_clause + + +embedded_statement - - -from + + += - - -[ + + +A - - -identifier + + +declaration_statement - - -try + + +member_access - - -unary_expression + + +c - - + + ; - - -select_clause - - - -GetHashCode - - - -g + + +) - - -( + + +lock - - -d + + +expression - - -variable_initializer + + +resource_acquisition - - -identifier + + +statement_list - - -} + + +customers - - -ordering + + +assignment - - -b + + +explicitly_typed_local_variable_declaration - - -expression_statement + + +expression - - -invocation_expression + + +qualified_identifier - - -prog + + +) - - -specific_catch_clause + + +fixed_pointer_declarator - - -fixed_pointer_declarators + + +member_declarator_list - - -throw_statement + + +identifier - - -using_statement + + +statement - - -: + + +local_variable_initializer - - -c + + +identifier - - -value_type + + +assignment - - + + identifier - - -block + + +, - - -c + + +g - - -assignment_operator + + +primary_expression - - -unmanaged_type + + +descending - - -member_access + + +{ - - -type + + +explicitly_typed_local_variable_declarator - - -int + + +( - - + + identifier - - -return + + += - - -group_clause + + +interface_type_list - - -} + + +primary_expression - - -literal + + +resource_acquisition - - -( + + +expression - - -{ + + +* - - -statement + + +identifier - - -= + + +. - - -implicitly_typed_local_variable_declaration + + +exception_specifier - - -from_clause + + +primary_expression - - -) + + +yield_statement - - -) + + +identifier - - -c + + +class - - -member_access + + +100 - - -value_type + + +literal + + + +invocation_expression + + + +int + + + += - - -primary_expression + + +assignment_operator - - -1 + + +: - - -statement + + +c1 - - + + expression - - -; - - - + + identifier - - -member_declarator + + +explicitly_typed_local_variable_declaration - - -( + + +fixed_pointer_initializer - - -expression + + +p - - -unary_expression + + +invocation_expression - - -implicitly_typed_local_variable_declarator + + +y - - -; + + +try - - -exception_specifier + + +CustCount - - -identifier + + +attributes - - -integral_type + + +c - - -identifier + + +class_modifier - - + + identifier - - + + +lock_statement + + + identifier - - -select + + +null_literal + + + +} - - + + expression - - -{ + + +identifier - - -type + + +( - - -expression_statement + + +resource_acquisition - - -primary_expression + + +specific_catch_clause - - -c1 + + +identifier - - -invocation_expression + + +] - - -identifier + + +Key - - + + statement - - -unary_expression - - - -expression + + +new - - -) + + +select_or_group_clause - - -. + + +identifier - - + + identifier - - -) + + +3 - - -query_body_clause + + +[ - - -Key + + +av - - -embedded_statement + + += - - -attribute_target_specifier + + +identifier - - -from + + +catch_clauses - - -customers + + +unary_expression - - -Exception + + +( - - + + +) + + + identifier - - -equals + + +identifier - - -GetHashCode + + +Count - - + + identifier - - -C + + +return_statement - - -identifier + + +literal - - -local_variable_initializer + + +literal - - -throw + + +System - - -orderby + + +prog - - + + { - - -expression + + +equality_expression - - -namespace_body + + +; - - -[ + + +literal - - + + expression - - -!= - - - -assignment_operator - - - -ascending + + +statement_list - - -resource_acquisition + + +throw - - -query_body + + +array_initializer - - -statement_list + + +query_body_clause - - -let + + +group - - -using + + +g - - -block + + +query_body - - -( + + +stackalloc - - -c1 + + +public - - -on + + +unmanaged_type - - -in + + +stackalloc_expression - - -identifier + + +p - - -parameter_list + + +member_access - - -identifier + + +[ - - -3 + + +expression - - + + ] - - + + +argument_list + + + expression - - -identifier + + +3 - - -) + + +assignment_operator - - -, + + +var - - -declaration_statement + + +equality_expression - - -p + + +e - - -unsafe + + +identifier - - -using_statement + + +primary_expression - - -stackalloc + + +value_type - - -identifier + + +unary_expression - - -expression + + +identifier - - -, + + +on - - -c1 + + +invocation_expression - - -ordering_direction + + +( - - -expression + + +Country - - -interface_type + + +explicitly_typed_local_variable_declarator - - -int + + +this_access - - -, + + +member_declarator - - -statement + + +value_type - - -statement_list + + +assignment_operator - - + + } - - -= - - - -element_access + + +embedded_statement - - -explicitly_typed_local_variable_declarator + + +using_statement \ No newline at end of file diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.gruntree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.gruntree.red.txt index 41fd1cf7c..1d242d57e 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.gruntree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.gruntree.red.txt @@ -249,67 +249,61 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ object_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_creation_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ new ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_type ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ rank_specifier -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ rank_specifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ object_or_collection_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ collection_initializer -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer_list ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_initializer_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_initializer -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 1 -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 1 ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_initializer -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_initializer -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_initializer -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.tree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.tree.red.txt index 7947016d7..3c72e2a96 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.tree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.tree.red.txt @@ -1 +1 @@ -(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier ConsoleApplication1)) (namespace_body { (namespace_member_declaration (class_declaration class (identifier Test) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier Bar3)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier x) = (expression (object_creation_expression new (type (namespace_or_type_name (identifier Boo) . (identifier Bar) (type_argument_list < (type_argument (integral_type int)) >) . (identifier Foo) (type_argument_list < (type_argument (class_type object)) >))) ( )))))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (member_access (primary_expression (identifier x)) . (identifier Method) (type_argument_list < (type_argument (class_type string)) , (type_argument (class_type string)) >))) ( (argument_list (argument (literal " ")) , (argument (literal 5)) , (argument (object_creation_expression new (type (class_type object)) ( )))) ))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier q) = (expression (query_expression (from_clause from (identifier i) in (expression (object_creation_expression new (type (array_type (non_array_type (integral_type int)) (rank_specifier [ ]))) (object_or_collection_initializer (collection_initializer { (element_initializer_list (element_initializer (literal 1)) , (element_initializer (literal 2)) , (element_initializer (literal 3)) , (element_initializer (literal 4))) }))))) (query_body (query_body_clause (where_clause where (boolean_expression (relational_expression (relational_expression (identifier i)) > (shift_expression (literal 5)))))) (select_or_group_clause (select_clause select (expression (identifier i)))))))))) ;))) })))) (class_member_declaration (operator_declaration (operator_modifier public) (operator_modifier static) (operator_declarator (conversion_operator_declarator implicit operator (type (identifier Test)) ( (fixed_parameter (type (class_type string)) (identifier s)) ))) (operator_body (block { (statement_list (return_statement return (expression (object_creation_expression new (type (namespace_or_type_name (identifier ConsoleApplication1) . (identifier Test))) ( ))) ;)) })))) (class_member_declaration (operator_declaration (operator_modifier public) (operator_modifier static) (operator_declarator (conversion_operator_declarator explicit operator (type (identifier Test)) ( (fixed_parameter (type (class_type string)) (identifier s) (default_argument = (expression (literal "")))) ))) (operator_body (block { (statement_list (return_statement return (expression (object_creation_expression new (type (identifier Test)) ( ))) ;)) })))) }))) })))) +(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier ConsoleApplication1)) (namespace_body { (namespace_member_declaration (class_declaration class (identifier Test) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier Bar3)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier x) = (expression (object_creation_expression new (type (namespace_or_type_name (identifier Boo) . (identifier Bar) (type_argument_list < (type_argument (integral_type int)) >) . (identifier Foo) (type_argument_list < (type_argument (class_type object)) >))) ( )))))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (member_access (primary_expression (identifier x)) . (identifier Method) (type_argument_list < (type_argument (class_type string)) , (type_argument (class_type string)) >))) ( (argument_list (argument (literal " ")) , (argument (literal 5)) , (argument (object_creation_expression new (type (class_type object)) ( )))) ))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier q) = (expression (query_expression (from_clause from (identifier i) in (expression (array_creation_expression new (array_type (non_array_type (integral_type int)) (rank_specifier [ ])) (array_initializer { (variable_initializer_list (variable_initializer (literal 1)) , (variable_initializer (literal 2)) , (variable_initializer (literal 3)) , (variable_initializer (literal 4))) })))) (query_body (query_body_clause (where_clause where (boolean_expression (relational_expression (relational_expression (identifier i)) > (shift_expression (literal 5)))))) (select_or_group_clause (select_clause select (expression (identifier i)))))))))) ;))) })))) (class_member_declaration (operator_declaration (operator_modifier public) (operator_modifier static) (operator_declarator (conversion_operator_declarator implicit operator (type (identifier Test)) ( (fixed_parameter (type (class_type string)) (identifier s)) ))) (operator_body (block { (statement_list (return_statement return (expression (object_creation_expression new (type (namespace_or_type_name (identifier ConsoleApplication1) . (identifier Test))) ( ))) ;)) })))) (class_member_declaration (operator_declaration (operator_modifier public) (operator_modifier static) (operator_declarator (conversion_operator_declarator explicit operator (type (identifier Test)) ( (fixed_parameter (type (class_type string)) (identifier s) (default_argument = (expression (literal "")))) ))) (operator_body (block { (statement_list (return_statement return (expression (object_creation_expression new (type (identifier Test)) ( ))) ;)) })))) }))) })))) diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.tree.svg b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.tree.svg index 24807612f..f4569a26d 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.tree.svg +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-K/Reference/sample.tree.svg @@ -1,34 +1,34 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + @@ -65,7 +65,7 @@ - + @@ -107,654 +107,656 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -non_array_type - - - -class_member_declaration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +literal - - -select_clause + + +( - - -identifier + + +s - - -new + + +statement_list - - -identifier + + +object_creation_expression - - + + ( - - -{ + + +variable_initializer - - -identifier + + +operator_declarator - - -element_initializer + + += - - -argument + + +. - - -element_initializer + + +Test - - -[ + + +from_clause - - -i + + +public - - -void + + +identifier - - -, + + +where - - -( + + +{ - - -object_creation_expression + + +variable_initializer - - -type_argument + + +relational_expression - - -ConsoleApplication1 + + +Foo - - -literal + + +) - - -implicitly_typed_local_variable_declarator + + +select_clause - - -implicit + + +statement - - -Foo + + +identifier - - -} + + +) - - -implicitly_typed_local_variable_declarator + + +4 - - -{ + + +string + + + +identifier - - + + +block + + + +namespace_declaration + + + literal - - -fixed_parameter + + +{ - - -public + + +identifier - - -, + + +array_creation_expression - - -class + + +class_declaration - - -; + + +class_member_declaration - - -. + + +1 + + + += + + + +new + + + +identifier + + + +identifier argument_list - - -type - - - -invocation_expression - - - -namespace_or_type_name + + +type_argument_list - - -) + + +primary_expression > - - -type + + +Test - - -return + + +string - - + + +object_creation_expression + + + +object_creation_expression + + + +identifier + + + +statement_list + + + +new + + + +qualified_identifier + + + +> + + + statement - - -{ + + +rank_specifier - - + + type - - -prog + + +integral_type - - -< + + +static - - -. + + +type_argument - - -operator_modifier + + +variable_initializer - - -identifier + + +class_type - - -) + + +new - - -class_member_declaration + + +) - - + + } - - -var - - - -identifier + + +type Bar3 - - -; + + +default_argument + + + +( + + + +return + + + +identifier - - + + } - - -argument + + +type - - -operator_modifier + + +string - - + + identifier - - -explicit - - - -expression_statement + + +int - - -Test + + +ConsoleApplication1 - - -primary_expression + + +, - - -class_body + + +operator_body - - + + expression - - -object_creation_expression - - - -} + + +shift_expression - - -string + + +member_access - - + + identifier - - -2 + + +q - - -compilation_unit + + +literal - - -integral_type + + +in - - -method_header - - - -int - - - -class_type + + +prog - - -member_name + + +, - - -] + + +array_type - - -{ + + +identifier - - + + type - - -. + + +s - - -Test + + +operator - - -) + + +type - - -class_type + + +expression - - -declaration_statement + + +void - - -s + + +literal - - -namespace_body + + +type - - + + new - - -statement_list + + +} - - -type + + +> - - -statement_list + + +Test - - -static + + +namespace - - + + new - - -argument - - - -public - - - -q + + +{ - - -= + + +object - - + + identifier - - -namespace_member_declaration - - - -query_body - - - -; - - - -class_type - - - -literal - - - -object - - - -; + + +method_modifiers - - -object_creation_expression + + +method_declaration - - -query_body_clause + + +where_clause - - -from_clause + + +i - - -where_clause + + +invocation_expression - - -operator_declarator + + +( - - -return_statement + + +public - - -identifier + + +expression - - -implicitly_typed_local_variable_declaration + + +literal - - -Boo + + +class - - -select + + +namespace_or_type_name - - + + expression - - -element_initializer + + +local_variable_declaration - - -3 + + +variable_initializer - - -operator_declaration + + +type_argument - - -fixed_parameter + + += - - -object_or_collection_initializer + + +return - - -implicitly_typed_local_variable_declaration + + +operator_declaration - - -( + + +namespace_body @@ -764,552 +766,540 @@ implicitly_typed_local_variable_declaration Bar - - -Test - - - -method_body + + +, - - -class_type + + +{ - - -identifier + + +] - - -literal + + +) - - -} + + +non_array_type - - -< + + +class_type - - -> + + +( - - -operator_declaration + + +class_type - - + + ) - - -, + + +operator_modifier - - -operator_declarator + + +block - - -expression + + +type_argument_list - - -ConsoleApplication1 + + +member_name - - -statement + + +var - - -class_declaration + + +variable_initializer_list - - -identifier + + +implicitly_typed_local_variable_declaration - - -< + + +conversion_operator_declarator - - -return_type + + +query_expression - - -i + + +statement_list - - -literal + + +Test - - -type + + +< - - -block + + +conversion_operator_declarator - - -in + + +< - - -query_expression + + +statement - - -) + + +< - - -integral_type + + +argument - - + + +implicit + + + identifier - - -rank_specifier + + +ConsoleApplication1 - - -type + + +argument - - -expression + + +argument - - + + 5 - - -operator_modifier - - - -shift_expression + + +) - - -( + + +. - - -, + + +identifier - - -method_modifiers + + +expression_statement - - + + class_type - - -type_argument + + +namespace_or_type_name - - -identifier + + +( - - -1 + + +explicit - - -select_or_group_clause + + +. - - -block + + +identifier - - -class_member_declaration + + +type_argument statement_expression - - -= - - - -) + + +; - - -object + + +Method - - -> + + +class_type - - -type + + +i - - -statement_list + + +operator_modifier - - -array_type + + +identifier - - -method_declaration + + +expression - - -i + + +; - - + + expression - - -4 - - - -type_argument + + +query_body_clause - - + + identifier - - -var + + +} - - -identifier + + +; - - -object_creation_expression + + +return_statement - - -; + + +operator_declarator - - -declaration_statement + + +operator_declaration - - -class_type + + +object_creation_expression - - -Test + + +type_argument - - -string + + +var - - -relational_expression + + +implicitly_typed_local_variable_declarator - - -) + + +x - - -type_argument_list + + +implicitly_typed_local_variable_declarator - - -type_argument_list + + +operator_modifier - - -new + + +class_member_declaration - - -x + + +array_initializer - - + + ( - - -, + + +operator_body - - -} + + +) - - -object_creation_expression + + +, - - -conversion_operator_declarator + + +fixed_parameter - - -default_argument + + +block - - -element_initializer + + +3 - - -( + + +identifier - - -. + + +declaration_statement - - -expression + + +literal - - -static + + +type - - -new + + +local_variable_declaration - - -return + + +i - - -x + + +method_header - - -relational_expression + + +{ - - -qualified_identifier + + +Test - - -local_variable_declaration + + +literal - - -( + + +query_body - - -literal + + +operator - - -identifier + + +select - - -"" + + +string - - -identifier + + +; - - -"·" + + +. - - -operator_body + + +from - - -type + + +relational_expression - - -5 + + +static - - -element_initializer_list + + +object - - -where + + +x - - -identifier + + +operator_modifier - - -local_variable_declaration + + +} - - -s + + +boolean_expression - - -int + + +class_body - - -string + + +implicitly_typed_local_variable_declaration - - -type_argument + + +integral_type - - -primary_expression + + +{ - - -Method + + +[ - - -from + + +> - - -= + + +Boo - - -expression + + +identifier - - -{ + + +class_type - - -namespace_declaration + + +compilation_unit - - -namespace_or_type_name + + +int - - -string + + +primary_expression - - -{ + + +namespace_member_declaration - - -statement + + +select_or_group_clause - - -, + + +method_body - - -literal + + +fixed_parameter - - -return_statement + + +} - - -conversion_operator_declarator + + +"" - - -member_access + + +class_member_declaration - - -Test + + +type_argument_list - - -operator_body + + +return_type - - -boolean_expression + + +2 - - + + ( - - -literal + + +, - - -type_argument_list + + +, - - -namespace + + +"·" - - -block + + +literal - - -operator_modifier + + +; - - -collection_initializer + + +declaration_statement - - + + identifier - - -> + + +return_statement - - -operator + + +5 - - -identifier + + +type - - -operator + + +expression \ No newline at end of file diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.gruntree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.gruntree.red.txt index 145cc83f4..318651ca2 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.gruntree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.gruntree.red.txt @@ -646,7 +646,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ a diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.tree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.tree.red.txt index 444a447e2..0b336426c 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.tree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.tree.red.txt @@ -1 +1 @@ -(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier Comments) . (identifier XmlComments) . (identifier UndocumentedKeywords)) (namespace_body { (namespace_member_declaration (class_declaration class (identifier (contextual_keyword yield)) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier Params)) ( (parameter_list (fixed_parameters (fixed_parameter (parameter_modifier (parameter_mode_modifier ref)) (type (contextual_keyword dynamic)) (identifier a)) , (fixed_parameter (parameter_modifier (parameter_mode_modifier out)) (type (contextual_keyword dynamic)) (identifier b))) , (parameter_array params (array_type (non_array_type (contextual_keyword dynamic)) (rank_specifier [ ])) (identifier c))) )) (method_body (block { })))) (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier Params)) ( (parameter_list (fixed_parameters (fixed_parameter (parameter_modifier (parameter_mode_modifier out)) (type (contextual_keyword dynamic)) (identifier a) (default_argument = (expression (literal 2)))) , (fixed_parameter (parameter_modifier (parameter_mode_modifier ref)) (type (contextual_keyword dynamic)) (identifier c) (default_argument = (expression (explictly_typed_default default ( (type (contextual_keyword dynamic)) )))))) , (parameter_array params (array_type (non_array_type (contextual_keyword dynamic)) (rank_specifier [ ]) (rank_specifier [ ])) (identifier c))) )) (method_body (block { })))) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) (method_modifier (ref_method_modifier override))) (return_type (class_type string)) (method_header (member_name (identifier ToString)) ( )) (method_body (block { (statement_list (return_statement return (expression (invocation_expression (primary_expression (base_access base . (identifier ToString))) ( ))) ;)) })))) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) partial) (return_type void) (method_header (member_name (identifier OnError)) ( )) (method_body ;))) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) partial) (return_type void) (method_header (member_name (identifier method)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (nullable_value_type (non_nullable_value_type (integral_type int)) (nullable_type_annotation ?))) (rank_specifier [ ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (array_creation_expression new (non_array_type (nullable_value_type (non_nullable_value_type (integral_type int)) (nullable_type_annotation ?))) [ (expression_list (literal 5)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (integral_type int)) (rank_specifier [ ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier (contextual_keyword var)) = (local_variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 1)) , (variable_initializer (literal 2)) , (variable_initializer (literal 3)) , (variable_initializer (literal 4)) , (variable_initializer (literal 5))) })))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier i) = (local_variable_initializer (element_access (primary_no_array_creation_expression (identifier a)) [ (argument_list (identifier i)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Foo) (type_argument_list < (type_argument (identifier T)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier f) = (local_variable_initializer (object_creation_expression new (type (namespace_or_type_name (identifier Foo) (type_argument_list < (type_argument (integral_type int)) >))) ( ))))))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (member_access (primary_expression (identifier f)) . (identifier method))) ( ))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator =) (expression (inclusive_or_expression (inclusive_or_expression (and_expression (and_expression (additive_expression (additive_expression (additive_expression (identifier i)) + (multiplicative_expression (identifier i))) - (multiplicative_expression (multiplicative_expression (multiplicative_expression (multiplicative_expression (identifier i)) * (unary_expression (identifier i))) / (unary_expression (identifier i))) % (unary_expression (identifier i))))) & (equality_expression (identifier i)))) | (exclusive_or_expression (exclusive_or_expression (identifier i)) ^ (and_expression (identifier i))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (simple_type bool)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (inclusive_or_expression (inclusive_or_expression (and_expression (and_expression (boolean_literal true)) & (equality_expression (boolean_literal false)))) | (exclusive_or_expression (exclusive_or_expression (boolean_literal true)) ^ (and_expression (boolean_literal false))))))))) ;))) })))) }))) })))) +(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier Comments) . (identifier XmlComments) . (identifier UndocumentedKeywords)) (namespace_body { (namespace_member_declaration (class_declaration class (identifier (contextual_keyword yield)) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier Params)) ( (parameter_list (fixed_parameters (fixed_parameter (parameter_modifier (parameter_mode_modifier ref)) (type (contextual_keyword dynamic)) (identifier a)) , (fixed_parameter (parameter_modifier (parameter_mode_modifier out)) (type (contextual_keyword dynamic)) (identifier b))) , (parameter_array params (array_type (non_array_type (contextual_keyword dynamic)) (rank_specifier [ ])) (identifier c))) )) (method_body (block { })))) (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier Params)) ( (parameter_list (fixed_parameters (fixed_parameter (parameter_modifier (parameter_mode_modifier out)) (type (contextual_keyword dynamic)) (identifier a) (default_argument = (expression (literal 2)))) , (fixed_parameter (parameter_modifier (parameter_mode_modifier ref)) (type (contextual_keyword dynamic)) (identifier c) (default_argument = (expression (explictly_typed_default default ( (type (contextual_keyword dynamic)) )))))) , (parameter_array params (array_type (non_array_type (contextual_keyword dynamic)) (rank_specifier [ ]) (rank_specifier [ ])) (identifier c))) )) (method_body (block { })))) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) (method_modifier (ref_method_modifier override))) (return_type (class_type string)) (method_header (member_name (identifier ToString)) ( )) (method_body (block { (statement_list (return_statement return (expression (invocation_expression (primary_expression (base_access base . (identifier ToString))) ( ))) ;)) })))) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) partial) (return_type void) (method_header (member_name (identifier OnError)) ( )) (method_body ;))) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) partial) (return_type void) (method_header (member_name (identifier method)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (nullable_value_type (non_nullable_value_type (integral_type int)) (nullable_type_annotation ?))) (rank_specifier [ ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (array_creation_expression new (non_array_type (nullable_value_type (non_nullable_value_type (integral_type int)) (nullable_type_annotation ?))) [ (expression_list (literal 5)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (array_type (non_array_type (integral_type int)) (rank_specifier [ ]))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier (contextual_keyword var)) = (local_variable_initializer (array_initializer { (variable_initializer_list (variable_initializer (literal 1)) , (variable_initializer (literal 2)) , (variable_initializer (literal 3)) , (variable_initializer (literal 4)) , (variable_initializer (literal 5))) })))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier i) = (local_variable_initializer (element_access (primary_expression (identifier a)) [ (argument_list (identifier i)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Foo) (type_argument_list < (type_argument (identifier T)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier f) = (local_variable_initializer (object_creation_expression new (type (namespace_or_type_name (identifier Foo) (type_argument_list < (type_argument (integral_type int)) >))) ( ))))))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (member_access (primary_expression (identifier f)) . (identifier method))) ( ))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator =) (expression (inclusive_or_expression (inclusive_or_expression (and_expression (and_expression (additive_expression (additive_expression (additive_expression (identifier i)) + (multiplicative_expression (identifier i))) - (multiplicative_expression (multiplicative_expression (multiplicative_expression (multiplicative_expression (identifier i)) * (unary_expression (identifier i))) / (unary_expression (identifier i))) % (unary_expression (identifier i))))) & (equality_expression (identifier i)))) | (exclusive_or_expression (exclusive_or_expression (identifier i)) ^ (and_expression (identifier i))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (simple_type bool)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (inclusive_or_expression (inclusive_or_expression (and_expression (and_expression (boolean_literal true)) & (equality_expression (boolean_literal false)))) | (exclusive_or_expression (exclusive_or_expression (boolean_literal true)) ^ (and_expression (boolean_literal false))))))))) ;))) })))) }))) })))) diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.tree.svg b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.tree.svg index a8b1d64da..515bf538c 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.tree.svg +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-O/Reference/sample.tree.svg @@ -1,26 +1,26 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - + + + @@ -68,7 +68,7 @@ - + @@ -134,7 +134,7 @@ - + @@ -170,7 +170,7 @@ - + @@ -187,26 +187,26 @@ - - - + + + - + - + - - - - - + + + + + @@ -243,7 +243,7 @@ - + @@ -286,1985 +286,1985 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +rank_specifier - - -fixed_parameter + + +identifier - - -unary_expression + + +3 - - -XmlComments + + +exclusive_or_expression - - -local_variable_initializer + + +array_type - - -return_type + + +explicitly_typed_local_variable_declarators - - -base + + +identifier - - -non_nullable_value_type + + +; - - -integral_type + + +exclusive_or_expression - - + + identifier - - -rank_specifier + + +method - - -and_expression + + +unary_expression - - + + identifier - - -identifier + + +expression_statement - - -identifier + + +Params - - -local_variable_initializer + + +member_name - - -= + + +nullable_value_type - - -explicitly_typed_local_variable_declarators + + +type - - -ToString + + +override - - -namespace_member_declaration + + +member_access - - -Params + + +out - - -Foo + + +] - - -explicitly_typed_local_variable_declaration + + +local_variable_declaration - - -type + + +parameter_mode_modifier - - -rank_specifier + + +; - - -expression + + +} - - -boolean_literal + + +primary_expression - - -array_creation_expression + + +< - - -% + + +type - - -{ + + +< - - + + method_header - - -local_variable_initializer - - - -1 + + +i - - -primary_expression + + +array_initializer - - -identifier + + +inclusive_or_expression - - -identifier + + +parameter_array - - -) + + +method_header - - -? + + +rank_specifier - - -element_access + + +statement - - -dynamic + + +statement - - -object_creation_expression + + +class_declaration - - -statement + + +compilation_unit - - -, + + +method_modifiers - - -non_array_type + + +element_access - - -explicitly_typed_local_variable_declarators + + +i - - -a + + +true - - -method_declaration + + +Comments - - + + ) - - -[ + + +literal - - -= + + +Foo - - -ref_method_modifier + + +local_variable_initializer - - -( + + +integral_type + + + +expression + + + +% + + + +, c - - -ToString + + +yield - - -& + + +{ - - -nullable_type_annotation + + +explicitly_typed_local_variable_declarators - - -array_initializer + + +fixed_parameter - - -return_type + + +( - - -class - - - -class_type - - - -> + + +{ - - -( + + +non_array_type - - + + boolean_literal - - -return_type - - - -local_variable_declaration - - - -= - - - -T - - - -identifier - - - -* - - - -5 - - - -} - - - -explictly_typed_default + + +prog - - -expression_statement + + +var - - -method_modifier + + +ref_method_modifier - - -[ + + +; - - -explicitly_typed_local_variable_declarator + + +method_body - - + + [ - - -expression - - - -method_modifiers + + +type - - -contextual_keyword + + +, - - -nullable_value_type + + +[ - - -local_variable_declaration + + +class_type - - -contextual_keyword + + +statement_expression - - -class_member_declaration + + +statement - - -ref_method_modifier + + +declaration_statement - - -dynamic + + +T - - -i + + +namespace_or_type_name - - -member_name + + +integral_type - - -method_modifier + + +statement_expression - - -identifier + + +unary_expression - - -local_variable_initializer + + +method_declaration - - -] + + +base - - -literal + + +a - - -unary_expression + + +parameter_list - - -out + + +assignment - - -i + + +OnError - - -identifier + + +parameter_mode_modifier - - -invocation_expression + + +( - - -} + + +nullable_value_type - - -and_expression + + +) - - -} + + +non_array_type - - + + identifier - - -explicitly_typed_local_variable_declarator + + +] - - -prog + + +statement - - -class_body + + +method_modifiers - - -( + + +method_body - - + + ref_method_modifier - - -UndocumentedKeywords - - - -method_declaration - - - -member_name + + +identifier - - -statement_expression + + +expression - - -statement_list + + +base_access - - -default_argument + + +type - - -fixed_parameter + + +contextual_keyword - - -var + + +) - - -statement + + +{ - - + + integral_type - - -method_body + + +explicitly_typed_local_variable_declaration - - -rank_specifier + + +parameter_modifier - - -, + + +declaration_statement - - -> + + +expression_list - - -explicitly_typed_local_variable_declaration + + +; - - -block + + +Foo - - -boolean_literal + + +fixed_parameter - - -parameter_modifier + + +identifier - - -public + + +) - - -int + + +dynamic - - -ref + + +] - - -method_declaration + + +} - - -identifier + + +namespace - - -local_variable_declaration + + +true - - -block + + +method_modifier 5 - - -i - - - -| - - - -expression + + +void - - -explicitly_typed_local_variable_declarator + + +i - - -literal + + +parameter_modifier - - -. + + +integral_type - - + + = - - -[ + + +non_array_type - - -parameter_mode_modifier + + +b - - -method_body + + +parameter_modifier - - -variable_initializer + + +non_array_type - - + + identifier - - -method_declaration - - - -bool - - - -( + + +identifier - - -base_access + + +non_array_type - - + + identifier - - -i - - - -} + + +local_variable_initializer - - + + and_expression - - -4 - - - -^ - - - -parameter_list - - - -} + + +identifier - - -type_argument + + +method_modifier - - -simple_type + + +? - - -non_array_type + + +inclusive_or_expression - - + + +method_body + + + , - - -< + + +boolean_literal - - -] + + +int - - -( + + +type_argument_list - - -OnError + + +1 - - -contextual_keyword + + +params - - -fixed_parameters + + +variable_initializer - - -class_member_declaration + + +} + + + +method_declaration declaration_statement - - + + identifier - - -) + + +variable_initializer - - -identifier + + +XmlComments - - -? + + +type - - -fixed_parameters + + +additive_expression - - -fixed_parameter + + +expression - - -nullable_value_type + + +UndocumentedKeywords - - -type + + +) - - -statement_expression + + +( - - -namespace + + +a - - -c + + +local_variable_initializer - - -array_type + + +variable_initializer - - -identifier + + +- - - -^ + + +multiplicative_expression - - -class_declaration + + +and_expression - - -explicitly_typed_local_variable_declaration + + +namespace_declaration - - -identifier + + +out - - + + +boolean_literal + + + +explicitly_typed_local_variable_declarator + + + ) - - -type + + +, - - -boolean_literal + + +literal - - -integral_type + + +and_expression - - -; + + +] - - -statement + + +^ - - + + +new + + + dynamic - - -identifier + + +partial - - -multiplicative_expression + + +dynamic - - -int + + +contextual_keyword - - -primary_no_array_creation_expression + + +i - - -( + + +> - - -rank_specifier + + +| - - -block + + +class_member_declaration - - -method_modifiers + + +; - - -exclusive_or_expression + + +contextual_keyword - - -method_modifiers + + +literal - - -partial + + +inclusive_or_expression - - -new + + +. - - -namespace_declaration + + +identifier - - -< + + +4 - - -identifier + + +public - - -; + + +i - - -type + + += - - -, + + +f + + + +fixed_parameter + + + +explicitly_typed_local_variable_declaration statement - - -] + + +identifier - - -int + + +parameter_list - - -= + + +member_name - - -; + + +statement_list + + + +} + + + +namespace_body + + + +contextual_keyword type - - -and_expression - - - -) + + +variable_initializer - - -class_member_declaration + + +namespace_or_type_name - - -identifier + + +block - - -method_modifiers + + +local_variable_declaration - - -identifier + + +int - - -method_modifiers + + +. - - -i + + +{ - - -} + + +* - - -integral_type + + +method_modifier - - -member_name + + +2 - - -; + + +identifier - - -multiplicative_expression + + +identifier - - -, + + += - - -parameter_modifier + + +explicitly_typed_local_variable_declaration - - -type + + +nullable_type_annotation - - -expression_list + + +& - - + + identifier - - -) + + +variable_initializer - - -argument_list + + +local_variable_declaration - - -[ + + +explicitly_typed_local_variable_declarator - - -integral_type + + +parameter_mode_modifier - - -non_array_type + + +[ - - -inclusive_or_expression + + +primary_expression - - + + return_type - - -equality_expression + + +member_name - - -] + + +( - - -string + + +default_argument - - -local_variable_declaration + + +rank_specifier - - -method_body + + +identifier - - -method_header + + +primary_expression - - -f + + +local_variable_initializer - - -; + + +i - - -Foo + + +method_body - - -true + + +method_declaration - - -partial + + +( - - -out + + +ToString - - -true + + +, - - -f + + +additive_expression - - -yield + + +5 - - -params + + +identifier - - -; + + +contextual_keyword - - -2 + + +explicitly_typed_local_variable_declarators - - -c + + +method_body - - -parameter_list + + +exclusive_or_expression - - -block + + +invocation_expression - - -exclusive_or_expression + + +invocation_expression + + + +identifier - - + + identifier - - + + +method_modifier + + + +return + + + , - - -type_argument_list + + +, - - -= + + +explicitly_typed_local_variable_declarator - - -return_statement + + +method_header - - -variable_initializer_list + + +explicitly_typed_local_variable_declarator - - -contextual_keyword + + +parameter_modifier - - -unary_expression + + +) - - -& + + +int + + + +int + + + +identifier + + + += + + + +statement_list + + + +ToString return_type - - -[ - - - -explicitly_typed_local_variable_declaration - - - -= - - - -dynamic + + +default_argument - - -parameter_mode_modifier + + +statement - - -contextual_keyword + + +type - - -variable_initializer + + +identifier - - -- + + +namespace_member_declaration - - -assignment_operator + + +( - - + + identifier - - -parameter_array + + +equality_expression - - -non_array_type + + +partial - - -namespace_or_type_name + + +block - - -i + + +; - - -literal + + +f - - -] + + +} - - -return + + +contextual_keyword - - -parameter_modifier + + +method_modifiers - - -explicitly_typed_local_variable_declarators + + +string - - -) + + +local_variable_declaration - - -ref_method_modifier + + +^ - - -i + + +return_type - - -declaration_statement + + +c - - -qualified_identifier + + +member_name - - -+ + + +literal - - -class_member_declaration + + +explicitly_typed_local_variable_declarators - - -declaration_statement + + +integral_type - - -contextual_keyword + + +assignment_operator - - -params + + +dynamic - - -literal + + +identifier - - -expression_statement + + +and_expression - - -dynamic + + +equality_expression - - -void + + +c - - -3 + + +{ - - -variable_initializer + + +class_member_declaration - - -contextual_keyword + + +type - - -| + + +public - - -statement + + +nullable_type_annotation - - -{ + + +array_type - - -int + + += - - -additive_expression + + +literal - - -method_declaration + + +identifier - - -a + + +] - - -member_name + + +identifier - - -a + + +multiplicative_expression - - -( + + +array_type - - -primary_expression + + +boolean_literal - - -identifier + + +2 - - -additive_expression + + +primary_expression - - -exclusive_or_expression + + +i - - -parameter_array + + +false - - -identifier + + +{ - - -equality_expression + + +class_member_declaration - - -} + + +return_type - - -dynamic + + +/ - - + + identifier - - -statement_list + + +explicitly_typed_local_variable_declaration - - -explicitly_typed_local_variable_declarators + + +rank_specifier - - -class_member_declaration + + +and_expression + + + +ref - - -identifier + + +method_modifiers - - -{ + + +object_creation_expression - - -member_name + + +fixed_parameters - - -void + + +} - - -namespace_or_type_name + + +non_nullable_value_type - - -. + + +literal - - -Comments + + +method_header - - -i + + +> - - -{ + + +member_name - - -identifier + + +class_member_declaration - - -multiplicative_expression + + +; - - -method_body + + +simple_type - - -; + + +default - - + + ] - - -and_expression + + +type_argument_list - - -array_type + + +expression_statement - - -identifier + + +[ - - -i + + +argument_list - - -variable_initializer + + +explicitly_typed_local_variable_declarator - - -b + + +method - - -( + + +multiplicative_expression - - -default_argument + + +statement - - -multiplicative_expression + + +? - - -. + + +block - - -inclusive_or_expression + + +declaration_statement - - -Params + + +additive_expression - - + + identifier - - -non_nullable_value_type + + +identifier - - -method_header + + +identifier - - -member_access + + +explicitly_typed_local_variable_declarators - - -public + + +void - - -. + + +type - - -and_expression + + +i - - -method + + +( - - -explicitly_typed_local_variable_declarator + + +a - - + + i - - -statement + + +declaration_statement - - + + literal - - -{ + + +variable_initializer_list - - -identifier + + +expression - - -new + + +local_variable_declaration - - -array_type + + +contextual_keyword - - -nullable_type_annotation + + += - - -false + + +type - - -method_header + + +i - - -identifier + + +. - - -compilation_unit + + +b - - -ref + + +multiplicative_expression - - -type + + +parameter_array - - -explicitly_typed_local_variable_declarators + + +unary_expression - - -( + + +method_modifiers - - -inclusive_or_expression + + +method_declaration - - -additive_expression + + +identifier - - -local_variable_initializer + + +identifier - - -literal + + +} - - -assignment + + +) - - -parameter_mode_modifier + + +multiplicative_expression - - -override + + +identifier - - -method_body + + +method_declaration - - -array_type + + +bool - - -contextual_keyword + + +& - - -) + + +[ + + + +identifier + + + +, - - -int + + +a - - -public + + +class_member_declaration - - -explicitly_typed_local_variable_declaration + + +class_body + + + +fixed_parameter - - + + identifier - - -type + + +method_header - - -literal + + +| - - -method_header + + +and_expression - - -type + + +inclusive_or_expression - - -method + + +type_argument - - -false + + +[ - - -identifier + + +type_argument - - -exclusive_or_expression + + +void - - -method_modifier + + +explictly_typed_default - - -b + + +block - - -/ + + +identifier - - -declaration_statement + + +public - - -multiplicative_expression + + +return_type - - -; + + +i - - -explicitly_typed_local_variable_declarator + + += - - -2 + + +( - - -statement + + +exclusive_or_expression - - -identifier + + +type - - -default + + +parameter_mode_modifier - - -local_variable_declaration + + +local_variable_initializer - - -{ + + +ref_method_modifier - - -contextual_keyword + + +array_type - - -] + + +; - - -namespace_body + + +class - - -invocation_expression + + +return_statement - - -parameter_modifier + + +. - - -identifier + + +dynamic - - -type + + += - - -type_argument_list + + +] - - -) + + +contextual_keyword - - -non_array_type + + +int - - -a + + +dynamic - - -type_argument + + +{ - - -rank_specifier + + +[ - - -i + + ++ - - -fixed_parameter + + +array_creation_expression - - -method_modifier + + +contextual_keyword - - -inclusive_or_expression + + +identifier - - + + unary_expression - - -i + + +ref - - -variable_initializer + + +params - - -void + + +explicitly_typed_local_variable_declaration - - -= + + +new + + + +false ; - - -, - - - -[ + + +i - - -primary_expression + + +( - - -parameter_mode_modifier + + +fixed_parameters - - -expression + + +qualified_identifier - - + + dynamic - - -{ + + +) - - -declaration_statement + + +rank_specifier - - -, + + +Params - - -type + + +non_nullable_value_type - - -identifier + + +ref_method_modifier + + + +void \ No newline at end of file diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.gruntree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.gruntree.red.txt index d1751c7ed..25d1b01ff 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.gruntree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.gruntree.red.txt @@ -1175,7 +1175,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ x @@ -1235,7 +1235,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ x diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.stderr.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.tree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.tree.red.txt index 72c659176..f089328b9 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.tree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.tree.red.txt @@ -1 +1 @@ -(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier Comments) . (identifier XmlComments) . (identifier UndocumentedKeywords)) (namespace_body { (namespace_member_declaration (class_declaration class (identifier (contextual_keyword yield)) (class_body { (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) partial) (return_type void) (method_header (member_name (identifier method)) ( )) (method_body (block { (statement_list (statement (expression_statement (statement_expression (assignment (unary_expression (identifier b)) (assignment_operator =) (expression (unary_expression (logical_negation_operator !) (unary_expression (identifier b)))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator =) (expression (unary_expression ~ (unary_expression (identifier i)))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier b)) (assignment_operator =) (expression (conditional_and_expression (conditional_and_expression (relational_expression (relational_expression (identifier i)) < (shift_expression (identifier i)))) && (inclusive_or_expression (relational_expression (relational_expression (identifier i)) > (shift_expression (identifier i)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (nullable_value_type (non_nullable_value_type (integral_type int)) (nullable_type_annotation ?))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier ii) = (local_variable_initializer (literal 5)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier f) = (local_variable_initializer (conditional_expression (null_coalescing_expression (boolean_literal true)) ? (expression (literal 1)) : (expression (literal 0)))))))) ;)) (statement (expression_statement (statement_expression (post_increment_expression (primary_expression (identifier i)) ++)) ;)) (statement (expression_statement (statement_expression (post_decrement_expression (primary_expression (identifier i)) --)) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier b)) (assignment_operator =) (expression (conditional_or_expression (conditional_or_expression (conditional_and_expression (conditional_and_expression (boolean_literal true)) && (inclusive_or_expression (boolean_literal false)))) || (conditional_and_expression (boolean_literal true)))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier b)) (assignment_operator =) (expression (conditional_and_expression (conditional_and_expression (conditional_and_expression (conditional_and_expression (equality_expression (equality_expression (identifier i)) == (relational_expression (identifier i)))) && (inclusive_or_expression (equality_expression (equality_expression (identifier i)) != (relational_expression (identifier i))))) && (inclusive_or_expression (relational_expression (relational_expression (identifier i)) <= (shift_expression (identifier i))))) && (inclusive_or_expression (relational_expression (relational_expression (identifier i)) >= (shift_expression (identifier i)))))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator +=) (expression (literal 5.0)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator -=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator *=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator /=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator %=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator &=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator |=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator ^=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator <<=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator (right_shift_assignment > >=)) (expression (identifier i)))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type object)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier s) = (local_variable_initializer (lambda_expression (anonymous_function_signature (identifier x)) => (anonymous_function_body (additive_expression (additive_expression (identifier x)) + (multiplicative_expression (literal 1)))))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (floating_point_type double)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier d) = (local_variable_initializer (literal .3)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (identifier Point)) (explicitly_typed_local_variable_declarators (identifier point)))) ;)) (statement (unsafe_statement unsafe (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (pointer_type (value_type (identifier Point)) *)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier p) = (local_variable_initializer (addressof_expression & (unary_expression (identifier point)))))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (pointer_member_access (primary_expression (identifier p)) -> (identifier x))) (assignment_operator =) (expression (literal 10)))) ;))) }))) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (qualified_alias_member (identifier IO) :: (identifier BinaryReader))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier br) = (local_variable_initializer (null_literal null)))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (element_access (primary_no_array_creation_expression (identifier x)) [ (argument_list (argument (argument_name (identifier i) :) (argument_value (literal 1)))) ])) (assignment_operator =) (expression (literal 3)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (element_access (primary_no_array_creation_expression (identifier x)) [ (argument_list (argument (argument_name (identifier i) :) (argument_value (literal 1))) , (argument (argument_name (identifier j) :) (argument_value (literal 5)))) ])) (assignment_operator =) (expression (literal "str")))) ;))) })))) (class_member_declaration (struct_declaration struct (identifier Point) (struct_body { (struct_member_declaration (field_declaration (field_modifier public) (type (integral_type int)) (variable_declarators (identifier X)) ;)) (struct_member_declaration (field_declaration (field_modifier public) (type (integral_type int)) (variable_declarators (identifier Y)) ;)) (struct_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier ThisAccess)) ( )) (method_body (block { (statement_list (expression_statement (statement_expression (assignment (unary_expression (this_access this)) (assignment_operator =) (expression (this_access this)))) ;)) })))) }))) }))) })))) +(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier Comments) . (identifier XmlComments) . (identifier UndocumentedKeywords)) (namespace_body { (namespace_member_declaration (class_declaration class (identifier (contextual_keyword yield)) (class_body { (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) partial) (return_type void) (method_header (member_name (identifier method)) ( )) (method_body (block { (statement_list (statement (expression_statement (statement_expression (assignment (unary_expression (identifier b)) (assignment_operator =) (expression (unary_expression (logical_negation_operator !) (unary_expression (identifier b)))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator =) (expression (unary_expression ~ (unary_expression (identifier i)))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier b)) (assignment_operator =) (expression (conditional_and_expression (conditional_and_expression (relational_expression (relational_expression (identifier i)) < (shift_expression (identifier i)))) && (inclusive_or_expression (relational_expression (relational_expression (identifier i)) > (shift_expression (identifier i)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (nullable_value_type (non_nullable_value_type (integral_type int)) (nullable_type_annotation ?))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier ii) = (local_variable_initializer (literal 5)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier f) = (local_variable_initializer (conditional_expression (null_coalescing_expression (boolean_literal true)) ? (expression (literal 1)) : (expression (literal 0)))))))) ;)) (statement (expression_statement (statement_expression (post_increment_expression (primary_expression (identifier i)) ++)) ;)) (statement (expression_statement (statement_expression (post_decrement_expression (primary_expression (identifier i)) --)) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier b)) (assignment_operator =) (expression (conditional_or_expression (conditional_or_expression (conditional_and_expression (conditional_and_expression (boolean_literal true)) && (inclusive_or_expression (boolean_literal false)))) || (conditional_and_expression (boolean_literal true)))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier b)) (assignment_operator =) (expression (conditional_and_expression (conditional_and_expression (conditional_and_expression (conditional_and_expression (equality_expression (equality_expression (identifier i)) == (relational_expression (identifier i)))) && (inclusive_or_expression (equality_expression (equality_expression (identifier i)) != (relational_expression (identifier i))))) && (inclusive_or_expression (relational_expression (relational_expression (identifier i)) <= (shift_expression (identifier i))))) && (inclusive_or_expression (relational_expression (relational_expression (identifier i)) >= (shift_expression (identifier i)))))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator +=) (expression (literal 5.0)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator -=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator *=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator /=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator %=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator &=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator |=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator ^=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator <<=) (expression (identifier i)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (identifier i)) (assignment_operator (right_shift_assignment > >=)) (expression (identifier i)))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type object)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier s) = (local_variable_initializer (lambda_expression (anonymous_function_signature (identifier x)) => (anonymous_function_body (additive_expression (additive_expression (identifier x)) + (multiplicative_expression (literal 1)))))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (floating_point_type double)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier d) = (local_variable_initializer (literal .3)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (identifier Point)) (explicitly_typed_local_variable_declarators (identifier point)))) ;)) (statement (unsafe_statement unsafe (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (pointer_type (value_type (identifier Point)) *)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier p) = (local_variable_initializer (addressof_expression & (unary_expression (identifier point)))))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (pointer_member_access (primary_expression (identifier p)) -> (identifier x))) (assignment_operator =) (expression (literal 10)))) ;))) }))) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (qualified_alias_member (identifier IO) :: (identifier BinaryReader))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier br) = (local_variable_initializer (null_literal null)))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (element_access (primary_expression (identifier x)) [ (argument_list (argument (argument_name (identifier i) :) (argument_value (literal 1)))) ])) (assignment_operator =) (expression (literal 3)))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (element_access (primary_expression (identifier x)) [ (argument_list (argument (argument_name (identifier i) :) (argument_value (literal 1))) , (argument (argument_name (identifier j) :) (argument_value (literal 5)))) ])) (assignment_operator =) (expression (literal "str")))) ;))) })))) (class_member_declaration (struct_declaration struct (identifier Point) (struct_body { (struct_member_declaration (field_declaration (field_modifier public) (type (integral_type int)) (variable_declarators (identifier X)) ;)) (struct_member_declaration (field_declaration (field_modifier public) (type (integral_type int)) (variable_declarators (identifier Y)) ;)) (struct_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier ThisAccess)) ( )) (method_body (block { (statement_list (expression_statement (statement_expression (assignment (unary_expression (this_access this)) (assignment_operator =) (expression (this_access this)))) ;)) })))) }))) }))) })))) diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.tree.svg b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.tree.svg index 1490fea5e..1791541ff 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.tree.svg +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-P/Reference/sample.tree.svg @@ -1,45 +1,45 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - + + + + + @@ -56,7 +56,7 @@ - + @@ -72,7 +72,7 @@ - + @@ -103,7 +103,7 @@ - + @@ -123,7 +123,7 @@ - + @@ -149,7 +149,7 @@ - + @@ -158,7 +158,7 @@ - + @@ -167,7 +167,7 @@ - + @@ -192,7 +192,7 @@ - + @@ -245,7 +245,7 @@ - + @@ -258,7 +258,7 @@ - + @@ -271,7 +271,7 @@ - + @@ -284,7 +284,7 @@ - + @@ -297,7 +297,7 @@ - + @@ -310,7 +310,7 @@ - + @@ -323,7 +323,7 @@ - + @@ -336,7 +336,7 @@ - + @@ -349,7 +349,7 @@ - + @@ -362,7 +362,7 @@ - + @@ -377,7 +377,7 @@ - + @@ -405,7 +405,7 @@ - + @@ -421,7 +421,7 @@ - + @@ -432,7 +432,7 @@ - + @@ -479,7 +479,7 @@ - + @@ -499,2632 +499,2632 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -IO - - - -class_declaration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +primary_expression - - -statement + + +value_type - - -declaration_statement + + +statement_expression - - + + literal - - -Comments + + +: - - -= + + +integral_type - - + + unary_expression - - -assignment + + +identifier - - -relational_expression + + +explicitly_typed_local_variable_declaration - - -= + + +struct_member_declaration - - -qualified_alias_member + + +assignment_operator - - -unsafe + + +unsafe_statement - - -explicitly_typed_local_variable_declarators + + +conditional_and_expression - - -expression + + +expression_statement - - -unary_expression + + +assignment_operator - - -relational_expression + + +assignment_operator - - -statement_expression + + +local_variable_initializer - - -.3 + + +type - - + + identifier - - -field_declaration + + += - - -Point + + +expression_statement - - -inclusive_or_expression + + +local_variable_declaration - - -identifier + + +i - - + + +anonymous_function_signature + + + ; - - + + +assignment + + + +unary_expression + + + = + + +qualified_alias_member + + + +identifier + + + +identifier + + + +statement + + + +declaration_statement + statement_expression - - -; + + +false - - -} + + +x - - -assignment + + +statement_expression - - -namespace_member_declaration + + +argument_list - - -s + + +explicitly_typed_local_variable_declarator - - + + +additive_expression + + + expression_statement - - -i + + +argument_list - - -lambda_expression + + +UndocumentedKeywords - - -assignment + + +/= - - -conditional_and_expression + + +local_variable_initializer - - -block + + +type - - -literal + + +, - - + + +( + + + identifier - - -assignment + + +explicitly_typed_local_variable_declarator - - -relational_expression + + +statement_expression - - + + +identifier + + + assignment - - -explicitly_typed_local_variable_declaration + + +public - - -. + + +expression_statement - - -true + + +>= - - + + ; - - -type + + +method_header - - -identifier - - - -prog - - - -boolean_literal + + +conditional_and_expression - - -expression_statement + + +local_variable_declaration - - -relational_expression + + +assignment - - -statement + + +; - - -! + + +point - - -expression + + +local_variable_initializer - - -statement_expression + + +conditional_and_expression - - -assignment + + +statement - - + + assignment_operator - - -:: - - - -expression_statement + + +explicitly_typed_local_variable_declarators - - -identifier + + +nullable_type_annotation - - -integral_type + + +statement - - -identifier + + +conditional_and_expression - - -i + + +declaration_statement - - + + ; - - -; + + +0 - - + + identifier - - -i + + +conditional_or_expression - - -&& + + +statement - - -/= + + +i - - -( + + +null_literal - - -return_type + + += - - -) + + +identifier - - -local_variable_declaration + + +assignment - - + + +{ + + + i - - -relational_expression + + +method_modifiers - - -block + + +|| - - + + i - - -!= + + +statement_expression - - -expression_statement + + +i - - -value_type + + +assignment_operator - - -field_declaration + + +statement - - -identifier + + +|= - - -literal + + +qualified_identifier - - + + +; + + + unary_expression - - -i + + +relational_expression identifier - - -class_type - - - -integral_type - - - -literal + + +1 - - -unary_expression + + +&& - - -declaration_statement + + +assignment - - -unsafe_statement + + +> - - -boolean_literal + + +; - - -explicitly_typed_local_variable_declarators + + +b - - + + identifier - - -literal + + += - - -identifier + + +} - - + + i - - -expression_statement + + +x - - -inclusive_or_expression + + +expression_statement - - -public + + +3 - - -struct_member_declaration + + +class_declaration - - -variable_declarators + + +identifier - - -field_modifier + + +; - - -expression + + +unary_expression - - -this + + +type - - -local_variable_declaration + + +null_coalescing_expression - - -return_type + + +argument_name - - -BinaryReader + + +prog - - + + = - - -i - - - -identifier - - - -> - - - -; - - - -expression_statement + + +local_variable_initializer - - -assignment_operator + + +compilation_unit - - -i + + +literal - - -assignment_operator + + +-= - - + + statement_expression - - + + identifier - - -1 + + +Comments - - + + +statement + + + identifier assignment - - ->= + + +explicitly_typed_local_variable_declarators - - -statement + + +j - - -namespace_body + + +&& - - -relational_expression + + += - - -unary_expression + + +i - - -identifier + + +{ - - -conditional_and_expression + + +identifier - - -type + + +expression_statement - - + + identifier - - -argument + + +relational_expression - - -expression + + +unary_expression - - -addressof_expression + + +expression - - -; + + +i - - -identifier + + +literal - - -unary_expression + + +assignment - - -= + + +local_variable_declaration - - -statement + + +Point - - -assignment_operator + + +; - - -equality_expression + + +assignment - - -expression_statement + + +& - - -type + + +boolean_literal - - -statement + + +declaration_statement - - -class + + +namespace_declaration - - -1 + + +statement_expression - - -identifier + + +primary_expression - - -additive_expression + + +assignment - - -( + + +i - - -; + + +} - - -0 + + +null - - -i + + +literal - - -identifier + + +] - - -i + + +statement - - -local_variable_initializer + + +identifier - - -i + + +b - - -i + + +assignment_operator - - -statement + + +; - - -void + + +expression_statement - - -+= + + +statement_list - - -explicitly_typed_local_variable_declaration + + +assignment_operator - - -identifier + + +primary_expression - - -: + + +explicitly_typed_local_variable_declaration - - -&= + + +== - - -conditional_or_expression + + +identifier - - -. + + +unary_expression - - -shift_expression + + +class - - -expression + + +identifier - - -statement_expression + + +assignment - - + + statement_expression - - -type - - - -statement + + +pointer_member_access - - + + identifier - - -struct_body + + +i - - -conditional_and_expression + + +expression_statement - - -statement + + +i - - -identifier + + +argument_value - - -false + + +assignment - - -method_body + + +statement - - -identifier + + +i - - -primary_no_array_creation_expression + + +i - - -ThisAccess + + +relational_expression - - -method + + +assignment - - -expression + + +identifier - - -; + + +statement - - -right_shift_assignment + + +contextual_keyword - - -method_modifier + + +identifier - - -primary_expression + + +unary_expression - - -argument_name + + +unary_expression - - -qualified_identifier + + +block - - -expression + + += - - + + +void + + + expression_statement - - -identifier + + +i - - -non_nullable_value_type + + +declaration_statement - - -statement + + +identifier - - -multiplicative_expression + + +< - - -relational_expression + + +identifier - - -& + + +5 - - -? + + +true - - -int + + +explicitly_typed_local_variable_declarator - - --- + + +addressof_expression - - -floating_point_type + + +unary_expression - - -block + + +: - - -identifier + + +argument - - -i + + +argument_value - - -identifier + + +struct_declaration - - -identifier + + +expression - - -statement_list + + +field_modifier - - -identifier + + +i - - -unary_expression + + +shift_expression - - -argument + + +%= - - -1 + + +literal - - -} + + +> ; - - -explicitly_typed_local_variable_declarators + + +ref_method_modifier - - + + statement - - -assignment_operator + + +explicitly_typed_local_variable_declaration - - -unary_expression + + +local_variable_initializer - - -nullable_value_type + + +; - - -conditional_expression + + +; - - + + identifier - - -assignment - - - -local_variable_declaration + + +declaration_statement - - -i + + +type - - + + ; - - -struct_declaration - - - -explicitly_typed_local_variable_declarators - - - -statement_expression + + +int - - + + identifier - - -b + + +identifier - - -statement_expression + + +expression_statement - - -expression + + +relational_expression - - -x + + +[ - - -this_access + + += - - -unary_expression + + +d - - + + identifier - - -statement - - - -i - - - -anonymous_function_body - - - -assignment_operator - - - -int - - - -explicitly_typed_local_variable_declarator + + +expression - - -i + + +5.0 ; - - -public + + +i - - -expression + + +i - - -anonymous_function_signature + + +statement - - -compilation_unit + + +b - - -shift_expression + + +lambda_expression - - -; + + +i + + + +additive_expression - - -f + + +&& - - -expression + + +identifier - - -partial + + +integral_type - - -; + + +statement_expression - - -statement + + +identifier - - -XmlComments + + +x - - -unary_expression + + +statement_expression - - -statement + + +identifier - - -] + + ++= + + + ++ - - + + = - - -statement + + +expression - - -assignment + + +expression_statement - - -statement_list + + +) - - -expression_statement + + +statement_expression - - -nullable_type_annotation + + +identifier - - -|= + + +i - - + + +^= + + + identifier - - + + ; - - -variable_declarators + + +5 - - -int + + +expression - - -expression_statement + + +1 - - -contextual_keyword + + +relational_expression - - -statement + + +inclusive_or_expression - - -int + + +identifier - - -ref_method_modifier + + +unary_expression - - -relational_expression + + +identifier - - + + expression - - -equality_expression + + +b - - + + +return_type + + + +post_decrement_expression + + + i - - -statement_expression + + += - - -local_variable_declaration + + +relational_expression - - -explicitly_typed_local_variable_declarator + + +argument_name - - -shift_expression + + +=> - - -statement_expression + + +IO - - -local_variable_initializer + + +method_declaration - - -statement_expression + + +; - - -argument_value + + +post_increment_expression - - -: + + +block - - -explicitly_typed_local_variable_declaration + + +unsafe - - --> + + +primary_expression - - -shift_expression + + +identifier - - -=> + + +assignment_operator - - + + assignment_operator - - -declaration_statement + + +statement_expression - - -identifier + + +statement - - -unary_expression + + +-- - - -literal + + +explicitly_typed_local_variable_declarators - - -conditional_or_expression + + +namespace_body + + + +boolean_literal + + + +assignment_operator + + + +{ + + + +type - - -integral_type + + +member_name - - -unary_expression + + +floating_point_type - - -identifier + + +i - - -expression_statement + + +literal - - -true + + += - - -yield + + +expression_statement - - + + identifier - - -identifier + + += - - -{ + + +identifier - - -local_variable_initializer + + +Point - - -explicitly_typed_local_variable_declaration + + +element_access - - -method_declaration + + +struct_body - - -identifier + + +Y assignment_operator - - -conditional_and_expression - - - -statement + + +statement_expression - - -inclusive_or_expression + + +class_type - - -identifier + + +unary_expression - - -, + + +; - - + + identifier - - + + ; - - -point + + += - - -? + + +method_body - - + + +identifier + + + ; - - -statement + + +type - - -; + + +explicitly_typed_local_variable_declarator - - -true + + +identifier - - + + unary_expression - - -assignment_operator + + +unary_expression - - -member_name + + +unary_expression - - -namespace_declaration + + +yield - - + + statement_expression - - -identifier + + +XmlComments - - + + +statement + + + +i + + + +expression + + + +. + + + +shift_expression + + + identifier - - -{ + + +expression_statement - - -null + + +expression - - -boolean_literal + + +} - - + + i - - -{ + + +int - - -assignment + + +statement - - + + +non_nullable_value_type + + + +statement + + + = - - -relational_expression + + +10 - - -integral_type + + +expression - - -p + + +conditional_and_expression - - -local_variable_declaration + + +explicitly_typed_local_variable_declarators - - -expression_statement + + +assignment - - -pointer_member_access + + +i - - -local_variable_initializer + + +conditional_or_expression - - -{ + + +expression - - -argument_name + + +statement + + + +statement - - -) + + +<<= - - + + identifier - - -method_body + + +i - - + + identifier - - -Point - - - -= + + +true - - -public + + +expression_statement - - -identifier + + +explicitly_typed_local_variable_declarators - - -struct_member_declaration + + +logical_negation_operator - - -assignment + + +this_access - - -argument_list + + +field_declaration - - -local_variable_initializer + + +statement - - -X + + +: - - -; + + +assignment_operator - - -++ + + +local_variable_declaration - - -i + + +explicitly_typed_local_variable_declarator - - -this_access + + +? - - + + expression_statement - - -declaration_statement - - - -assignment_operator + + +literal - - -class_member_declaration + + +identifier - - + + expression - - -expression_statement - - - -i + + +shift_expression - - -inclusive_or_expression + + +local_variable_declaration - - -assignment_operator + + +anonymous_function_body - - -ii + + +statement_list - - -assignment_operator + + +identifier - - -i + + +p - - -type + + +explicitly_typed_local_variable_declaration - - -statement + + +identifier - - -inclusive_or_expression + + +.3 - - -struct + + +statement_list - - -primary_expression + + +assignment_operator - - -declaration_statement + + +variable_declarators - - -identifier + + +type - - -class_member_declaration + + +local_variable_initializer - - -double + + +method_header - - -; + + +expression - - -argument_value + + +&& - - -expression_statement + + +identifier - - -x + + +void - - -identifier + + +true - - + + i - - -statement_expression - - - -} + + +explicitly_typed_local_variable_declarators - - -method_header + + +object - - -x + + +identifier - - + + statement - - -; + + +i - - -explicitly_typed_local_variable_declarator + + +expression - - -<= + + +unary_expression - - -identifier + + +unary_expression - - -explicitly_typed_local_variable_declaration + + +method_modifiers - - -unary_expression + + +"str" + + + +!= - - -class_body + + +{ - - -point + + +assignment_operator - - -conditional_and_expression + + +ref_method_modifier - - -~ + + +relational_expression - - -i + + +assignment_operator - - -statement_expression + + +expression_statement - - -statement + + +identifier - - -local_variable_initializer + + +{ - - -post_decrement_expression + + +statement - - -; + + +i - - -unary_expression + + +{ - - -; + + +BinaryReader - - -element_access + + +identifier - - -] + + +i - - -5 + + +namespace_member_declaration - - -explicitly_typed_local_variable_declarators + + +method_modifier - - + + identifier - - -assignment_operator + + +( - - -explicitly_typed_local_variable_declarator + + +. - - -} + + +expression - - -statement + + +identifier - - -statement + + +struct_member_declaration - - -field_modifier + + +unary_expression - - -^= + + +public - - -UndocumentedKeywords + + +expression - - -null_coalescing_expression + + +; - - -void + + +statement_expression - - -[ + + +~ - - + + +1 + + + = - - -object + + +expression - - -argument_name + + +argument - - -+ + + +expression_statement - - -unary_expression + + +namespace - - -explicitly_typed_local_variable_declarator + + +; - - -assignment + + +partial boolean_literal - - -statement_expression - - - -expression_statement + + +conditional_and_expression - - + + unary_expression - - -{ - - - -primary_no_array_creation_expression - - - -struct_member_declaration - - - -x - - - -identifier + + +assignment - - -null_literal + + +&& - - -statement + + +statement_expression - - -literal + + +expression - - + + identifier - - -literal + + +>= - - -assignment + + +argument_name - - -local_variable_declaration + + +* declaration_statement - - -i - - - --= - - - -; - - - -x + + +ii - - -expression + + +identifier - - -: + + +identifier - - -i + + +expression_statement - - -pointer_type + + +integral_type - - -element_access + + +statement - - -= + + +identifier - - -expression_statement + + +identifier - - -expression + + +; - - -b + + +field_modifier - - -literal + + +; - - -i + + +explicitly_typed_local_variable_declarator - - + + equality_expression - - -identifier + + +assignment_operator - - -identifier + + +primary_expression - - -* + + +expression_statement - - -unary_expression + + +} - - -assignment + + +literal - - -argument + + +assignment - - + + identifier - - -identifier + + +relational_expression - - -public + + +; - - -statement_list + + +conditional_and_expression - - -relational_expression + + +i - - -} + + +i - - -type + + +; - - -unary_expression + + +expression - - + + +struct + + + identifier - - -; + + +-> - - -statement + + +assignment - - -explicitly_typed_local_variable_declarator + + +statement_expression - - -Point + + +variable_declarators - - -unary_expression + + +} - - -expression + + +int - - + + i - - -conditional_and_expression + + +p - - -conditional_and_expression + + +s - - -explicitly_typed_local_variable_declarators + + +x - - + + +literal + + + +i + + + +double + + + ; - - -assignment + + +this_access - - -b + + +inclusive_or_expression - - + + identifier - - -5 + + +statement_expression - - -identifier + + +integral_type - - -i + + +pointer_type - - -1 + + +relational_expression - - -"str" + + +unary_expression - - -; + + +b - - -expression_statement + + +! - - -|| + + +f + + + +identifier + + + +field_declaration - - + + statement - - -&& + + +; + + + +; explicitly_typed_local_variable_declaration - - -assignment_operator + + +} - - + + expression - - -statement_expression + + +argument_value - - -conditional_and_expression + + +struct_member_declaration - - -3 + + +X - - -= + + +statement_expression + + + +assignment_operator + + + +identifier unary_expression - - -b - - - -10 - - - -expression - - - -logical_negation_operator + + +inclusive_or_expression - - -equality_expression + + +i - - -literal + + +identifier - - -explicitly_typed_local_variable_declaration + + +unary_expression - - -br + + +public - - -j + + +this - - -type + + +expression - - -b + + +right_shift_assignment - - -assignment + + +nullable_value_type - - -identifier + + +statement - - -} + + +ThisAccess - - -identifier + + +statement_expression - - -= + + +return_type - - -== + + +class_body - - -identifier + + +&= - - + + i - - -ref_method_modifier - - - -; - - - -member_name - - - -method_header - - - -> + + +class_member_declaration - - -p + + +explicitly_typed_local_variable_declaration - - -: + + +type - - -statement_expression + + +member_name - - -; + + +explicitly_typed_local_variable_declaration i - - -expression_statement - - - -expression_statement - - - -expression + + +identifier - - + + i - - -unary_expression - - - -[ + + +? - - -i + + +relational_expression - - -local_variable_declaration + + +unary_expression - - -5.0 + + +explicitly_typed_local_variable_declarators - - + + identifier - - -literal + + +unary_expression - - + + conditional_and_expression - - -additive_expression - - - + + identifier - - -%= - - - -assignment - - - -statement + + +declaration_statement - - + + statement - - -&& + + +identifier - - -declaration_statement + + +1 - - -statement + + +argument - - -expression_statement + + +inclusive_or_expression - - -identifier + + +literal - - -identifier + + +boolean_literal - - + + assignment - - + + identifier - - -*= - - - -assignment_operator + + +assignment - - -primary_expression + + +) - - -type + + +; - - -&& + + +expression_statement - - + + statement_expression - - -method_modifiers - - - ->= + + +assignment_operator - - -< + + +expression_statement - - -i + + +identifier - - -unary_expression + + +br - - -i + + +type - - + + identifier - - -expression + + +[ - - -post_increment_expression + + +statement - - -unary_expression + + +++ - - -explicitly_typed_local_variable_declarators + + +element_access - - -identifier + + +shift_expression - - -this + + +unary_expression - - -= + + +equality_expression - - -assignment_operator + + +<= - - -method_declaration + + +expression - - -d + + +statement - - -Y + + +Point - - -i + + +equality_expression - - + + literal - - + + +method + + + assignment_operator - - -expression + + +method_body - - -<<= + + +local_variable_declaration - - -expression + + +:: - - -assignment_operator + + +multiplicative_expression - - -statement_expression + + +method_declaration - - -statement_expression + + +point - - -&& + + +: - - -assignment_operator + + +this - - -argument_value + + +block - - -identifier + + +equality_expression - - -identifier + + +; - - -= + + +conditional_expression - - -argument_list + + +statement - - -type + + +inclusive_or_expression - - -= + + +x - - -; + + +statement - - -i + + +literal - - -method_modifiers + + +assignment - - -identifier + + +class_member_declaration - - -namespace + + +public - - -{ + + +int - - -statement_expression + + +local_variable_declaration - - -assignment + + +] + + + +conditional_and_expression + + + +*= \ No newline at end of file diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.gruntree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.gruntree.red.txt index e57be4493..759035fb6 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.gruntree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.gruntree.red.txt @@ -438,7 +438,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_conditional_element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ customers @@ -574,7 +574,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_conditional_element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ customers diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.stderr.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.tree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.tree.red.txt index f43703400..a0521fec2 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.tree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.tree.red.txt @@ -1 +1 @@ -(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier Comments) . (identifier XmlComments) . (identifier UndocumentedKeywords)) (namespace_body { (namespace_member_declaration (class_declaration class (identifier CSharp6Features) (class_body { (class_member_declaration (method_declaration (method_modifiers (method_modifier async)) (return_type void) (method_header (member_name (identifier Test)) ( )) (method_body (block { (statement_list (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier WriteLine)) ( (argument_list (invocation_expression (primary_expression (identifier Sqrt)) ( (argument_list (additive_expression (additive_expression (multiplicative_expression (multiplicative_expression (literal 3)) * (unary_expression (literal 3)))) + (multiplicative_expression (multiplicative_expression (literal 4)) * (unary_expression (literal 4))))) ))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier WriteLine)) ( (argument_list (additive_expression (additive_expression (identifier Friday)) - (multiplicative_expression (identifier Monday)))) ))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier range) = (expression (invocation_expression (primary_expression (identifier Range)) ( (argument_list (argument (literal 5)) , (argument (literal 17))) )))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier even) = (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier range)) . (identifier Where))) ( (argument_list (lambda_expression (anonymous_function_signature (identifier i)) => (anonymous_function_body (equality_expression (equality_expression (multiplicative_expression (multiplicative_expression (identifier i)) % (unary_expression (literal 2)))) == (relational_expression (literal 0)))))) )))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (nullable_value_type (non_nullable_value_type (integral_type int)) (nullable_type_annotation ?))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier length) = (local_variable_initializer (null_conditional_member_access (primary_expression (identifier customers)) ? . (identifier Length))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (identifier Customer)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier first) = (local_variable_initializer (null_conditional_element_access (primary_no_array_creation_expression (identifier customers)) ? [ (argument_list (literal 0)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier length) = (local_variable_initializer (null_coalescing_expression (conditional_or_expression (null_conditional_member_access (primary_expression (identifier customers)) ? . (identifier Length))) ?? (null_coalescing_expression (literal 0)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (nullable_value_type (non_nullable_value_type (integral_type int)) (nullable_type_annotation ?))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier first) = (local_variable_initializer (null_conditional_member_access (primary_expression (null_conditional_member_access (primary_expression (null_conditional_element_access (primary_no_array_creation_expression (identifier customers)) ? [ (argument_list (literal 0)) ])) ? . (identifier Orders))) ? . (identifier Count) (dependent_access ( )))))))) ;)) (statement (expression_statement (statement_expression (null_conditional_invocation_expression (null_conditional_member_access (primary_expression (identifier PropertyChanged)) ? . (identifier Invoke)) ( (argument_list (argument (this_access this)) , (argument (identifier args))) ))) ;))) })))) }))) })))) +(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier Comments) . (identifier XmlComments) . (identifier UndocumentedKeywords)) (namespace_body { (namespace_member_declaration (class_declaration class (identifier CSharp6Features) (class_body { (class_member_declaration (method_declaration (method_modifiers (method_modifier async)) (return_type void) (method_header (member_name (identifier Test)) ( )) (method_body (block { (statement_list (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier WriteLine)) ( (argument_list (invocation_expression (primary_expression (identifier Sqrt)) ( (argument_list (additive_expression (additive_expression (multiplicative_expression (multiplicative_expression (literal 3)) * (unary_expression (literal 3)))) + (multiplicative_expression (multiplicative_expression (literal 4)) * (unary_expression (literal 4))))) ))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier WriteLine)) ( (argument_list (additive_expression (additive_expression (identifier Friday)) - (multiplicative_expression (identifier Monday)))) ))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier range) = (expression (invocation_expression (primary_expression (identifier Range)) ( (argument_list (argument (literal 5)) , (argument (literal 17))) )))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier even) = (expression (invocation_expression (primary_expression (member_access (primary_expression (identifier range)) . (identifier Where))) ( (argument_list (lambda_expression (anonymous_function_signature (identifier i)) => (anonymous_function_body (equality_expression (equality_expression (multiplicative_expression (multiplicative_expression (identifier i)) % (unary_expression (literal 2)))) == (relational_expression (literal 0)))))) )))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (nullable_value_type (non_nullable_value_type (integral_type int)) (nullable_type_annotation ?))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier length) = (local_variable_initializer (null_conditional_member_access (primary_expression (identifier customers)) ? . (identifier Length))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (identifier Customer)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier first) = (local_variable_initializer (null_conditional_element_access (primary_expression (identifier customers)) ? [ (argument_list (literal 0)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier length) = (local_variable_initializer (null_coalescing_expression (conditional_or_expression (null_conditional_member_access (primary_expression (identifier customers)) ? . (identifier Length))) ?? (null_coalescing_expression (literal 0)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (nullable_value_type (non_nullable_value_type (integral_type int)) (nullable_type_annotation ?))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier first) = (local_variable_initializer (null_conditional_member_access (primary_expression (null_conditional_member_access (primary_expression (null_conditional_element_access (primary_expression (identifier customers)) ? [ (argument_list (literal 0)) ])) ? . (identifier Orders))) ? . (identifier Count) (dependent_access ( )))))))) ;)) (statement (expression_statement (statement_expression (null_conditional_invocation_expression (null_conditional_member_access (primary_expression (identifier PropertyChanged)) ? . (identifier Invoke)) ( (argument_list (argument (this_access this)) , (argument (identifier args))) ))) ;))) })))) }))) })))) diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.tree.svg b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.tree.svg index 0498ec558..8937fa3ad 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.tree.svg +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v6/AllInOneNoPreprocessor-v6-split/part-R/Reference/sample.tree.svg @@ -1,42 +1,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - + + + + + @@ -73,7 +73,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -117,7 +117,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -186,1365 +186,1365 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -statement + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +identifier - - -type + + +nullable_type_annotation - - -; + + += - - + + +identifier + + + +3 + + + primary_expression - - -? + + +range - - -class_body + + +4 - - -Comments + + +literal + + + +primary_expression + + + +] + + + +i identifier - - -literal - - - -literal + + +argument_list - - -explicitly_typed_local_variable_declarator + + +additive_expression - - -multiplicative_expression + + +null_conditional_member_access - - -declaration_statement + + +type - - -null_conditional_member_access + + +. - - -customers + + +) - - -method_header + + +statement - - -4 + + +argument_list - - -( + + +identifier - - -implicitly_typed_local_variable_declarator + + +explicitly_typed_local_variable_declarator - - -length + + +expression_statement - - -prog + + +identifier multiplicative_expression - - -Count + + +) - - -identifier + + +implicitly_typed_local_variable_declaration - - -= + + +primary_expression - - -argument + + +type - - -identifier + + +method_body - - -identifier + + +int - - -; + + +identifier - - -argument_list + + +Friday - - -local_variable_declaration + + +? - - -statement + + += - - + + first - - -this - - - -local_variable_declaration + + +argument - - -{ + + +statement_list - - -identifier + + +; - - -argument + + +customers - - -integral_type + + +primary_expression - - -type + + +primary_expression - - -null_coalescing_expression + + +namespace_declaration - - -* + + +literal - - -. + + +non_nullable_value_type - - -method_declaration + + +null_conditional_member_access - - -3 + + +primary_expression - - -member_access + + +declaration_statement - - -multiplicative_expression + + +block - - -class_declaration + + +5 - - -% + + +null_conditional_invocation_expression - - -null_conditional_member_access + + +? - - -argument_list + + +statement_expression - - -local_variable_declaration + + +Length - - -WriteLine + + +implicitly_typed_local_variable_declarator - - -argument_list + + +?? - - -explicitly_typed_local_variable_declarator + + +identifier - - + + . - - -expression + + +literal - - -identifier + + +explicitly_typed_local_variable_declaration - - -( + + +literal - - -argument_list + + +explicitly_typed_local_variable_declarators - - -explicitly_typed_local_variable_declaration + + +( - - -first + + +invocation_expression - - -null_conditional_member_access + + +( - - + + identifier - - -expression_statement - - - + + identifier - - -invocation_expression + + +WriteLine - - -Where - - - -argument_list - - - -) - - - -local_variable_initializer + + +equality_expression - - -literal + + +argument - - -additive_expression + + +nullable_value_type - - -declaration_statement + + +identifier - - -statement_expression + + +multiplicative_expression literal - - -17 + + +( + + + +argument_list + + + +compilation_unit + + + +identifier identifier - - -. - Range - - + + . - - -args - - - -statement - - - + + identifier - - -= + + +declaration_statement + + + +=> - - + + primary_expression - - -? + + +explicitly_typed_local_variable_declarators - - -namespace_body + + +. - - -qualified_identifier + + +local_variable_initializer - - -[ + + +statement_expression - - -namespace + + +( - - -primary_expression + + +statement - - -( + + +prog - - -i + + +; - - -range + + +argument - - + + identifier - - -; - - - -literal + + +explicitly_typed_local_variable_declaration - - -XmlComments + + +namespace_member_declaration - - -conditional_or_expression + + +== - - -=> + + +( - - + + statement - - -additive_expression + + +Where - - -= + + +invocation_expression - - -expression_statement + + +argument_list - - + + +argument_list + + + +explicitly_typed_local_variable_declaration + + + +; + + + ) - - -. + + += - - -statement_expression + + +) - - -} + + +] - - -statement_list + + +int - - -method_body + + +. - - -, + + +this_access - - -unary_expression + + +local_variable_initializer + + + +[ + + + +argument + + + +identifier implicitly_typed_local_variable_declaration - - -class + + +local_variable_initializer - - -unary_expression + + +CSharp6Features - - -statement_expression + + +argument_list - - -) + + +; - - -identifier + + += - - -0 + + +literal - - -customers + + +{ - - -method_modifier + + +literal - - -equality_expression + + +Sqrt - - -statement + + +% - - -nullable_value_type + + +{ - - -? + + +identifier - - -? + + +literal - - -2 + + +nullable_type_annotation - - + + identifier - - -) + + +* - - + + statement - - -? - - - -relational_expression + + +expression_statement - - -0 + + +Comments - - -argument_list + + +primary_expression - - -identifier + + +range - - -5 + + +this - - -* + + +multiplicative_expression - - -length + + +argument_list - - -statement + + +null_coalescing_expression - - -[ + + +} - - -, + + +conditional_or_expression - - -== + + +identifier - - -; + + +class_declaration - - -null_conditional_invocation_expression + + +statement - - -declaration_statement + + +local_variable_declaration - - + + identifier - - -? - - - -Friday + + +statement - - -dependent_access + + +method_modifier - - -identifier + + +length - - -implicitly_typed_local_variable_declaration + + +argument_list - - -local_variable_initializer + + +multiplicative_expression - - -type + + ++ - - + + identifier - - -customers - - - -multiplicative_expression + + +local_variable_declaration - - + + ( - - -?? + + +explicitly_typed_local_variable_declarators - - -range + + +, - - -explicitly_typed_local_variable_declarators + + +nullable_value_type - - -invocation_expression + + +expression_statement - - -0 + + +? - - -non_nullable_value_type + + +identifier - - -unary_expression + + +identifier - - -expression + + +identifier - - -literal + + +identifier - - -Length + + +Invoke - - + + +. + + + +* + + + integral_type - - -; + + +null_conditional_member_access - - -identifier + + +lambda_expression - - -+ + + +17 - - -statement + + +2 - - -block + + +3 - - -null_conditional_element_access + + +UndocumentedKeywords - - -; + + +multiplicative_expression - - -] + + +declaration_statement - - -primary_expression + + +dependent_access - - -) + + +primary_expression var - - -nullable_type_annotation + + +multiplicative_expression - - -literal + + +statement - - -identifier + + +explicitly_typed_local_variable_declarators - - -identifier + + +statement - - -explicitly_typed_local_variable_declaration + + +) - - + + identifier - - -primary_expression - - - -var + + +unary_expression - - + + identifier - - -) - - - -anonymous_function_body - - - + + equality_expression - - -null_conditional_member_access + + +identifier - - -. + + +args - - -anonymous_function_signature + + +null_conditional_member_access - - -. + + +literal - - -CSharp6Features + + +( - - -async + + +integral_type - - -primary_expression + + +? - - -Invoke + + +Customer - - -additive_expression + + +Monday - - -Length + + +declaration_statement - - -even + + +explicitly_typed_local_variable_declarator - - -Customer + + +[ - - -? + + +multiplicative_expression - - -lambda_expression + + +0 - - -local_variable_declaration + + +{ - - + + identifier - - -declaration_statement - - - -null_conditional_element_access - - - -null_conditional_member_access - - - -statement + + +XmlComments - - -} + + +explicitly_typed_local_variable_declarator - - -literal + + +identifier - - + + identifier - - -) + + +statement - - -declaration_statement + + +0 - - -identifier + + +? - - -{ + + +Test - - -multiplicative_expression + + +0 - - -? + + +null_conditional_member_access - - -literal + + +i - - -- + + +type - - -Sqrt + + +Orders - - -implicitly_typed_local_variable_declarator + + +qualified_identifier - - -identifier + + +0 - - -identifier + + +customers + + + +null_conditional_element_access invocation_expression - - -? + + +additive_expression - - -void + + +member_name - - -argument_list + + +expression - - -type + + +method_declaration - - -primary_expression + + +. - - -identifier + + +class - - -multiplicative_expression + + +- - - -] + + += - - -local_variable_declaration + + +namespace - - -class_member_declaration + + +anonymous_function_signature - - -( + + +non_nullable_value_type - - -PropertyChanged + + +type - - -identifier + + +declaration_statement - - -explicitly_typed_local_variable_declarator + + +WriteLine + + + +? + + + +additive_expression + + + +invocation_expression + + + +primary_expression - - -Monday + + +null_conditional_element_access - - -. + + +local_variable_declaration - - -literal + + +} - - -integral_type + + +class_body - - + + local_variable_declaration - - -primary_expression - - - -multiplicative_expression + + +implicitly_typed_local_variable_declarator - - -= + + +; - - -primary_expression + + +async - - -additive_expression + + +method_modifiers - - -0 + + +) - - -Orders + + +var - - -argument_list + + +? = - - + + primary_expression - - -return_type + + +local_variable_declaration - - -3 + + +; - - -local_variable_initializer + + +identifier - - -( + + +method_header - - -4 + + +statement_expression - - -literal + + +. - - -explicitly_typed_local_variable_declaration + + +namespace_body - - -explicitly_typed_local_variable_declaration + + +expression - - -expression_statement + + +even - - + + ; - - -method_modifiers - - - -explicitly_typed_local_variable_declarators - - - -} + + +Length - - -nullable_value_type + + +unary_expression - - -explicitly_typed_local_variable_declarators + + +literal - - -namespace_declaration + + +primary_expression - - -null_coalescing_expression + + +int - - -Test + + +additive_expression - - -explicitly_typed_local_variable_declarator + + +invocation_expression - - -namespace_member_declaration + + +customers - - -this_access + + +return_type - - -argument + + +anonymous_function_body - - -identifier + + +customers - - -compilation_unit + + +integral_type - - -int + + +local_variable_declaration - - -invocation_expression + + +local_variable_initializer - - -identifier + + +length - - -member_name + + +primary_expression - - -int + + +member_access - - -UndocumentedKeywords + + +null_coalescing_expression - - -argument + + +; - - -non_nullable_value_type + + +identifier - - -int + + +identifier - - -primary_no_array_creation_expression + + +) ) - - -( + + +PropertyChanged - - -WriteLine + + +first - - -( + + +, - - -identifier + + +explicitly_typed_local_variable_declaration - - -explicitly_typed_local_variable_declarators + + +void - - -declaration_statement + + +unary_expression - - -identifier + + +class_member_declaration - - -customers + + +( - - -primary_no_array_creation_expression + + +relational_expression - - -invocation_expression + + +; - - -{ + + +? - - -i + + +explicitly_typed_local_variable_declarator - - -primary_expression + + +4 - - -nullable_type_annotation + + +literal - - -; + + +} - - -; + + +declaration_statement - - -= + + +Count - - -local_variable_initializer + + +? \ No newline at end of file diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.gruntree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.gruntree.red.txt index 537bfac41..c704e1a8e 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.gruntree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.gruntree.red.txt @@ -586,7 +586,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ args @@ -715,7 +715,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ args @@ -2615,7 +2615,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ arr @@ -2639,7 +2639,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ otherArr @@ -3591,7 +3591,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ arr @@ -3615,7 +3615,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ otherArr @@ -4139,7 +4139,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ member_access ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.tree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.tree.red.txt index 2e459d72e..7ee5e0d3c 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.tree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.tree.red.txt @@ -1 +1 @@ -(prog (compilation_unit (namespace_member_declaration (class_declaration class (identifier CSharp70) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier PatternMatching)) ( (parameter_list (fixed_parameters (fixed_parameter (type (class_type string)) (identifier arg)) , (fixed_parameter (type (integral_type int)) (identifier b)))) )) (method_body (block { (statement_list (statement (switch_statement switch ( (expression (identifier arg)) ) (switch_block { (switch_section (switch_label case (pattern (literal "A")) (case_guard when (expression (relational_expression (relational_expression (identifier b)) > (shift_expression (literal 50))))) :) (switch_label case (pattern (literal "B")) (case_guard when (expression (relational_expression (relational_expression (identifier b)) < (shift_expression (literal 50))))) :) (switch_label default :) (statement_list (break_statement break ;))) }))) (statement (expression_statement (statement_expression (assignment (unary_expression (tuple_expression ( (tuple_element (declaration_expression (local_variable_type (namespace_or_type_name (identifier A) (type_argument_list < (type_argument (identifier B)) , (type_argument (identifier C)) >))) (identifier D))) , (tuple_element (declaration_expression (local_variable_type (namespace_or_type_name (identifier E) (type_argument_list < (type_argument (identifier F)) , (type_argument (identifier G)) >))) (identifier H))) ))) (assignment_operator =) (expression (identifier e)))) ;)) (statement (if_statement if ( (boolean_expression (relational_expression (relational_expression (null_conditional_member_access (primary_expression (null_conditional_member_access (primary_expression (identifier x)) ? . (identifier y))) ? . (identifier z))) is (pattern (declaration_pattern (type (identifier Type)) (simple_designation (identifier value2)))))) ) (embedded_statement (block { })))) (statement (if_statement if ( (boolean_expression (relational_expression (relational_expression (identifier expr)) is (pattern (declaration_pattern (type (identifier Type)) (simple_designation (identifier v)))))) ) (embedded_statement (block { (statement_list (expression_statement (statement_expression (invocation_expression (primary_expression (identifier Hello)) ( ))) ;)) }))))) })))) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) (method_modifier (ref_method_modifier static)) (method_modifier async)) (return_type (identifier Task)) (method_header (member_name (identifier LocalFunctions)) ( (parameter_list (fixed_parameter (type (array_type (non_array_type (class_type string)) (rank_specifier [ ]))) (identifier args))) )) (method_body (block { (statement_list (statement (local_function_declaration (return_type (class_type string)) (local_function_header (identifier Hello2) ( (parameter_list (fixed_parameter (type (integral_type int)) (identifier i))) )) (local_function_body (block { (statement_list (return_statement return (expression (element_access (primary_no_array_creation_expression (identifier args)) [ (argument_list (identifier i)) ])) ;)) })))) (statement (local_function_declaration (local_function_modifier async) (return_type (namespace_or_type_name (identifier Task) (type_argument_list < (type_argument (class_type string)) >))) (local_function_header (identifier Hello) (type_parameter_list < (decorated_type_parameter (identifier T)) >) ( (parameter_list (fixed_parameter (type (identifier T)) (identifier i))) )) (local_function_body => (expression (await_expression await (unary_expression (invocation_expression (primary_expression (member_access (primary_expression (identifier Task)) . (identifier FromResult))) ( (argument_list (element_access (primary_no_array_creation_expression (identifier args)) [ (argument_list (identifier i)) ])) ))))) ;))) (statement (expression_statement (statement_expression (await_expression await (unary_expression (invocation_expression (primary_expression (identifier Hello)) ( (argument_list (literal 1)) ))))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) (method_modifier (ref_method_modifier static))) (return_type void) (method_header (member_name (identifier OutVar)) ( (parameter_list (fixed_parameter (type (array_type (non_array_type (class_type string)) (rank_specifier [ ]))) (identifier args))) )) (method_body (block { (statement_list (statement (expression_statement (statement_expression (invocation_expression (primary_expression (member_access (predefined_type int) . (identifier TryParse))) ( (argument_list (argument (invocation_expression (primary_expression (identifier Hello)) ( (argument_list (literal 1)) ))) , (argument (argument_value out (variable_reference (declaration_expression (local_variable_type (contextual_keyword var)) (identifier item)))))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (member_access (predefined_type int) . (identifier TryParse))) ( (argument_list (argument (invocation_expression (primary_expression (identifier Hello)) ( (argument_list (literal 1)) ))) , (argument (argument_value out (variable_reference (declaration_expression (local_variable_type (integral_type int)) (identifier item)))))) ))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier ThrowExpression)) ( )) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier result) = (expression (null_coalescing_expression (conditional_or_expression (identifier nullableResult)) ?? (null_coalescing_expression (throw_expression throw (null_coalescing_expression (object_creation_expression new (type (identifier NullReferenceException)) ( )))))))))) ;)) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier BinaryLiterals)) ( )) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier nineteen) = (local_variable_initializer (literal 0b10011)))))) ;)) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier DigitSeparators)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier bin) = (local_variable_initializer (literal 0b1001_1010_0001_0100)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier hex) = (local_variable_initializer (literal 0x1b_a0_44_fe)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier dec) = (local_variable_initializer (literal 33_554_432)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier weird) = (local_variable_initializer (literal 1_2__3___4____5_____6______7_______8________9)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (floating_point_type double)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier real) = (local_variable_initializer (literal 1_000.111_1e-1_000)))))) ;))) })))) }))) (namespace_member_declaration (class_declaration class (identifier CSharp71) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier DefaultWithoutTypeName)) ( (parameter_list (fixed_parameter (type (class_type string)) (identifier content) (default_argument = (expression (default_literal default))))) )) (method_body (block { (statement_list (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DefaultWithoutTypeName)) ( (argument_list (default_literal default)) ))) ;)) })))) (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier TupleRecognize)) ( (parameter_list (fixed_parameters (fixed_parameter (type (integral_type int)) (identifier a)) , (fixed_parameter (type (tuple_type ( (tuple_type_element (integral_type int)) , (tuple_type_element (integral_type int)) ))) (identifier b)) , (fixed_parameter (type (nullable_value_type (non_nullable_value_type (tuple_type ( (tuple_type_element (integral_type int)) , (tuple_type_element (integral_type int)) , (tuple_type_element (integral_type int)) ))) (nullable_type_annotation ?))) (identifier c)))) )) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier result) = (expression (invocation_expression (primary_expression (member_access (primary_expression (invocation_expression (primary_expression (member_access (primary_expression (identifier list)) . (identifier Select))) ( (argument_list (lambda_expression (anonymous_function_signature (identifier c)) => (anonymous_function_body (tuple_expression ( (tuple_element (member_access (primary_expression (identifier c)) . (identifier f1))) , (tuple_element (identifier f3) : (expression (member_access (primary_expression (identifier c)) . (identifier f2)))) ))))) ))) . (identifier Where))) ( (argument_list (lambda_expression (anonymous_function_signature (identifier t)) => (anonymous_function_body (equality_expression (equality_expression (member_access (primary_expression (identifier t)) . (identifier f2))) == (relational_expression (literal 1)))))) )))))) ;)) })))) }))) (namespace_member_declaration (class_declaration class (identifier CSharp72) (class_body { (class_member_declaration (struct_declaration (struct_modifier readonly) struct (identifier ReadonlyRef1) (struct_body { (struct_member_declaration (field_declaration (type (namespace_or_type_name (identifier Func) (type_argument_list < (type_argument (integral_type int)) , (type_argument (integral_type int)) >))) (variable_declarators (variable_declarator (identifier s) = (variable_initializer (lambda_expression (anonymous_function_signature (explicit_anonymous_function_signature ( (explicit_anonymous_function_parameter_list (explicit_anonymous_function_parameter (anonymous_function_parameter_modifier in) (type (integral_type int)) (identifier x))) ))) => (anonymous_function_body (identifier x)))))) ;)) (struct_member_declaration (indexer_declaration (ref_kind ref) (indexer_declarator (type (identifier TValue)) this [ (parameter_list (fixed_parameter (parameter_modifier (parameter_mode_modifier in)) (type (identifier TKey)) (identifier index))) ]) (ref_indexer_body => ref (variable_reference (null_literal null)) ;))) (struct_member_declaration (operator_declaration (operator_modifier public) (operator_modifier static) (operator_declarator (binary_operator_declarator (type (identifier Vector3)) operator (overloadable_binary_operator +) ( (fixed_parameter (parameter_modifier (parameter_mode_modifier in)) (type (identifier Vector3)) (identifier x)) , (fixed_parameter (parameter_modifier (parameter_mode_modifier in)) (type (identifier Vector3)) (identifier y)) ))) (operator_body => (expression (null_literal null)) ;))) (struct_member_declaration (method_declaration (ref_method_modifiers (ref_method_modifier static)) (ref_kind ref readonly) (ref_return_type (identifier Vector3)) (method_header (member_name (identifier M1_Trace)) ( )) (ref_method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration (ref_kind ref readonly) var (ref_local_variable_declarator (identifier r1) = ref (variable_reference (invocation_expression (primary_expression (identifier M1)) ( )))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_ref_local_variable_declaration (ref_kind ref readonly) (type (identifier Vector3)) (ref_local_variable_declarators (ref_local_variable_declarator (identifier r2) = ref (variable_reference (explictly_typed_default default ( (type (identifier Vector3)) ))))))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier Mutate)) ( (argument_list (argument_value ref (variable_reference (identifier r1)))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier Print)) ( (argument_list (argument_value in (variable_reference (identifier r1)))) ))) ;)) (statement (return_statement return ref (variable_reference (identifier r1)) ;))) })))) }))) (class_member_declaration (struct_declaration ref struct (identifier ReadonlyRef2) (struct_body { (struct_member_declaration (method_declaration ref_method_modifiers (ref_kind ref readonly) (ref_return_type (identifier Guid)) (method_header (member_name (identifier Test)) ( (parameter_list (fixed_parameters (fixed_parameter (parameter_modifier (parameter_mode_modifier in)) (type (identifier Vector3)) (identifier v1)) , (fixed_parameter (parameter_modifier (parameter_mode_modifier in)) (type (identifier Vector3)) (identifier v2)))) )) (ref_method_body (block { (statement_list (statement (expression_statement (statement_expression (assignment (unary_expression (identifier v1)) (assignment_operator =) (expression (explictly_typed_default default ( (type (identifier Vector3)) ))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (member_access (primary_expression (identifier v1)) . (identifier X))) (assignment_operator =) (expression (literal 0)))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier foo)) ( (argument_list (argument_value ref (variable_reference (member_access (primary_expression (identifier v1)) . (identifier X))))) ))) ;)) (statement (return_statement return ref (variable_reference (parenthesized_expression ( (expression (conditional_expression (null_coalescing_expression (equality_expression (equality_expression (identifier arr)) != (relational_expression (null_literal null)))) ? ref (variable_reference (element_access (primary_no_array_creation_expression (identifier arr)) [ (argument_list (literal 0)) ])) : ref (variable_reference (element_access (primary_no_array_creation_expression (identifier otherArr)) [ (argument_list (literal 0)) ])))) ))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Span) (type_argument_list < (type_argument (integral_type int)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier span) = (local_variable_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 1)) ])))))) ;)) (statement (return_statement return (expression (object_creation_expression new (type (identifier Vector3)) ( (argument_list (argument (additive_expression (additive_expression (member_access (primary_expression (identifier v1)) . (identifier X))) + (multiplicative_expression (member_access (primary_expression (identifier v2)) . (identifier X))))) , (argument (additive_expression (additive_expression (member_access (primary_expression (identifier v1)) . (identifier Y))) + (multiplicative_expression (member_access (primary_expression (identifier v2)) . (identifier Y))))) , (argument (additive_expression (additive_expression (member_access (primary_expression (identifier v1)) . (identifier Z))) + (multiplicative_expression (member_access (primary_expression (identifier v2)) . (identifier Z)))))) ))) ;))) })))) (struct_member_declaration (method_declaration ref_method_modifiers (ref_kind ref) (ref_return_type (identifier T)) (method_header (member_name (identifier Choice)) ( (parameter_list (fixed_parameters (fixed_parameter (type (simple_type bool)) (identifier condition)) , (fixed_parameter (parameter_modifier (parameter_mode_modifier ref)) (type (identifier T)) (identifier consequence)) , (fixed_parameter (parameter_modifier (parameter_mode_modifier ref)) (type (identifier T)) (identifier alternative)))) )) (ref_method_body (block { (statement_list (if_statement if ( (boolean_expression (identifier condition)) ) (embedded_statement (block { (statement_list (return_statement return ref (variable_reference (identifier consequence)) ;)) })) else (embedded_statement (block { (statement_list (return_statement return ref (variable_reference (identifier alternative)) ;)) })))) })))) }))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier DoSomething)) ( (parameter_list (fixed_parameters (fixed_parameter (type (simple_type bool)) (identifier isEmployed)) , (fixed_parameter (type (class_type string)) (identifier personName)) , (fixed_parameter (type (integral_type int)) (identifier personAge)))) )) (method_body (block { })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier NonTrailingNamedArguments)) ( )) (method_body (block { (statement_list (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DoSomething)) ( (argument_list (argument (argument_name (identifier isEmployed) :) (argument_value (boolean_literal true))) , (argument (identifier name)) , (argument (identifier age))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DoSomething)) ( (argument_list (argument (boolean_literal true)) , (argument (argument_name (identifier personName) :) (argument_value (identifier name))) , (argument (identifier age))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DoSomething)) ( (argument_list (argument (identifier name)) , (argument (argument_name (identifier isEmployed) :) (argument_value (boolean_literal true))) , (argument (identifier age))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DoSomething)) ( (argument_list (argument (identifier name)) , (argument (identifier age)) , (argument (argument_name (identifier isEmployed) :) (argument_value (boolean_literal true)))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DoSomething)) ( (argument_list (argument (boolean_literal true)) , (argument (argument_name (identifier personAge) :) (argument_value (identifier age))) , (argument (argument_name (identifier personName) :) (argument_value (identifier name)))) ))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier ConditionalRef)) ( )) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration (ref_kind ref) var (ref_local_variable_declarator (identifier r) = ref (variable_reference (parenthesized_expression ( (expression (conditional_expression (null_coalescing_expression (equality_expression (equality_expression (identifier arr)) != (relational_expression (null_literal null)))) ? ref (variable_reference (element_access (primary_no_array_creation_expression (identifier arr)) [ (argument_list (literal 0)) ])) : ref (variable_reference (element_access (primary_no_array_creation_expression (identifier otherArr)) [ (argument_list (literal 0)) ])))) )))))) ;)) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier LeadingSeparator)) ( )) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier res) = (expression (additive_expression (additive_expression (additive_expression (additive_expression (additive_expression (additive_expression (additive_expression (additive_expression (literal 0)) + (multiplicative_expression (literal 123))) + (multiplicative_expression (literal 1_2_3))) + (multiplicative_expression (literal 0x1_2_3))) + (multiplicative_expression (literal 0b101))) + (multiplicative_expression (literal 0b1_0_1))) + (multiplicative_expression (literal 0x_1_2))) + (multiplicative_expression (literal 0b_1_0_1))))))) ;)) })))) }))) (namespace_member_declaration (class_declaration class (identifier CSharp73) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier Blittable)) (type_parameter_list < (decorated_type_parameter (identifier T)) >) ( (parameter_list (fixed_parameter (type (identifier T)) (identifier (contextual_keyword value)))) ) (type_parameter_constraints_clause where (type_parameter (identifier T)) : (type_parameter_constraints (contextual_keyword unmanaged)))) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier (contextual_keyword unmanaged)) = (expression (literal 666))))) ;)) })))) (class_member_declaration (struct_declaration (struct_modifier (unsafe_modifier unsafe)) struct (identifier IndexingMovableFixed) (struct_body { (struct_member_declaration (fixed_size_buffer_declaration (fixed_size_buffer_modifier public) fixed (buffer_element_type (integral_type int)) (fixed_size_buffer_declarators (fixed_size_buffer_declarator (identifier myFixedField) [ (constant_expression (literal 10)) ])) ;)) }))) (class_member_declaration (field_declaration (field_modifier static) (type (identifier IndexingMovableFixed)) (variable_declarators (identifier s)) ;)) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) (method_modifier (unsafe_modifier unsafe))) (return_type void) (method_header (member_name (identifier IndexingMovableFixedFields)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (pointer_type (value_type (integral_type int)) *)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier ptr) = (local_variable_initializer (member_access (primary_expression (identifier s)) . (identifier myFixedField))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier t) = (local_variable_initializer (element_access (primary_no_array_creation_expression (member_access (primary_expression (identifier s)) . (identifier myFixedField))) [ (argument_list (literal 5)) ])))))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier PatternBasedFixed)) ( )) (method_body (block { (statement_list (fixed_statement fixed ( (pointer_type (value_type (integral_type byte)) *) (fixed_pointer_declarators (fixed_pointer_declarator (identifier ptr) = (fixed_pointer_initializer (identifier byteArray)))) ) (embedded_statement (block { })))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier StackallocArrayInitializer)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Span) (type_argument_list < (type_argument (integral_type int)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 3)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Span) (type_argument_list < (type_argument (integral_type int)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (constant_expression (literal 3)) ] (stackalloc_initializer { (stackalloc_initializer_element_list (stackalloc_element_initializer (literal 1)) , (stackalloc_element_initializer (literal 2)) , (stackalloc_element_initializer (literal 3))) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Span) (type_argument_list < (type_argument (integral_type int)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ ] (stackalloc_initializer { (stackalloc_initializer_element_list (stackalloc_element_initializer (literal 1)) , (stackalloc_element_initializer (literal 2)) , (stackalloc_element_initializer (literal 3))) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Span) (type_argument_list < (type_argument (integral_type int)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (stackalloc_expression stackalloc [ ] (stackalloc_initializer { (stackalloc_initializer_element_list (stackalloc_element_initializer (literal 1)) , (stackalloc_element_initializer (literal 2)) , (stackalloc_element_initializer (literal 3))) }))))))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier TupleEquality)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (tuple_type ( (tuple_type_element (integral_type int)) , (tuple_type_element (tuple_type ( (tuple_type_element (integral_type int)) , (tuple_type_element (integral_type int)) ))) ))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier t1)) , (explicitly_typed_local_variable_declarator (identifier t2))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier res) = (expression (equality_expression (equality_expression (identifier t1)) == (relational_expression (tuple_expression ( (tuple_element (literal 1)) , (tuple_element (tuple_expression ( (tuple_element (literal 2)) , (tuple_element (literal 3)) ))) )))))))) ;))) })))) }))))) +(prog (compilation_unit (namespace_member_declaration (class_declaration class (identifier CSharp70) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier PatternMatching)) ( (parameter_list (fixed_parameters (fixed_parameter (type (class_type string)) (identifier arg)) , (fixed_parameter (type (integral_type int)) (identifier b)))) )) (method_body (block { (statement_list (statement (switch_statement switch ( (expression (identifier arg)) ) (switch_block { (switch_section (switch_label case (pattern (literal "A")) (case_guard when (expression (relational_expression (relational_expression (identifier b)) > (shift_expression (literal 50))))) :) (switch_label case (pattern (literal "B")) (case_guard when (expression (relational_expression (relational_expression (identifier b)) < (shift_expression (literal 50))))) :) (switch_label default :) (statement_list (break_statement break ;))) }))) (statement (expression_statement (statement_expression (assignment (unary_expression (tuple_expression ( (tuple_element (declaration_expression (local_variable_type (namespace_or_type_name (identifier A) (type_argument_list < (type_argument (identifier B)) , (type_argument (identifier C)) >))) (identifier D))) , (tuple_element (declaration_expression (local_variable_type (namespace_or_type_name (identifier E) (type_argument_list < (type_argument (identifier F)) , (type_argument (identifier G)) >))) (identifier H))) ))) (assignment_operator =) (expression (identifier e)))) ;)) (statement (if_statement if ( (boolean_expression (relational_expression (relational_expression (null_conditional_member_access (primary_expression (null_conditional_member_access (primary_expression (identifier x)) ? . (identifier y))) ? . (identifier z))) is (pattern (declaration_pattern (type (identifier Type)) (simple_designation (identifier value2)))))) ) (embedded_statement (block { })))) (statement (if_statement if ( (boolean_expression (relational_expression (relational_expression (identifier expr)) is (pattern (declaration_pattern (type (identifier Type)) (simple_designation (identifier v)))))) ) (embedded_statement (block { (statement_list (expression_statement (statement_expression (invocation_expression (primary_expression (identifier Hello)) ( ))) ;)) }))))) })))) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) (method_modifier (ref_method_modifier static)) (method_modifier async)) (return_type (identifier Task)) (method_header (member_name (identifier LocalFunctions)) ( (parameter_list (fixed_parameter (type (array_type (non_array_type (class_type string)) (rank_specifier [ ]))) (identifier args))) )) (method_body (block { (statement_list (statement (local_function_declaration (return_type (class_type string)) (local_function_header (identifier Hello2) ( (parameter_list (fixed_parameter (type (integral_type int)) (identifier i))) )) (local_function_body (block { (statement_list (return_statement return (expression (element_access (primary_expression (identifier args)) [ (argument_list (identifier i)) ])) ;)) })))) (statement (local_function_declaration (local_function_modifier async) (return_type (namespace_or_type_name (identifier Task) (type_argument_list < (type_argument (class_type string)) >))) (local_function_header (identifier Hello) (type_parameter_list < (decorated_type_parameter (identifier T)) >) ( (parameter_list (fixed_parameter (type (identifier T)) (identifier i))) )) (local_function_body => (expression (await_expression await (unary_expression (invocation_expression (primary_expression (member_access (primary_expression (identifier Task)) . (identifier FromResult))) ( (argument_list (element_access (primary_expression (identifier args)) [ (argument_list (identifier i)) ])) ))))) ;))) (statement (expression_statement (statement_expression (await_expression await (unary_expression (invocation_expression (primary_expression (identifier Hello)) ( (argument_list (literal 1)) ))))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) (method_modifier (ref_method_modifier static))) (return_type void) (method_header (member_name (identifier OutVar)) ( (parameter_list (fixed_parameter (type (array_type (non_array_type (class_type string)) (rank_specifier [ ]))) (identifier args))) )) (method_body (block { (statement_list (statement (expression_statement (statement_expression (invocation_expression (primary_expression (member_access (predefined_type int) . (identifier TryParse))) ( (argument_list (argument (invocation_expression (primary_expression (identifier Hello)) ( (argument_list (literal 1)) ))) , (argument (argument_value out (variable_reference (declaration_expression (local_variable_type (contextual_keyword var)) (identifier item)))))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (member_access (predefined_type int) . (identifier TryParse))) ( (argument_list (argument (invocation_expression (primary_expression (identifier Hello)) ( (argument_list (literal 1)) ))) , (argument (argument_value out (variable_reference (declaration_expression (local_variable_type (integral_type int)) (identifier item)))))) ))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier ThrowExpression)) ( )) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier result) = (expression (null_coalescing_expression (conditional_or_expression (identifier nullableResult)) ?? (null_coalescing_expression (throw_expression throw (null_coalescing_expression (object_creation_expression new (type (identifier NullReferenceException)) ( )))))))))) ;)) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier BinaryLiterals)) ( )) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier nineteen) = (local_variable_initializer (literal 0b10011)))))) ;)) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier DigitSeparators)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier bin) = (local_variable_initializer (literal 0b1001_1010_0001_0100)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier hex) = (local_variable_initializer (literal 0x1b_a0_44_fe)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier dec) = (local_variable_initializer (literal 33_554_432)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier weird) = (local_variable_initializer (literal 1_2__3___4____5_____6______7_______8________9)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (floating_point_type double)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier real) = (local_variable_initializer (literal 1_000.111_1e-1_000)))))) ;))) })))) }))) (namespace_member_declaration (class_declaration class (identifier CSharp71) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier DefaultWithoutTypeName)) ( (parameter_list (fixed_parameter (type (class_type string)) (identifier content) (default_argument = (expression (default_literal default))))) )) (method_body (block { (statement_list (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DefaultWithoutTypeName)) ( (argument_list (default_literal default)) ))) ;)) })))) (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier TupleRecognize)) ( (parameter_list (fixed_parameters (fixed_parameter (type (integral_type int)) (identifier a)) , (fixed_parameter (type (tuple_type ( (tuple_type_element (integral_type int)) , (tuple_type_element (integral_type int)) ))) (identifier b)) , (fixed_parameter (type (nullable_value_type (non_nullable_value_type (tuple_type ( (tuple_type_element (integral_type int)) , (tuple_type_element (integral_type int)) , (tuple_type_element (integral_type int)) ))) (nullable_type_annotation ?))) (identifier c)))) )) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier result) = (expression (invocation_expression (primary_expression (member_access (primary_expression (invocation_expression (primary_expression (member_access (primary_expression (identifier list)) . (identifier Select))) ( (argument_list (lambda_expression (anonymous_function_signature (identifier c)) => (anonymous_function_body (tuple_expression ( (tuple_element (member_access (primary_expression (identifier c)) . (identifier f1))) , (tuple_element (identifier f3) : (expression (member_access (primary_expression (identifier c)) . (identifier f2)))) ))))) ))) . (identifier Where))) ( (argument_list (lambda_expression (anonymous_function_signature (identifier t)) => (anonymous_function_body (equality_expression (equality_expression (member_access (primary_expression (identifier t)) . (identifier f2))) == (relational_expression (literal 1)))))) )))))) ;)) })))) }))) (namespace_member_declaration (class_declaration class (identifier CSharp72) (class_body { (class_member_declaration (struct_declaration (struct_modifier readonly) struct (identifier ReadonlyRef1) (struct_body { (struct_member_declaration (field_declaration (type (namespace_or_type_name (identifier Func) (type_argument_list < (type_argument (integral_type int)) , (type_argument (integral_type int)) >))) (variable_declarators (variable_declarator (identifier s) = (variable_initializer (lambda_expression (anonymous_function_signature (explicit_anonymous_function_signature ( (explicit_anonymous_function_parameter_list (explicit_anonymous_function_parameter (anonymous_function_parameter_modifier in) (type (integral_type int)) (identifier x))) ))) => (anonymous_function_body (identifier x)))))) ;)) (struct_member_declaration (indexer_declaration (ref_kind ref) (indexer_declarator (type (identifier TValue)) this [ (parameter_list (fixed_parameter (parameter_modifier (parameter_mode_modifier in)) (type (identifier TKey)) (identifier index))) ]) (ref_indexer_body => ref (variable_reference (null_literal null)) ;))) (struct_member_declaration (operator_declaration (operator_modifier public) (operator_modifier static) (operator_declarator (binary_operator_declarator (type (identifier Vector3)) operator (overloadable_binary_operator +) ( (fixed_parameter (parameter_modifier (parameter_mode_modifier in)) (type (identifier Vector3)) (identifier x)) , (fixed_parameter (parameter_modifier (parameter_mode_modifier in)) (type (identifier Vector3)) (identifier y)) ))) (operator_body => (expression (null_literal null)) ;))) (struct_member_declaration (method_declaration (ref_method_modifiers (ref_method_modifier static)) (ref_kind ref readonly) (ref_return_type (identifier Vector3)) (method_header (member_name (identifier M1_Trace)) ( )) (ref_method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration (ref_kind ref readonly) var (ref_local_variable_declarator (identifier r1) = ref (variable_reference (invocation_expression (primary_expression (identifier M1)) ( )))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_ref_local_variable_declaration (ref_kind ref readonly) (type (identifier Vector3)) (ref_local_variable_declarators (ref_local_variable_declarator (identifier r2) = ref (variable_reference (explictly_typed_default default ( (type (identifier Vector3)) ))))))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier Mutate)) ( (argument_list (argument_value ref (variable_reference (identifier r1)))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier Print)) ( (argument_list (argument_value in (variable_reference (identifier r1)))) ))) ;)) (statement (return_statement return ref (variable_reference (identifier r1)) ;))) })))) }))) (class_member_declaration (struct_declaration ref struct (identifier ReadonlyRef2) (struct_body { (struct_member_declaration (method_declaration ref_method_modifiers (ref_kind ref readonly) (ref_return_type (identifier Guid)) (method_header (member_name (identifier Test)) ( (parameter_list (fixed_parameters (fixed_parameter (parameter_modifier (parameter_mode_modifier in)) (type (identifier Vector3)) (identifier v1)) , (fixed_parameter (parameter_modifier (parameter_mode_modifier in)) (type (identifier Vector3)) (identifier v2)))) )) (ref_method_body (block { (statement_list (statement (expression_statement (statement_expression (assignment (unary_expression (identifier v1)) (assignment_operator =) (expression (explictly_typed_default default ( (type (identifier Vector3)) ))))) ;)) (statement (expression_statement (statement_expression (assignment (unary_expression (member_access (primary_expression (identifier v1)) . (identifier X))) (assignment_operator =) (expression (literal 0)))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier foo)) ( (argument_list (argument_value ref (variable_reference (member_access (primary_expression (identifier v1)) . (identifier X))))) ))) ;)) (statement (return_statement return ref (variable_reference (parenthesized_expression ( (expression (conditional_expression (null_coalescing_expression (equality_expression (equality_expression (identifier arr)) != (relational_expression (null_literal null)))) ? ref (variable_reference (element_access (primary_expression (identifier arr)) [ (argument_list (literal 0)) ])) : ref (variable_reference (element_access (primary_expression (identifier otherArr)) [ (argument_list (literal 0)) ])))) ))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Span) (type_argument_list < (type_argument (integral_type int)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier span) = (local_variable_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 1)) ])))))) ;)) (statement (return_statement return (expression (object_creation_expression new (type (identifier Vector3)) ( (argument_list (argument (additive_expression (additive_expression (member_access (primary_expression (identifier v1)) . (identifier X))) + (multiplicative_expression (member_access (primary_expression (identifier v2)) . (identifier X))))) , (argument (additive_expression (additive_expression (member_access (primary_expression (identifier v1)) . (identifier Y))) + (multiplicative_expression (member_access (primary_expression (identifier v2)) . (identifier Y))))) , (argument (additive_expression (additive_expression (member_access (primary_expression (identifier v1)) . (identifier Z))) + (multiplicative_expression (member_access (primary_expression (identifier v2)) . (identifier Z)))))) ))) ;))) })))) (struct_member_declaration (method_declaration ref_method_modifiers (ref_kind ref) (ref_return_type (identifier T)) (method_header (member_name (identifier Choice)) ( (parameter_list (fixed_parameters (fixed_parameter (type (simple_type bool)) (identifier condition)) , (fixed_parameter (parameter_modifier (parameter_mode_modifier ref)) (type (identifier T)) (identifier consequence)) , (fixed_parameter (parameter_modifier (parameter_mode_modifier ref)) (type (identifier T)) (identifier alternative)))) )) (ref_method_body (block { (statement_list (if_statement if ( (boolean_expression (identifier condition)) ) (embedded_statement (block { (statement_list (return_statement return ref (variable_reference (identifier consequence)) ;)) })) else (embedded_statement (block { (statement_list (return_statement return ref (variable_reference (identifier alternative)) ;)) })))) })))) }))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier DoSomething)) ( (parameter_list (fixed_parameters (fixed_parameter (type (simple_type bool)) (identifier isEmployed)) , (fixed_parameter (type (class_type string)) (identifier personName)) , (fixed_parameter (type (integral_type int)) (identifier personAge)))) )) (method_body (block { })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier NonTrailingNamedArguments)) ( )) (method_body (block { (statement_list (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DoSomething)) ( (argument_list (argument (argument_name (identifier isEmployed) :) (argument_value (boolean_literal true))) , (argument (identifier name)) , (argument (identifier age))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DoSomething)) ( (argument_list (argument (boolean_literal true)) , (argument (argument_name (identifier personName) :) (argument_value (identifier name))) , (argument (identifier age))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DoSomething)) ( (argument_list (argument (identifier name)) , (argument (argument_name (identifier isEmployed) :) (argument_value (boolean_literal true))) , (argument (identifier age))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DoSomething)) ( (argument_list (argument (identifier name)) , (argument (identifier age)) , (argument (argument_name (identifier isEmployed) :) (argument_value (boolean_literal true)))) ))) ;)) (statement (expression_statement (statement_expression (invocation_expression (primary_expression (identifier DoSomething)) ( (argument_list (argument (boolean_literal true)) , (argument (argument_name (identifier personAge) :) (argument_value (identifier age))) , (argument (argument_name (identifier personName) :) (argument_value (identifier name)))) ))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier ConditionalRef)) ( )) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration (ref_kind ref) var (ref_local_variable_declarator (identifier r) = ref (variable_reference (parenthesized_expression ( (expression (conditional_expression (null_coalescing_expression (equality_expression (equality_expression (identifier arr)) != (relational_expression (null_literal null)))) ? ref (variable_reference (element_access (primary_expression (identifier arr)) [ (argument_list (literal 0)) ])) : ref (variable_reference (element_access (primary_expression (identifier otherArr)) [ (argument_list (literal 0)) ])))) )))))) ;)) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier LeadingSeparator)) ( )) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier res) = (expression (additive_expression (additive_expression (additive_expression (additive_expression (additive_expression (additive_expression (additive_expression (additive_expression (literal 0)) + (multiplicative_expression (literal 123))) + (multiplicative_expression (literal 1_2_3))) + (multiplicative_expression (literal 0x1_2_3))) + (multiplicative_expression (literal 0b101))) + (multiplicative_expression (literal 0b1_0_1))) + (multiplicative_expression (literal 0x_1_2))) + (multiplicative_expression (literal 0b_1_0_1))))))) ;)) })))) }))) (namespace_member_declaration (class_declaration class (identifier CSharp73) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier Blittable)) (type_parameter_list < (decorated_type_parameter (identifier T)) >) ( (parameter_list (fixed_parameter (type (identifier T)) (identifier (contextual_keyword value)))) ) (type_parameter_constraints_clause where (type_parameter (identifier T)) : (type_parameter_constraints (contextual_keyword unmanaged)))) (method_body (block { (statement_list (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier (contextual_keyword unmanaged)) = (expression (literal 666))))) ;)) })))) (class_member_declaration (struct_declaration (struct_modifier (unsafe_modifier unsafe)) struct (identifier IndexingMovableFixed) (struct_body { (struct_member_declaration (fixed_size_buffer_declaration (fixed_size_buffer_modifier public) fixed (buffer_element_type (integral_type int)) (fixed_size_buffer_declarators (fixed_size_buffer_declarator (identifier myFixedField) [ (constant_expression (literal 10)) ])) ;)) }))) (class_member_declaration (field_declaration (field_modifier static) (type (identifier IndexingMovableFixed)) (variable_declarators (identifier s)) ;)) (class_member_declaration (method_declaration (method_modifiers (method_modifier (ref_method_modifier public)) (method_modifier (unsafe_modifier unsafe))) (return_type void) (method_header (member_name (identifier IndexingMovableFixedFields)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (pointer_type (value_type (integral_type int)) *)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier ptr) = (local_variable_initializer (member_access (primary_expression (identifier s)) . (identifier myFixedField))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier t) = (local_variable_initializer (element_access (primary_expression (member_access (primary_expression (identifier s)) . (identifier myFixedField))) [ (argument_list (literal 5)) ])))))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier PatternBasedFixed)) ( )) (method_body (block { (statement_list (fixed_statement fixed ( (pointer_type (value_type (integral_type byte)) *) (fixed_pointer_declarators (fixed_pointer_declarator (identifier ptr) = (fixed_pointer_initializer (identifier byteArray)))) ) (embedded_statement (block { })))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier StackallocArrayInitializer)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Span) (type_argument_list < (type_argument (integral_type int)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 3)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Span) (type_argument_list < (type_argument (integral_type int)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (constant_expression (literal 3)) ] (stackalloc_initializer { (stackalloc_initializer_element_list (stackalloc_element_initializer (literal 1)) , (stackalloc_element_initializer (literal 2)) , (stackalloc_element_initializer (literal 3))) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Span) (type_argument_list < (type_argument (integral_type int)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ ] (stackalloc_initializer { (stackalloc_initializer_element_list (stackalloc_element_initializer (literal 1)) , (stackalloc_element_initializer (literal 2)) , (stackalloc_element_initializer (literal 3))) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Span) (type_argument_list < (type_argument (integral_type int)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (stackalloc_expression stackalloc [ ] (stackalloc_initializer { (stackalloc_initializer_element_list (stackalloc_element_initializer (literal 1)) , (stackalloc_element_initializer (literal 2)) , (stackalloc_element_initializer (literal 3))) }))))))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier public)) (return_type void) (method_header (member_name (identifier TupleEquality)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (tuple_type ( (tuple_type_element (integral_type int)) , (tuple_type_element (tuple_type ( (tuple_type_element (integral_type int)) , (tuple_type_element (integral_type int)) ))) ))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier t1)) , (explicitly_typed_local_variable_declarator (identifier t2))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier res) = (expression (equality_expression (equality_expression (identifier t1)) == (relational_expression (tuple_expression ( (tuple_element (literal 1)) , (tuple_element (tuple_expression ( (tuple_element (literal 2)) , (tuple_element (literal 3)) ))) )))))))) ;))) })))) }))))) diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.tree.svg b/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.tree.svg index fac9619a6..0e4efdfe9 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.tree.svg +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v7/AllInOneNoPreprocessor-v7/Reference/sample.tree.svg @@ -1,12 +1,12 @@ - - - - - + + + + + - - - + + + @@ -209,9 +209,9 @@ - - - + + + @@ -220,10 +220,10 @@ - + - + @@ -241,11 +241,11 @@ - - - - - + + + + + @@ -270,21 +270,21 @@ - - - - - - - - + + + + + + + + - - - + + + - + @@ -294,7 +294,7 @@ - + @@ -312,14 +312,14 @@ - - - - - - - - + + + + + + + + @@ -327,10724 +327,10724 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -namespace_or_type_name - - - -relational_expression - - - -literal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} - - -c + + += - - -type_argument + + +identifier - - -T + + +type - - -int + + +method_body - - -, + + +identifier - - -myFixedField + + +relational_expression - - -identifier + + +statement - - -; + + +x - - -consequence + + +statement - - -explicitly_typed_local_variable_declarators + + +> - - + + , - - -TupleRecognize - - - -boolean_literal + + +parameter_modifier - - -identifier + + +) - - -element_access + + +{ - - -variable_reference + + +statement_list - - -true + + +literal - - -. + + +) - - -ref + + +type - - + + invocation_expression - - -method_declaration + + +primary_expression - - -block + + +Test - - -X + + +expression_statement - - -void + + +member_name - - -string + + +class_type - - -statement_list + + +null_literal - - -ref_method_modifier + + +value - - -[ + + +stackalloc_initializer_element_list - - -+ + + +expression - - -identifier + + +) - - -floating_point_type + + +explicitly_typed_local_variable_declarator - - -} + + +parameter_modifier - - -0b1001_1010_0001_0100 + + +throw_expression - - -statement + + +unmanaged_type - - -0 + + +int - - -stackalloc + + +1 - - -primary_expression + + +explicitly_typed_local_variable_declaration - - -variable_reference + + +identifier - - -argument_value + + +argument - - -= + + +statement - - -[ + + +1 - - -identifier + + +simple_designation - - -0 + + +statement - - -arr + + +local_variable_initializer - - -member_name + + +statement - - -( + + +is - - -anonymous_function_signature + + +constant_expression - - -return + + +( - - -explicitly_typed_local_variable_declarators + + +< - - -f1 + + +type - - -( + + +tuple_expression + + + +Vector3 - - + + ; - - -expression_statement + + +int - - -fixed_parameter + + +statement - - -member_access + + +v2 - - -age + + +ref_method_modifier - - -void + + +identifier - - -literal + + +{ - - -local_variable_type + + +int - - -fixed_parameter + + +stackalloc_initializer - - + + identifier - - -local_variable_declaration - - - -= + + +} - - -=> + + +, - - -decorated_type_parameter + + +ref - - + + identifier - - -expression_statement - - - -type_argument + + +variable_reference - - -assignment + + +identifier - - -string + + +local_variable_type - - -invocation_expression + + +explicitly_typed_local_variable_declaration - - -unary_expression + + +; - - -identifier + + +implicitly_typed_local_variable_declarator - - -: + + +. - - -identifier + + +int - - -type + + +member_access - - + + identifier - - -contextual_keyword + + +method_modifiers - - -block + + +local_variable_initializer - - -Vector3 + + +default - - -null + + +struct_member_declaration - - + + tuple_element - - -primary_expression - - - -, - - - -primary_expression - - - -ref_return_type + + +pattern - - -member_name + + +ref - - -unary_expression + + +X - - -type_argument_list + + +explicitly_typed_local_variable_declarators - - -int + + +b - - -int + + +implicitly_typed_local_variable_declaration - - -ReadonlyRef2 + + +default - - -> + + +ref - - -return_statement + + +CSharp70 - - -name + + +type_argument - - -member_name + + +statement - - -byte + + +local_variable_initializer - - + + integral_type - - -; - - - -= - - - -struct_body + + +null_coalescing_expression - - -argument_list + + +X - - + + identifier - - + + +primary_expression + + + identifier - - -primary_no_array_creation_expression + + +public - - -Span + + +=> - - -= + + +class_member_declaration - - -? + + +primary_expression - - -identifier + + +pattern - - -f3 + + +< - - -local_variable_initializer + + +case - - -double + + +statement_list - - -default + + +ref_method_modifier - - -explicitly_typed_local_variable_declarators + + +type - - -1 + + +method_body - - -integral_type + + +void - - -readonly + + +identifier - - -unmanaged_type + + +( - - -> + + +invocation_expression - - -switch_label + + +fixed_parameter - - -in + + +method_header - - -identifier + + +, - - -type + + +additive_expression - - -; + + +ref_kind - - -2 + + +readonly - - -{ + + +identifier - - -( + + +literal - - -unmanaged + + +arr - - -Mutate + + +, - - -namespace_or_type_name + + +identifier - - -} + + +public - - -stackalloc_expression + + +argument_value - - -statement_list + + +member_access - - -3 + + +variable_reference - - -= + + +argument - - -invocation_expression + + +namespace_member_declaration - - -method_body + + +method_modifier - - -method_header + + +element_access - - -argument + + += - - -) + + +primary_expression - - -static + + +identifier - - -literal + + +identifier - - -method_body + + +method_declaration - - -statement + + +string - - -identifier + + +tuple_element - - -explicitly_typed_local_variable_declaration + + +statement - - + + < - - -) + + +void - - -declaration_statement + + +{ - - -local_function_body + + +statement_list - - -] + + +method_header - - -{ + + +int - - -declaration_statement + + +anonymous_function_signature - - -anonymous_function_body + + +identifier - - -1 + + +; - - -identifier + + +member_access - - -parameter_list + + +literal + + + +} + + + +in + + + +arr - - + + argument_list - - -identifier + + +type_parameter_list - - -literal + + +: - - -tuple_expression + + +identifier - - -integral_type + + +) - - + + identifier - - -operator_declaration + + +explicitly_typed_local_variable_declarator - - -literal + + +null_conditional_member_access - - -block + + +} - - -{ + + +parameter_list - - -member_name + + +integral_type - - -1_2_3 + + +local_variable_declaration - - -identifier + + +, - - -namespace_or_type_name + + +block - - -type + + +3 - - -pattern + + +explicitly_typed_local_variable_declarator - - -identifier + + +parameter_modifier - - -T + + +statement_list - - -identifier + + +( - - -class_type + + +v2 - - -argument + + +> - - -multiplicative_expression + + +{ - - -invocation_expression + + +void - - -explicitly_typed_local_variable_declarator + + +] - - -rank_specifier + + +variable_reference - - -} + + +, - - -TryParse + + +identifier - - -return_type + + +=> - - -fixed_parameter + + +expression_statement - - + + identifier - - -, + + +type - - -} + + +primary_expression - - -parameter_mode_modifier + + +integral_type - - -parameter_mode_modifier + + +; - - -local_variable_declaration + + +null - - -= + + +method_declaration - - -H + + +declaration_expression - - -identifier + + +=> - - + + member_name - - -method_modifier + + +struct_body - - -DoSomething + + +statement_expression - - -> + + +member_access - - -( + + +return_statement - - -fixed_size_buffer_declaration + + +primary_expression - - -ref + + +struct_body - - -parameter_list + + +) - - -nullableResult + + +y - - -2 + + +integral_type - - -method_modifiers + + +member_access - - -default + + +literal - - -argument + + +additive_expression - - -readonly + + +literal - - -. + + +, - - -ref_method_modifier + + +Hello - - -ref_kind + + +primary_expression - - -primary_no_array_creation_expression + + +class - - -x + + +> - - -local_variable_declaration + + +return_type - - -class_member_declaration + + += - - -return_type + + +?? - - -array_type + + +identifier - - -) + + +3 - - -struct_declaration + + +pointer_type - - -argument_list + + +literal - - -explicitly_typed_local_variable_declarators + + +int - - -method_declaration + + += - - -identifier + + +f2 - - -namespace_member_declaration + + +( - - -variable_declarators + + +. - - -identifier + + +personAge - - -{ + + +) - - -, + + +explicitly_typed_local_variable_declaration - - -decorated_type_parameter + + +x - - -identifier + + +expression - - -int + + +literal - - -variable_reference + + +class_type - - + + identifier - - -Type + + +} - - -element_access + + +) - - -expression_statement + + +* - - -argument + + +fixed_parameter - - -identifier + + +stackalloc_expression - - -return_statement + + +variable_reference - - + + statement - - -var + + +T - - -, + + +identifier - - -simple_designation + + +statement_list - - -ref_method_modifier + + +expression_statement - - -unsafe_modifier + + +namespace_or_type_name - - -int + + +primary_expression - - -( + + +ref - - -) + + +: - - -tuple_type_element + + +statement - - -literal + + +string - - -ref + + +OutVar - - -{ + + +result - - -argument_name + + +explicitly_typed_local_variable_declarator - - -embedded_statement + + +variable_reference - - -< + + +bool - - -( + + +equality_expression - - -stackalloc_initializer_element_list + + +type_argument - - -y + + +member_access - - -literal + + +primary_expression - - -method_header + + +{ - - -struct_member_declaration + + +declaration_pattern - - -integral_type + + +explictly_typed_default - - -statement_list + + +parameter_list - - -int + + +identifier - - + + member_name - - -, - - - -tuple_type - - - -ref + + +declaration_statement - - + + ) - - -; + + +relational_expression - - -stackalloc_element_initializer + + +type - - -statement + + +class_body - - + + +identifier + + + ( - - -field_declaration + + +variable_reference - - -t2 + + +argument_list - - -] + + +a - - -argument + + +pattern - - -. + + +Choice - - -fixed_parameter + + +primary_expression - - -int + + +identifier - - -} + + +DefaultWithoutTypeName - - -r1 + + +block - - -method_header + + +explicitly_typed_local_variable_declaration - - -type + + +argument_list - - -; + + +int - - -block + + +array_type - - -int + + +( - - -fixed_pointer_declarators + + +) - - -public + + +multiplicative_expression - - -ref_kind + + +variable_reference - - -* + + +) - - -return_type + + +tuple_type_element - - -additive_expression + + +type_argument - - -= + + +true - - + + +identifier + + + ; - - -: + + +identifier - - -primary_expression + + +switch_block - - -1 + + +member_access - - -x + + +identifier - - -explicitly_typed_local_variable_declaration + + +boolean_expression - - -invocation_expression + + +( - - -primary_expression + + +argument_list - - -Print + + +boolean_literal - - -declaration_statement + + +contextual_keyword - - -implicitly_typed_local_variable_declaration + + +literal - - + + identifier - - -? + + +type - - -) + + +void - - -) + + +; - - -] + + +( - - -method_modifier - - - -member_name + + +argument - - -{ + + +primary_expression - - -} + + +X - - -otherArr + + +args - - -integral_type + + +local_variable_declaration - - -case_guard + + +literal - - -expr + + +tuple_element - - + + identifier - - -( - - - -object_creation_expression + + +argument_value - - -invocation_expression + + +field_declaration - - -class_member_declaration + + +method_declaration - - -) + + +v1 - - -local_variable_declaration + + +additive_expression - - -explicitly_typed_local_variable_declarators + + +stackalloc - - -666 + + +real - - -; + + +Vector3 - - -f2 + + +identifier - - -fixed_parameter + + +explictly_typed_default - - -return_statement + + +identifier - - -return + + +ref_local_variable_declarator - - -lambda_expression + + +expression - - -block + + +member_name - - -statement_expression + + +fixed_pointer_declarators - - -ref_method_modifier + + +method_body - - -method_modifiers + + +identifier - - + + ( - - -type - - - -nullable_value_type - - - -) + + +< - - -fixed_parameters + + +method_header - - -type + + +ref - - -IndexingMovableFixed + + +readonly - - -integral_type + + +s - - + + , - - -( + + +args - - -ref + + +member_name - - -i + + +statement_expression - - -element_access + + +fixed_parameter - - -( + + +5 - - -local_variable_declaration + + +; - - -multiplicative_expression + + +identifier - - -argument + + +invocation_expression - - -primary_expression + + +method_declaration - - -, + + += - - -tuple_element + + +method_header - - -int + + +fixed_parameter - - -string + + +class_member_declaration - - -argument_name + + +argument - - -v2 + + +ref_kind - - + + type - - -explicitly_typed_local_variable_declaration - - - -break + + +2 - - -identifier + + +1 - - -; + + +member_access - - -implicitly_typed_local_variable_declaration + + +variable_reference - - -pattern + + +ptr - - -explicitly_typed_local_variable_declarators + + +boolean_expression - - -block + + +int - - -value_type + + +public - - -struct + + +indexer_declarator - - -type_parameter_constraints_clause + + +identifier - - + + block - - -member_access + + +binary_operator_declarator - - -identifier + + +statement - - -integral_type + + +) - - -type + + +invocation_expression - - -identifier + + +await - - -class_member_declaration + + +50 - - -method_header + + +if_statement - - -? + + +0x1b_a0_44_fe - - -primary_no_array_creation_expression + + +parameter_mode_modifier - - -= + + +statement_list - - -method_header + + +explicitly_typed_local_variable_declarators - - -{ + + +identifier - - -namespace_or_type_name + + +fixed_parameter - - -member_access + + +myFixedField - - -} + + +expression - - -Type + + +string - - -assignment + + +, - - -local_variable_declaration + + +; - - -local_variable_initializer + + +; - - -primary_expression + + +fixed_parameter - - -ref + + +decorated_type_parameter - - -) + + +unsafe_modifier - - -this + + +literal - - -int + + +local_variable_declaration - - -identifier + + +; - - -identifier + + +class_declaration - - -identifier + + +fixed - - -] + + +Span - - -static + + +DoSomething - - -parenthesized_expression + + +method_modifiers - - -expression + + +declaration_statement - - -int + + +literal - - -argument_list + + +literal - - -local_variable_declaration + + +, - - -method_modifier + + +literal - - -) + + +method_header - - -[ + + +0 - - -stackalloc_initializer + + +null - - -< + + +declaration_statement + + + +, - - + + identifier - - -member_access + + +void - - -. + + +declaration_statement - - -additive_expression + + +) - - -block + + +type - - -explicitly_typed_local_variable_declarator + + +[ - - -( + + +multiplicative_expression - - + + identifier - - -primary_expression + + +local_variable_initializer - - -declaration_statement + + +type - - -identifier + + +stackalloc_initializer - - -embedded_statement + + +switch_section - - -statement + + +primary_expression - - -equality_expression + + +await + + + +T + + + +identifier - - + + operator_declarator - - -; + + +Hello - - -statement + + +variable_reference - - -method_declaration + + +identifier - - -argument_value + + +integral_type - - -declaration_statement + + +name - - -declaration_expression + + +fixed_pointer_initializer - - -method_body + + +, - - -statement + + +tuple_element - - -local_variable_type + + +Y - - -statement_list + + +relational_expression - - -identifier + + +class_member_declaration - - -explicitly_typed_local_variable_declaration + + +ref_method_modifier - - -identifier + + +x - - -var + + +{ - - -variable_declarator + + +] - - -member_name + + +class_type - - -r1 + + +( - - -argument + + +t2 - - -statement + + +statement_list - - -implicitly_typed_local_variable_declaration + + +method_modifier - - -* + + +variable_declarators - - -class_member_declaration + + +. - - -member_access + + +method_declaration - - -; + + +age - - -identifier + + +tuple_type_element - - -explicitly_typed_local_variable_declarator + + +: - - -identifier + + +multiplicative_expression - - + + identifier - - -declaration_statement + + +ref_method_modifiers - - -argument_list + + +Where - - -return_type + + +shift_expression - - -identifier + + +[ - - -when + + +block - - -. + + +personAge - - -var + + +stackalloc_element_initializer - - -expression + + +parameter_list - - -( + + +expression - - -in + + +default - - -identifier + + +statement - - -relational_expression + + +argument - - -LeadingSeparator + + +statement - - -void + + +explicitly_typed_local_variable_declaration - - -identifier + + +) - - -< + + +default - - -} + + +struct_modifier - - -x + + +parenthesized_expression - - -identifier + + +; - - -literal + + +} - - -int + + +block - - -( + + +return_type - - -statement_expression + + +identifier - - -i + + +identifier - - -struct_modifier + + +fixed_parameters - - -int + + +{ - - -= + + +identifier - - -myFixedField + + +identifier - - -stackalloc_element_initializer + + +class_member_declaration - - -> + + +identifier - - -assignment_operator + + ++ - - -result + + +, - - -return + + +Vector3 - - -5 + + +fixed - - + + relational_expression - - -: + + +block - - -declaration_expression + + +method_declaration - - -conditional_expression + + +ReadonlyRef1 - - -literal + + +statement - - -int + + +public - - -expression_statement + + +namespace_or_type_name - - -t1 + + +) - - -statement_list + + +age - - -Blittable + + +local_variable_initializer - - -method_header + + +identifier - - -statement_list + + +F - - -struct_modifier + + +identifier - - -in + + +primary_expression - - -ref_kind + + +type - - -+ + + +A - - -CSharp73 + + +; - - -Y + + +, - - -declaration_pattern + + +explicitly_typed_local_variable_declarators - - -; + + +Vector3 - - -identifier + + +] - - -int + + +. - - -] + + +assignment_operator - - -statement_list + + +tuple_type_element - - -additive_expression + + +t1 - - -primary_expression + + +integral_type - - -identifier - - - -async + + += - - -. + + +) - - -Test + + +primary_expression - - -parameter_modifier + + +} - - -member_access + + +, - - -[ + + +additive_expression - - -( + + +fixed_parameter - - -prog + + +block - - -10 + + +block - - -public + + +identifier - - -index + + +identifier - - -method_declaration + + +expression_statement - - -argument_list + + +literal - - -namespace_member_declaration + + +invocation_expression - - -ref + + +primary_expression - - -, + + +if_statement - - -a + + +; - - -[ + + +statement_list - - -class + + +TupleRecognize - - -literal + + +statement_expression - - -namespace_member_declaration + + +method_modifiers - - -void + + +static - - -class_type + + +null_literal - - -DoSomething + + +method_body - - -v + + +expression_statement - - -int + + +, - - -"B" + + +primary_expression - - -identifier + + +3 - - -{ + + +async - - -explicitly_typed_local_variable_declarator + + +literal - - + + > - - -, + + +) - - -D + + +argument - - -item + + +TValue - - -identifier + + +[ - - -int + + +block - - -identifier + + +1_2__3___4____5_____6______7_______8________9 - - -identifier + + +type - - -v1 + + +namespace_member_declaration - - -local_variable_declaration + + +) - - -=> + + +boolean_literal - - -assignment_operator + + +literal - - -binary_operator_declarator + + +fixed_parameters - - -parameter_list + + +implicitly_typed_local_variable_declaration - - -void + + +relational_expression - - -statement_expression + + +member_access - - -expression_statement + + +E - - -. + + +value_type - - -t + + +name - - -declaration_statement + + +; - - -dec + + +class_type - - + + identifier - - -struct_member_declaration + + +stackalloc - - -identifier + + +return_statement - - -identifier + + +method_body - - -type + + +struct_body - - -identifier + + +integral_type - - -Task + + +unary_expression - - -] + + +operator_modifier - - -; + + +additive_expression - - -fixed_parameter + + +fixed_size_buffer_modifier - - -type + + +ref_return_type - - -b + + +additive_expression - - -return_type + + +method_modifiers - - -member_access + + +relational_expression - - -C + + +parameter_mode_modifier - - -primary_expression + + +argument_list - - -; + + +s - - -unsafe + + +3 - - -member_name + + +literal - - -type + + +b - - -identifier + + +type_argument - - -literal + + +; - - -stackalloc + + +0 - - -true + + +argument_list - - -ref + + +123 - - -lambda_expression + + +explicitly_typed_local_variable_declarators - - -parameter_modifier + + +identifier - - -type + + +explicitly_typed_local_variable_declarator - - -= + + +type_parameter_list - - -isEmployed + + +tuple_type_element - - -) + + +embedded_statement - - -identifier + + +member_name - - + + ( - - -) + + +member_name - - -ref_indexer_body + + +return_statement - - -ref_kind + + +public - - -; + + +stackalloc_element_initializer - - -identifier + + +class_member_declaration - - -bool + + +!= - - -ref_kind + + +statement_list - - -null_literal + + +field_declaration - - -namespace_or_type_name + + +string - - -span + + +( - - -1_2__3___4____5_____6______7_______8________9 + + +( - - -local_variable_declaration + + +statement - - -. + + +( - - -) + + +TryParse - - -public + + +BinaryLiterals - - -, - - - -CSharp71 + + +literal - - -stackalloc + + +statement_list - - -primary_expression + + +struct_member_declaration - - -out + + +( - - -argument_value + + +identifier - - -switch_label + + +] - - -variable_reference + + +declaration_statement - - -123 + + +integral_type - - -method_modifier + + +} - - -statement + + +non_nullable_value_type - - -int + + +variable_reference - - -identifier + + +( - - -Task + + +primary_expression - - -method_header + + +) - - -primary_expression + + +var - - -switch_block + + += - - -33_554_432 + + +explicitly_typed_local_variable_declarators - - -string + + +expression_statement - - -additive_expression + + +) - - + + identifier - - -= + + +class_member_declaration - - -type + + +50 - - -ref_local_variable_declarator + + += - - -: + + +argument_value - - -return_statement + + +identifier - - -statement + + +statement_expression - - -[ + + +boolean_expression - - + + identifier - - -identifier + + +Vector3 - - -declaration_statement + + +struct_member_declaration - - -? + + +{ - - -fixed_pointer_initializer + + +readonly + + + +explicitly_typed_local_variable_declarators + + + +Type - - + + return_type - - -identifier + + +block - - -fixed_pointer_declarator + + +argument_list - - -[ + + +field_modifier - - -method_declaration + + +block - - + + identifier - - -argument_list + + +< - - -literal + + +identifier - - -= + + +var - - -) + + +additive_expression - - -statement_list + + +type - - -= + + +} - - -variable_reference + + +identifier - - -parameter_list + + +, - - -member_name + + +block - - -name + + +ref_method_modifier - - -statement + + +B - - -return_type + + +floating_point_type - - -statement_expression + + +1 - - -literal + + +integral_type - - -method_header + + +statement_expression - - -explicitly_typed_local_variable_declaration + + +local_variable_initializer - - -variable_reference + + +relational_expression - - -member_access + + +identifier - - -null + + +argument_list - - -stackalloc_element_initializer + + +argument - - -explictly_typed_default + + +personName - - -== + + +member_name - - -+ + + +type - - -statement_expression + + +[ - - -class_type + + +namespace_or_type_name - - -( + + +additive_expression - - -stackalloc_initializer + + +identifier - - -( + + +primary_expression - - -argument_list + + +unmanaged - - -integral_type + + +statement_list - - -ref_method_modifier + + +declaration_statement - - + + simple_type - - -if_statement + + +embedded_statement - - -class_member_declaration + + +statement - - -identifier + + +return - - -int + + +method_modifier - - -identifier + + +block - - -v2 + + +statement_expression - - -parameter_modifier + + +< - - -literal + + +if_statement - - -conditional_or_expression + + +var - - -value_type + + +} - - -Hello + + +} - - -type + + +ref_local_variable_declarators - - -ref_method_body + + +invocation_expression - - -void + + +in - - -identifier + + +integral_type - - -myFixedField + + +expression_statement - - -literal + + +argument - - -identifier + + +value2 - - -fixed_parameter + + +embedded_statement - - -boolean_literal + + +member_name - - -method_declaration + + +ref - - -block + + +fixed_parameter - - -explicitly_typed_local_variable_declarators + + +argument_list - - -ref_method_modifier + + +method_declaration - - -v1 + + +{ - - -TKey + + +identifier - - -variable_reference + + +class_body - - + + ( - - -local_variable_declaration + + +, - - -contextual_keyword + + +anonymous_function_signature - - -s + + +item - - -invocation_expression + + +identifier - - -Y + + +( - - -integral_type + + +( - - -) + + +this - - -method_declaration + + +argument_list - - -= + + +type - - -argument_value + + +int - - -= + + +nullable_value_type - - -stackalloc_expression + + +value_type + + + +fixed_parameter - - + + identifier - - -unary_expression + + +type - - -explicitly_typed_local_variable_declarator + + +weird - - -await + + +1 - - -Span + + +argument - - -method_declaration + + +} - - -readonly + + +integral_type - - -declaration_statement + + +} - - -local_variable_initializer + + +, - - -identifier + + +struct_declaration - - -namespace_or_type_name + + += - - -) + + +fixed_parameters - - -multiplicative_expression + + +( - - -Span + + +t1 - - -{ + + +explicitly_typed_local_variable_declarators - - -+ + + +M1 - - -boolean_literal + + +ref_method_modifiers - - -declaration_pattern + + +} - - -statement_expression + + +; - - -1_000.111_1e-1_000 + + +namespace_or_type_name - - -= + + +tuple_element - - -identifier + + +non_array_type - - -integral_type + + +ref - - -assignment + + +explicitly_typed_local_variable_declarator - - -expression_statement + + +statement_expression - - -explicitly_typed_local_variable_declarators + + +null_literal - - -ptr + + +a - - -; + + +block - - -stackalloc_initializer + + +invocation_expression - - -ref_local_variable_declarator + + +identifier - - -local_variable_type + + +null - - -} + + +type_argument_list - - -type + + +argument_list - - -explicitly_typed_local_variable_declaration + + +method_body - - -method_header + + +true - - -return_type + + +ref - - -type_parameter_constraints + + +method_declaration - - -) + + +statement_expression - - + + tuple_element - - -return + + +CSharp71 - - -identifier + + +pointer_type - - -void + + +) - - -namespace_member_declaration + + +{ - - -( + + +, - - -Vector3 + + +implicitly_typed_local_variable_declarator - - -method_modifiers + + +expression_statement - - -type + + +: - - -identifier + + +method_header - - -literal + + +t - - -OutVar + + +identifier - - -> + + +method_modifiers - - -member_access + + +{ - - -switch_label + + +statement_expression - - -parenthesized_expression + + +string - - -void + + +( - - -class_member_declaration + + +local_variable_declaration - - -] + + +( - - -where + + +} - - -ReadonlyRef1 + + +var - - -statement + + +c - - -block + + +explicit_anonymous_function_signature - - -statement_expression + + +ref - - -declaration_statement + + +arg - - -fixed_parameter + + +identifier - - -type + + +; - - -class_declaration + + +identifier - - -anonymous_function_body + + +new - - + + +statement + + + identifier - - -out + + +multiplicative_expression - - -identifier + + +type - - -member_name + + +boolean_literal - - -> + + +) - - -contextual_keyword + + +identifier - - -local_function_modifier + + +myFixedField - - -T + + +identifier - - -{ + + +local_variable_declaration - - -explicitly_typed_ref_local_variable_declaration + + +statement_list - - -member_name + + +operator_modifier - - + + statement_expression - - -{ + + +declaration_statement - - -explicitly_typed_local_variable_declarators + + +> - - -0 + + +{ - - -Vector3 + + +class_type - - -argument_list + + +; - - -argument + + +return_type - - -{ + + +conditional_expression - - -identifier + + +( - - -ref + + +async - - + + , - - -) + + +( - - -default_literal + + +} - - -identifier + + +; - - -> + + +var - - -implicitly_typed_local_variable_declarator + + +type - - -: + + +identifier - - -, - - - -identifier - - - -public - - - -null_coalescing_expression - - - -expression_statement + + +type_argument - - -type + + +argument - - -; + + +declaration_statement - - -M1 + + +literal - - -arg + + +{ - - -additive_expression + + +void - - -} + + +parameter_list - - + + primary_expression - - -type - - - + + identifier - - + + +class + + + ; - - -( + + +, - - -( + + +argument_list - - -method_header + + +struct - - -local_variable_initializer + + +r1 - - -identifier + + +method_modifier - - -boolean_expression + + +argument_name - - -explicitly_typed_local_variable_declaration + + +integral_type - - + + type - - -] - - - -fixed_parameters + + +ref - - -stackalloc_expression + + +content - - -argument_list + + +method_modifier - - -) + + +] - - -A + + +; - - -identifier + + +in - - -3 + + +, - - -; + + +fixed_parameter - - -invocation_expression + + +x - - + + return_type - - -primary_expression + + +local_variable_initializer - - -) + + +a - - -implicitly_typed_local_variable_declaration + + +Span - - -1 + + +? - - -literal + + +integral_type - - -additive_expression + + +local_variable_declaration - - -method_modifier + + +stackalloc_element_initializer - - -return_type + + +} - - -ref + + +identifier - - -( + + +variable_initializer - - -local_variable_declaration + + +2 - - -statement + + +method_declaration - - -shift_expression + + +unary_expression - - -?? + + +identifier - - + + +element_access + + + identifier - - -type + + +contextual_keyword - - -) + + +simple_designation - - -argument_list + + ++ - - -argument_list + + +IndexingMovableFixed - - -string + + +statement_list - - -; + + +primary_expression - - -a + + +c - - -args + + +unary_expression - - -parameter_mode_modifier + + +. - - -literal + + +declaration_statement - - -, + + +assignment - - -identifier + + +readonly - - -[ + + +primary_expression - - -: + + +expression - - -z + + +assignment - - -class_body + + +v1 - - -type_argument + + ++ - - -ref + + +f1 - - -switch_section + + +Span - - -literal + + +{ - - -X + + +unsafe - - -literal + + +return_statement - - -[ + + +identifier - - -( + + +argument_value - - -class_member_declaration + + +arg - - -explicitly_typed_local_variable_declarator + + +Task - - -c + + +local_function_declaration + + + +Func - - + + +] + + + identifier - - -parameter_list + + +T - - -+ + + +local_variable_declaration - - -: + + +return - - -method_modifiers + + +struct_declaration - - -class_member_declaration + + +] - - -ref_method_modifier + + +unary_expression - - -) + + +literal - - -{ + + +predefined_type - - -identifier + + +null_coalescing_expression - - -member_access + + +class_member_declaration - - -identifier + + +: - - -block + + +identifier - - -explicitly_typed_local_variable_declaration + + +identifier - - -( + + ++ - - -primary_no_array_creation_expression + + +f2 - - -} + + +additive_expression - - -anonymous_function_signature + + +argument - - + + identifier - - -= + + +type_argument_list - - -primary_expression + + +{ - - -} + + +DoSomething - - -invocation_expression + + +primary_expression - - -} + + +else - - -unsafe_modifier + + +type - - -identifier + + +StackallocArrayInitializer - - -r2 + + +? - - -relational_expression + + +null_conditional_member_access + + + +expression_statement - - + + identifier - - -) + + +int - - + + +expression + + + identifier - - + + unmanaged_type - - -isEmployed + + +type - - -a + + +statement_expression - - -identifier + + +Select - - -: + + +declaration_statement - - -fixed_parameter + + +ref_method_modifier - - -local_variable_declaration + + +return_type - - -] + + +implicitly_typed_local_variable_declaration - - -type_parameter_list + + +default - - -0x1b_a0_44_fe + + +type - - -literal + + +isEmployed - - -) + + +ref - - -) + + +identifier - - -assignment_operator + + +conditional_or_expression - - -) + + +argument_value - - -args + + +type - - -statement + + +; - - -struct_member_declaration + + +identifier - - -primary_expression + + +local_variable_type - - -statement + + +argument_list - - -multiplicative_expression + + += - - -statement_list + + +literal - - -method_declaration + + +explicitly_typed_local_variable_declarators - - -identifier + + +, - - -local_variable_initializer + + +type - - -return_type + + +; - - -identifier + + +type_argument - - -primary_no_array_creation_expression + + +explicitly_typed_local_variable_declaration - - -declaration_statement + + +literal - - + + +argument_name + + + identifier - - -=> + + +} - - -T + + +lambda_expression - - -statement_list + + +argument_name - - -( + + +fixed_parameter + + + +"B" - - + + ; - - -boolean_expression + + +method_modifiers - - -} + + +) - - -declaration_statement + + +expression_statement - - -statement_list + + +switch_statement - - -identifier + + +block - - -void + + +local_variable_declaration - - -class_type + + +} - - -= + + +type_argument - - -; + + +explicitly_typed_local_variable_declarator - - -constant_expression + + +class_declaration - - -invocation_expression + + +assignment_operator - - -; + + +namespace_or_type_name - - -ref_method_modifiers + + +expression_statement - - -} + + +identifier - - -{ + + +1 - - -void + + +class_member_declaration - - -method_header + + +tuple_type_element - - -result + + +class_member_declaration - - -parameter_modifier + + +argument - - -statement + + +integral_type - - -type_argument_list + + +unsafe - - -personAge + + +primary_expression - - -identifier + + +10 + + + +struct_member_declaration + + + +literal - - + + +argument_value + + + identifier - - + + +type + + + +] + + + identifier - - -v2 + + +=> - - -50 + + +explicitly_typed_local_variable_declarators - - -equality_expression + + +explicitly_typed_local_variable_declaration - - -args + + +local_variable_declaration - - -LocalFunctions + + +non_array_type - - -parameter_mode_modifier + + +fixed_parameters - - -contextual_keyword + + +G - - -void + + +] - - -member_access + + +. - - -, + + +class_member_declaration - - -tuple_element + + +identifier - - -local_variable_initializer + + +identifier - - -ref + + +parameter_list - - -c + + +T - - -foo + + +switch_label - - -( + + +primary_expression - - -identifier + + +multiplicative_expression - - -[ + + +type_argument_list - - -var + + +condition - - + + ) - - -variable_reference + + +"A" - - -namespace_or_type_name + + +identifier - - -member_name + + +namespace_or_type_name - - -ref_local_variable_declarator + + +statement - - -!= + + +local_function_header - - -integral_type + + +statement - - -ref_return_type + + +DigitSeparators - - -y + + +expression_statement - - -statement_expression + + +ref - - -=> + + +int - - -ref + + +, - - -{ + + +== - - -integral_type + + +return_type - - -personAge + + +, - - -parameter_modifier + + +void - - -invocation_expression + + +method_declaration - - -local_variable_declaration + + +( - - + + 2 - - -; + + +DoSomething - - -; + + +multiplicative_expression - - -statement_list + + +type_argument_list - - -member_access + + +identifier - - -TryParse + + +v2 - - -operator_body + + +identifier - - -ref + + +out - - + + identifier - - -identifier + + +implicitly_typed_local_variable_declarator - - -statement_list + + +identifier - - -rank_specifier + + +) - - -struct_body + + +method_header - - -} + + +personName - - -invocation_expression + + +statement - - -method_header + + +: - - -declaration_statement + + +) - - + + identifier - - -parameter_mode_modifier + + +public - - -null_literal + + +) - - -member_access + + +method_header - - + + identifier - - -literal - - - -statement - - - -explicitly_typed_local_variable_declarator + + +] - - -invocation_expression + + +type_argument - - -identifier + + +method_modifier - - -argument + + +boolean_literal - - -expression_statement + + +invocation_expression - - -type_parameter_list + + +i - - -T + + +expression - - -tuple_type_element + + +} - - -explicitly_typed_local_variable_declarators + + +[ - - + + method_modifiers - - -DefaultWithoutTypeName + + +primary_expression - - -) + + +ref_method_body - - -literal + + +< - - -method_body + + +] - - -( + + +statement_expression - - + + identifier - - -expression - - - -statement_list + + +block - - -( + + +] - - -class_member_declaration + + +NonTrailingNamedArguments - - -B + + +identifier - - + + v1 - - -, + + +method_header - - -block + + +type - - -explicitly_typed_local_variable_declarators + + +primary_expression - - -ref_method_modifier + + +namespace_member_declaration - - -Hello + + +, - - -primary_expression + + +) - - -struct + + +await_expression - - -expression + + +parameter_list - - -integral_type + + +< - - -: + + +int - - -c + + +equality_expression - - -fixed + + +[ - - -method_modifiers + + +ref - - -additive_expression + + +[ - - -X + + +integral_type - - -. + + +block - - -explicitly_typed_local_variable_declaration + + +explicit_anonymous_function_parameter - - -class + + +arr - - -tuple_type_element + + +member_name - - -class + + +namespace_or_type_name - - -ptr + + +, - - -struct_member_declaration + + +item + + + +identifier - - + + ( - - -literal + + +throw - - -) + + +class_member_declaration - - -< + + +integral_type - - -[ + + +argument - - -method_header + + +, - - -declaration_statement + + +{ - - -return_statement + + +default_literal - - -tuple_type_element + + +method_body - - -identifier + + +variable_declarators - - -variable_reference + + +struct_modifier - - -method_modifiers + + +void - - -integral_type + + +< - - -( + + ++ - - -Span + + +method_header - - -method_modifiers + + +true - - -element_access + + +identifier - - -, + + +ref - - -tuple_type + + +local_variable_initializer - - -declaration_statement + + +integral_type - - -expression_statement + + +block - - -declaration_statement + + +{ - - -default + + +switch_label - - -= + + +ref_kind - - -pattern + + +relational_expression - - -identifier + + +method_declaration - - -tuple_element + + +explicitly_typed_local_variable_declarators - - -fixed_parameter + + +identifier - - -type_argument + + +i - - -int + + +struct - - -stackalloc_initializer_element_list + + +argument - - + + i - - -statement_list - - - -class_declaration + + +struct_member_declaration - - -} + + +expression_statement - - -explicitly_typed_local_variable_declaration + + +class_member_declaration - - -identifier + + +, - - -identifier + + +class_body - - -argument + + +element_access - - -explicitly_typed_local_variable_declaration + + +method_modifiers - - -. + + +statement_expression - - -type_argument + + +literal - - -identifier - - - -type + + +block - - -expression + + +ref_method_modifier - - -relational_expression + + +statement - - -name + + +res - - -parameter_mode_modifier + + +{ - - -T + + +integral_type - - -struct_member_declaration + + +identifier - - -; + + +array_type - - -statement_list + + +method_body - - + + identifier - - -t + + +int - - -expression + + +statement_expression - - -null + + +explicitly_typed_local_variable_declarator - - -identifier + + +int - - -Z + + +nullable_type_annotation - - -type + + +: - - -simple_designation + + +( - - -parameter_list + + +primary_expression - - -argument_value + + +identifier - - -) + + +identifier - - -method_body + + +0 - - -var + + +age - - -) + + +literal - - -= + + +parameter_modifier - - -< + + +fixed_parameters - - -[ + + +identifier - - -block + + +struct_declaration - - -Vector3 + + +invocation_expression - - -statement + + +, - - -identifier + + +myFixedField - - -primary_expression + + +argument_list - - -type_parameter + + +ref_method_body - - -primary_expression + + +; - - -statement + + +type_argument - - + + identifier - - -return - - - -stackalloc_element_initializer - - - + + identifier - - -fixed_size_buffer_declarators + + +null_coalescing_expression - - -3 + + +alternative - - -r1 + + +method_declaration - - -class_member_declaration + + +; - - -method_declaration + + +. - - -int + + +( - - -type_argument_list + + +identifier - - + + argument - - -multiplicative_expression - - - -member_name + + +primary_expression - - -) + + +identifier - - -[ + + +integral_type - - -a + + +identifier - - -. + + +; - - -a + + +type - - -additive_expression + + +ref_local_variable_declarator - - -identifier + + +( - - -method_body + + +0 - - -return_type + + +argument - - -, + + +anonymous_function_signature - - -equality_expression + + += - - -pattern + + +v1 - - -) + + +bin - - + + identifier - - -) - - - -null - - - -statement + + +; - - -argument + + +parameter_list - - + + identifier - - -( + + ++ - - -compilation_unit + + +method_header - - -integral_type + + +identifier - - + + { - - -fixed_parameter - - - -weird - - - -: - - - -method_body + + +t - - -=> + + +class_type - - -struct_declaration + + +[ - - + + v1 - - -method_body + + +s - - -; + + ++ - - -; + + +invocation_expression - - -T + + +( - - -integral_type + + +variable_reference + + + +identifier - - + + tuple_type_element - - -identifier + + +parameter_mode_modifier - - -DoSomething + + +return_type - - -public + + +z - - -stackalloc + + +int - - -lambda_expression + + +. - - -Vector3 + + +ref - - -} + + +( - - -. + + +DoSomething - - -expression + + +primary_expression - - -static + + +method_header - - + + identifier - - -statement + + +integral_type - - -identifier + + +void - - -return_type + + +{ - - -argument_list + + +local_variable_declaration - - -local_variable_type + + +literal - - -; + + +parameter_list - - -; + + +argument_name - - -identifier + + +{ + + + +literal - - + + ( - - -integral_type + + +, - - -StackallocArrayInitializer + + +TupleEquality - - -identifier + + +local_function_body - - -age + + +identifier - - -) + + +identifier - - -Z + + +( - - + + identifier - - -explicitly_typed_local_variable_declarator - - - -method_header + + +> - - -; + + +1 - - + + identifier - - -condition - - - -( - - - -fixed_parameter + + +argument_value - - -ref_local_variable_declarators + + +method_modifiers - - -Hello + + +; - - -argument_list + + +primary_expression - - -statement_expression + + +is - - -primary_expression + + +age - - + + ( - - -block + + +args - - -implicitly_typed_local_variable_declarator + + +identifier - - -additive_expression + + +return_type - - -} + + +r - - -array_type + + +invocation_expression - - -type + + +( - - -relational_expression + + +local_variable_initializer - - -} + + +identifier - - -member_access + + +result - - -variable_reference + + +tuple_element - - -tuple_type_element + + +type - - + + identifier - - -default_literal - - - -variable_reference - - - -arr + + +method_body - - -null_coalescing_expression + + +identifier - - -; + + +( - - -return_type + + +declaration_statement - - -ref + + +constant_expression - - -type + + +argument_list - - + + identifier - - -int - - - -. + + +parameter_mode_modifier - - -fixed_parameters + + +stackalloc_element_initializer - - -primary_expression + + +method_body - - -stackalloc_initializer_element_list + + +t - - -] + + +primary_expression - - -method_declaration + + +X - - -integral_type + + +stackalloc_element_initializer - - -( + + +stackalloc_initializer_element_list - - -ThrowExpression + + +IndexingMovableFixed - - -statement_expression + + +type - - -explicit_anonymous_function_parameter_list + + +expression - - -0b1_0_1 + + +void - - -{ + + +) - - -primary_expression + + +0b10011 - - -class_member_declaration + + +PatternBasedFixed - - -statement + + +) - - -shift_expression + + +block - - -) + + +relational_expression - - -identifier + + +integral_type - - -if_statement + + +member_name - - -block + + +) - - -identifier + + +statement - - + + identifier - - -equality_expression + + +statement - - -expression + + +fixed_parameter - - + + ] - - -; - - - -is + + +> - - -type + + +argument_name - - -} + + +await_expression - - -void + + +integral_type - - -type + + +explicitly_typed_local_variable_declaration - - -argument_list + + +member_access - - -identifier + + += - - -case_guard + + +return_type - - -identifier + + +method_body - - -, + + +statement - - -stackalloc_element_initializer + + +byteArray - - + + identifier - - -ConditionalRef - - - -int - - - -if_statement - - - -relational_expression + + +argument_list - - -identifier + + +switch - - -explicitly_typed_local_variable_declaration + + +integral_type - - -tuple_element + + +method_declaration - - -parameter_list + + +literal - - -identifier + + +c - - + + public - - -int + + +. - - -member_access + + +LocalFunctions - - -class_member_declaration + + +, - - -statement_expression + + +identifier - - + + , - - -ref + + +ref_method_body - - -identifier + + +; - - -ref_method_modifier + + +( - - -local_variable_declaration + + +; - - -primary_no_array_creation_expression + + +literal - - -invocation_expression + + +Span - - + + ) - - -class_type + + +expression_statement - - -: + + +type - - -new + + +. - - -class + + += - - -0x_1_2 + + +block - - -additive_expression + + +a - - -= + + +statement - - -public + + +block - - -literal + + +member_access - - -nullable_type_annotation + + +void - - -argument_value + + +identifier - - -. + + +statement - - -class_member_declaration + + +identifier - - -class_member_declaration + + +M1_Trace - - -v1 + + +identifier - - -method_body + + +identifier - - -> + + +argument_name - - -consequence + + +( - - -) + + +identifier - - -true + + +type - - -literal + + +integral_type - - -local_function_body + + +} - - -integral_type + + +identifier - - -( + + +int - - -embedded_statement + + +stackalloc_element_initializer - - -. + + +equality_expression - - -statement_list + + +{ - - -( + + +method_declaration - - -statement_expression + + +primary_expression - - -expression + + +ref_method_modifier - - -literal + + +return_type - - -int + + +method_declaration - - -literal + + +; - - -in + + +ref_method_modifier - - -explicitly_typed_local_variable_declarators + + +int - - -argument_value + + +expression - - -literal + + +class_member_declaration - - -case + + +assignment - - -[ + + +( - - -Where + + +type - - -literal + + +Hello - - -invocation_expression + + +statement_list - - -method_modifiers + + +argument_list - - -statement + + +} - - -) + + +res - - -v1 + + +b - - -identifier + + +) - - -{ + + +argument - - -identifier + + +void - - -fixed_parameter + + +ref_method_modifier - - + + +type_argument + + + identifier - - -( + + +type_argument_list - - -< + + += - - -+ + + +return_statement - - -literal + + +local_function_header - - -literal + + +null_literal - - -method_body + + +0b101 - - -; + + +int - - -argument_value + + +identifier - - -statement + + +literal - - -{ + + +explicitly_typed_local_variable_declarator - - -statement + + +anonymous_function_parameter_modifier - - -new + + +int - - -literal + + +( - - -relational_expression + + +Span - - -async + + +3 - - -class_member_declaration + + +C - - -declaration_statement + + +) - - -identifier + + +( - - -type_argument + + +ref_kind - - -, + + +TKey + + + +boolean_literal - - -primary_no_array_creation_expression + + +explicitly_typed_local_variable_declarator - - + + local_variable_declaration - - -] + + +member_access - - -F + + +} - - -stackalloc_expression + + +ref - - -statement_list + + +parameter_modifier - - -, + + += - - -method_modifiers + + ++ - - -argument + + +int - - -< + + +tuple_type_element - - -await_expression + + +additive_expression - - -integral_type + + +declaration_statement + + + +class_member_declaration + + + +statement_list - - + + identifier - - -DoSomething + + +method_modifiers - - -value2 + + += - - -simple_type + + +) - - -NonTrailingNamedArguments + + +Blittable - - -explicitly_typed_local_variable_declaration + + +r2 - - -( + + +integral_type - - -conditional_expression + + +fixed_statement - - -ref + + +ref_method_modifier - - -type_argument + + +return_type - - -{ + + +ref_method_modifier - - -operator_modifier + + += + + + +primary_expression + + + +variable_reference - - + + +: + + + ) - - -[ + + +; - - -} + + +void - - -method_body + + +( - - -PatternBasedFixed + + +primary_expression - - -identifier + + +method_declaration - - -stackalloc + + +[ - - -field_modifier + + += - - -content + + +) - - -explicitly_typed_local_variable_declarator + + +} - - -otherArr + + +identifier - - + + class_type - - -statement + + +identifier - - -statement + + +local_variable_declaration - - -variable_reference + + +Type - - + + +class_member_declaration + + + ) - - -primary_expression + + +statement_list - - -local_function_header - - - -declaration_statement - - - -"A" + + +NullReferenceException - - -t + + +; - - -= + + +b - - -element_access + + +Y - - -method_header + + +stackalloc_expression - - + + integral_type - - -{ + + +return_type - - + + +argument_value + + + identifier - - -, + + +consequence - - -return_type + + +local_variable_declaration - - -argument + + +int - - + + identifier - - -3 - - - + + identifier - - -expression_statement + + +1 - - -0b10011 + + +< - - -implicitly_typed_local_variable_declaration + + +) - - -identifier + + +index - - -method_declaration + + +, - - -{ + + +literal - - -int + + +== - - -fixed_parameter + + +ConditionalRef - - -} + + +name - - -integral_type + + +( - - -< + + +method_declaration - - -integral_type + + +rank_specifier - - -0b_1_0_1 + + +identifier + + + +{ + + + +literal + + + +{ - - + + ; - - -IndexingMovableFixedFields + + +member_name - - -3 + + +integral_type - - -identifier + + +isEmployed - - -identifier + + +declaration_statement - - -) + + +type - - -integral_type + + +literal - - -operator + + +( - - -, + + += - - + + identifier - - + + +. + + + +parameter_modifier + + + declaration_statement - - -type_argument_list + + +implicitly_typed_local_variable_declaration - - -statement_expression + + +unsafe_modifier - - -statement + + +int - - -+ + + +f3 - - -method_header + + +[ - - -statement + + +identifier - - -multiplicative_expression + + +identifier - - -explicitly_typed_local_variable_declarators + + +identifier - - -} + + +span - - -int + + +e - - -method_modifiers + + +equality_expression - - -: + + +expression - - -return_statement + + +statement_expression - - -method_body + + +pattern - - -boolean_expression + + +type_argument_list - - -method_modifiers + + +fixed_parameter - - -identifier + + +. - - -primary_expression + + +member_access - - -invocation_expression + + +name - - -argument_name + + +where - - -relational_expression + + +T - - -) + + +return_type - - -( + + +declaration_expression - - -predefined_type + + +method_declaration - - -Choice + + += - - -FromResult + + +multiplicative_expression - - -DoSomething + + +buffer_element_type - - -list + + +identifier - - -; + + +. - - -type_argument_list + + +primary_expression - - -local_variable_initializer + + +[ - - -struct_member_declaration + + +int - - -. + + +ref_method_modifier - - -r1 + + +parameter_mode_modifier - - + + int - - -if + + +method_modifiers - - -argument_name + + +stackalloc_element_initializer - - -arr + + +readonly - - -identifier + + +; - - -, + + +) - - -expression_statement + + +T - - + + ; - - -type + + +i - - -integral_type + + +=> - - -b + + +{ - - -integral_type + + +public - - -explicitly_typed_local_variable_declarator + + +identifier - - -( + + +H - - -Select + + +byte - - -fixed_statement + + +default_argument - - -tuple_type + + +int - - -void + + +( - - -} + + +local_variable_type - - -name + + +explicitly_typed_local_variable_declarator - - -statement + + +parameter_mode_modifier - - -age + + +argument_list - - -expression_statement + + +T - - -identifier + + +type_parameter_constraints_clause - - -member_name - - - -50 - - - -multiplicative_expression + + +local_variable_declaration - - + + identifier - - -; - - - -int - - - -block + + +prog - - -type + + +member_access - - -CSharp70 + + +v - - -, + + +{ - - -( + + +namespace_or_type_name - - -{ + + +if - - -literal + + +string - - -variable_declarators + + +CSharp72 - - + + member_name - - -unmanaged + + +personName - - -identifier + + +} - - -PatternMatching + + +indexer_declaration - - -method_header + + +identifier - - -1 + + +literal - - + + expression - - -method_declaration + + +) - - -identifier + + +stackalloc_element_initializer - - -method_body + + +. - - + + type - - -ref_method_modifier + + +ref - - -null_coalescing_expression + + +fixed_size_buffer_declaration - - -] + + +fixed_size_buffer_declarator - - -. + + +type - - -} + + +unmanaged - - -int + + +identifier - - -argument_list + + +tuple_type - - -namespace_or_type_name + + +statement - - -explicitly_typed_local_variable_declarator + + +type - - -method_modifier + + +break_statement - - -local_function_declaration + + +Hello - - -{ + + +out - - -anonymous_function_body + + +argument_value - - -identifier + + +; - - -variable_reference + + +[ - - -argument_name + + +) - - -when + + +invocation_expression - - -: + + +; - - -( + + +Hello - - -( + + +fixed_parameter - - -explicitly_typed_local_variable_declarator + + += - - -+ + + +) - - -local_function_header + + +1 - - -primary_expression + + +method_declaration - - -static + + ++ - - -type + + +identifier - - -type + + +hex - - -} + + +identifier - - -int + + +identifier - - -ref + + +{ - - -default_argument + + +( - - -void + + +identifier - - -default + + +overloadable_binary_operator - - -; + + +) + + + +type_parameter - - + + identifier - - -0 + + +) - - -stackalloc_element_initializer + + +. - - -, + + +tuple_type_element - - -member_access + + +type - - -( + + +tuple_expression - - -identifier + + += - - -constant_expression + + +identifier - - -public + + +primary_expression - - -null_coalescing_expression + + +namespace_member_declaration - - -argument + + +explicitly_typed_local_variable_declarators - - -args + + +compilation_unit - - -primary_expression + + +method_body - - -argument + + +member_name - - -declaration_statement + + +; - - -value + + +return_type - - -{ + + += - - -namespace_or_type_name + + +invocation_expression - - + + variable_reference - - -int - - - -parameter_list - - - + + identifier - - -ref + + +PatternMatching - - -argument + + +foo - - -, + + +) - - -, + + +( - - -parameter_list + + +method_modifiers - - -, + + +void - - -variable_initializer + + +identifier - - -, + + +explicitly_typed_ref_local_variable_declaration - - -argument_list + + +primary_expression - - -block + + +0 - - -identifier + + +; - - -embedded_statement + + +primary_expression - - -class_member_declaration + + +struct_member_declaration - - -tuple_type_element + + +multiplicative_expression - - -relational_expression + + +multiplicative_expression - - -ref + + +statement - - -method_body + + +class_body - - -readonly + + +in - - -( + + +method_modifiers - - -class_member_declaration + + +> - - -< + + +!= - - -class_body + + +if - - -expression + + +declaration_statement - - -1 + + +) - - -block + + +static - - -= + + +DoSomething - - -int + + +fixed_parameter - - -( + + +statement - - -literal + + +( - - -, + + +identifier - - + + return_type - - -> - - - -ref - - - -class_declaration - - - + + identifier - - -local_variable_initializer + + += - - + + { - - -name + + +declaration_pattern - - -identifier + + +fixed_parameter - - -identifier + + +argument_list - - -personName + + +unmanaged_type - - -= + + +local_variable_declaration - - -explicit_anonymous_function_signature + + +; - - -alternative + + +literal - - -!= + + +implicitly_typed_local_variable_declaration - - -method_header + + +invocation_expression - - -hex + + +DoSomething - - + + identifier - - -integral_type - - - -literal - - - -predefined_type + + +; - - + + statement - - -declaration_statement + + +, - - -Guid + + +identifier - - -r + + +{ - - -local_variable_declaration + + +argument_list - - -argument_value + + +Vector3 - - -( + + +identifier - - -operator_modifier + + +class_member_declaration - - -local_function_declaration + + +] - - -type_argument_list + + +stackalloc_expression - - -in + + +tuple_element - - -argument_list + + +( - - -Vector3 + + +argument - - -) + + +. - - -identifier + + +method_modifiers - - -identifier + + +Z - - -ref_method_modifiers + + +: - - -multiplicative_expression + + +lambda_expression - - -= + + +block - - -type_argument + + +statement - - -identifier + + +, - - -( + + +public - - -stackalloc_expression + + +additive_expression - - -; + + +Task - - -local_variable_initializer + + +class - - -argument_list + + +FromResult - - -; + + +T - - -< + + +identifier - - -method_declaration + + +static - - -literal + + +stackalloc - - -struct_declaration + + +} - - -) + + +explicitly_typed_local_variable_declarator - - -equality_expression + + +0 - - -parameter_modifier + + +double - - -; + + +new - - -type_argument_list + + +equality_expression - - -non_array_type + + +member_access - - -bool + + +return - - -local_variable_declaration + + +additive_expression - - -NullReferenceException + + +method_header - - -+ + + +ref_method_modifier - - -await_expression + + +) - - -fixed_size_buffer_declarator + + +) - - -primary_expression + + +< - - -type + + +predefined_type - - -X + + +argument_list - - -( + + +> - - -local_variable_initializer + + +integral_type - - -fixed_parameter + + +tuple_type - - -block + + +tuple_expression - - -anonymous_function_parameter_modifier + + +} - - -+ + + +type_argument_list - - -tuple_type_element + + +operator - - + + +ThrowExpression + + + identifier - - -argument_list + + +expression - - -tuple_expression + + +expression - - -argument_value + + +argument - - -block + + +local_variable_declaration - - -Vector3 + + +member_access - - -Hello + + +int - - -additive_expression + + +tuple_type_element - - -primary_expression + + +anonymous_function_body - - + + { - - -Task - - - -primary_expression + + +int - - -< + + +member_name - - -identifier + + +statement_list - - -argument + + +string - - -statement_list + + +ref_method_modifier - - -method_declaration + + +fixed_parameter - - -variable_reference + + +arr - - -primary_expression + + +2 - - -integral_type + + +stackalloc - - -method_declaration + + +: - - -2 + + +statement_list - - -default + + +invocation_expression - - -} + + +unary_expression - - -variable_reference + + +explicitly_typed_local_variable_declaration - - + + identifier - - -) + + +method_header - - -integral_type + + +element_access - - -expression + + +nullableResult - - -local_variable_initializer + + +parameter_modifier - - -struct_body + + +simple_type - - -fixed_parameter + + +* - - -G + + +case_guard - - -b + + +null_coalescing_expression - - -identifier + + +type_argument - - -, + + +literal - - -member_access + + +: - - -; + + +equality_expression - - -statement + + +) - - -stackalloc_element_initializer + + +conditional_expression - - -tuple_expression + + +argument_value - - -var + + +namespace_or_type_name - - -nineteen + + +type - - -type_argument + + +type - - -tuple_expression + + +ref_method_modifier - - -ref_method_body + + +ref_method_modifiers - - -member_name + + +ref_return_type - - -} + + +( - - -personName + + +decorated_type_parameter - - -) + + +method_modifiers - - + + ; - - -) + + +variable_reference - - -{ + + +in - - -argument_list + + +identifier - - -method_declaration + + +Print - - -in + + +type_argument_list - - -Span + + +( - - -additive_expression + + +argument_list - - -identifier + + +embedded_statement - - -( + + +literal + + + +ref_kind + + + +stackalloc_expression + + + +Hello2 - - -integral_type + + +type - - -true + + +{ - - -ref_method_modifiers + + +argument_value - - -field_declaration + + +condition - - -primary_expression + + +fixed_parameter - - -f2 + + +class_declaration - - -tuple_type_element + + +argument_list - - -null_literal + + +parameter_list - - -> + + +true - - -method_body + + +a - - -explictly_typed_default + + +local_variable_declaration - - -identifier + + +assignment_operator - - -ref_kind + + +) - - -unmanaged_type + + +ptr - - -fixed_parameter + + +method_header - - + + integral_type - - -] + + +argument_list - - + + identifier - - -= + + +ref_return_type - - -relational_expression + + +v1 - - -ref + + +identifier - - -member_name + + +, - - -expression + + +declaration_expression - - -=> + + +bool - - -equality_expression + + +method_header - - -] + + +member_name - - -expression_statement + + +relational_expression - - -BinaryLiterals + + +] - - -t1 + + +{ - - -argument + + +identifier - - -statement + + ++ - - -, + + +) - - -identifier + + +local_variable_declaration - - -return_type + + +explicitly_typed_local_variable_declaration - - -identifier + + +? - - -var + + +invocation_expression - - -identifier + + +public - - -primary_expression + + +int - - -class_body + + +} - - -class_member_declaration + + +( - - -identifier + + +fixed_parameter - - -} + + +, - - -identifier + + +member_name - - -unary_expression + + +fixed_pointer_declarator - - -stackalloc_element_initializer + + +{ - - -implicitly_typed_local_variable_declarator + + +element_access - - -expression + + +local_variable_initializer - - -parameter_modifier + + +TryParse - - + + +null_coalescing_expression + + + expression - - -boolean_literal + + +otherArr - - -method_declaration + + +( - - -public + + +class - - -TupleEquality + + +explicitly_typed_local_variable_declarators - - -DefaultWithoutTypeName + + +parameter_list - - -; + + +implicitly_typed_local_variable_declarator - - -) + + +method_declaration - - -type_argument + + +r1 - - -type_argument_list + + +=> - - -i + + +( - - -tuple_element + + +member_access - - -1 + + +identifier - - -block + + +anonymous_function_body - - -multiplicative_expression + + +explicitly_typed_local_variable_declarator - - -statement_expression + + +stackalloc - - -literal + + +implicitly_typed_local_variable_declaration - - -true + + +expression_statement - - -type + + +literal - - -isEmployed + + +return_type - - -identifier + + +operator_body - - -identifier + + +; - - -1 + + +ref_method_modifier - - -3 + + +integral_type - - + + Vector3 - - -) + + +int - - -) + + +local_function_body - - -literal + + +; - - -primary_expression + + +r1 - - -identifier + + +class_member_declaration - - -primary_expression + + +integral_type - - -element_access + + +statement - - -b + + +Z - - -personName + + +contextual_keyword - - -identifier + + +D - - -parameter_list + + +. - - -local_variable_declaration + + +integral_type - - -element_access + + +expression - - -unmanaged_type + + +invocation_expression - - -local_variable_declaration + + +rank_specifier - - -ref_method_modifier + + +anonymous_function_body - - -invocation_expression + + +struct - - -{ + + +lambda_expression - - -additive_expression + + +ref_kind - - -1 + + +identifier - - -method_declaration + + +type - - -) + + +parameter_list - - -expression + + +parenthesized_expression - - -type + + +class_member_declaration - - -DoSomething + + +member_name - - -type + + +method_header - - -local_variable_declaration + + +identifier - - -public + + +CSharp73 - - -type + + +{ - - -type + + +when + + + +statement_list - - -DigitSeparators + + +identifier - - -declaration_statement + + +local_variable_initializer - - -struct_member_declaration + + +stackalloc_element_initializer - - -fixed_parameter + + +ref - - -relational_expression + + +identifier - - -public + + +statement_list - - + + identifier - - -age + + +( - - -fixed_parameter + + +1_2_3 - - -method_modifiers + + +. - - -type + + +[ - - -statement + + +block - - -{ + + +identifier - - -public + + +member_name - - -fixed_parameters + + +void - - -res + + += - - -{ + + +local_variable_declaration - - -null_conditional_member_access + + +return_statement - - -; + + +identifier - - -multiplicative_expression + + +method_body - - -} + + +; - - -readonly + + +identifier - - -block + + +local_function_declaration - - -ref_method_modifier + + +statement - - -if + + +static - - -member_access + + +consequence - - -( + + +identifier - - -( + + +identifier - - -expression + + +, - - -{ + + +identifier - - -switch_statement + + +identifier - - -member_name + + +class_member_declaration - - -argument_name + + +block - - -statement_list + + +? - - -tuple_element + + +} - - -int + + +contextual_keyword - - -explicitly_typed_local_variable_declarator + + +variable_reference - - -equality_expression + + +ref - - -class_type + + +statement - - -0x1_2_3 + + +argument_list - - -null_coalescing_expression + + +identifier - - + + identifier - - -var + + +type - - -E + + +{ - - -non_nullable_value_type + + +literal - - -0b101 + + +local_variable_declaration - - -identifier + + +return - - + + identifier - - -type + + +ref + + + +fixed_parameter - - + + identifier - - -, + + +( - - + + identifier - - -type + + +identifier - - -fixed + + +object_creation_expression - - -v2 + + +) - - + + identifier - - -method_modifiers + + +argument - - -expression + + +list - - -( + + +explicit_anonymous_function_parameter_list - - -parameter_list + + +equality_expression - - -buffer_element_type + + +} - - -literal + + +identifier - - -; + + +public - - -await + + +variable_reference - - -ref_kind + + +explicitly_typed_local_variable_declaration - - -type_argument + + +stackalloc_expression - - -} + + +type - - -implicitly_typed_local_variable_declaration + + +true - - -method_modifier + + +case - - -class_member_declaration + + +member_name - - -public + + +} - - -fixed_size_buffer_modifier + + +{ - - + + identifier - - -explicitly_typed_local_variable_declarators - - - -string + + +alternative - - + + identifier - - -} - - - -method_body + + +additive_expression - - -void + + +isEmployed - - -== + + +integral_type - - -CSharp72 + + +stackalloc_initializer_element_list - - -block + + +method_modifiers - - -block + + +; - - -ref_method_modifier + + +r1 - - -explicit_anonymous_function_parameter + + +identifier - - -} + + +declaration_expression - - -unsafe + + +) - - -if + + +Vector3 - - -declaration_expression + + +identifier - - -) + + ++ - - -method_header + + +, - - -} + + +1_000.111_1e-1_000 - - -class_member_declaration + + +0x1_2_3 - - + + identifier - - -= + + +object_creation_expression - - -block + + +expression - - -identifier + + +Task - - -. + + +method_header - - -. + + +explicitly_typed_local_variable_declarator - - -Vector3 + + +LeadingSeparator - - -class_body + + +declaration_statement - - -local_variable_initializer + + +int - - -implicitly_typed_local_variable_declarator + + +) - - -ref + + +identifier - - -, + + +tuple_expression + + + +statement_list + + + +declaration_statement - - -identifier + + +int - - -Hello2 + + +tuple_type ( - - -0 + + +case_guard - - -ref + + +method_header - - -block + + +argument - - -; + + +33_554_432 - - -parameter_list + + +explicitly_typed_local_variable_declarators - - -statement_list + + +integral_type - - -is + + +nineteen - - -method_modifiers + + +primary_expression - - -( + + +int - - -static + + +v1 - - -( + + +type - - -( + + +stackalloc_initializer - - -, + + +return_type - - -isEmployed + + +var - - -s + + +? - - -type_argument_list + + +class_member_declaration - - -; + + +statement_list - - -break_statement + + +IndexingMovableFixedFields - - -) + + +identifier - - -( + + +statement - - -, + + +} - - -invocation_expression + + +type - - -{ + + +0b_1_0_1 - - -Func + + +} - - -embedded_statement + + +ref_kind - - -in + + +ref - - -type + + +( - - -. + + +public - - -integral_type + + +invocation_expression - - -case + + +unmanaged_type - - -null_conditional_member_access + + +, - - -local_variable_initializer + + +additive_expression - - -bin + + +name - - -ref_return_type + + +declaration_statement - - -expression + + +Vector3 - - -identifier + + +declaration_statement - - -identifier + + +expression_statement - - -statement + + +local_variable_initializer - - -literal + + +relational_expression + + + +identifier - - + + ( - - -literal + + +ref - - -argument_list + + +variable_reference + + + +0b1_0_1 + + + +identifier - - + + ) - - -statement_list + + +fixed_size_buffer_declarators - - + + method_body - - -] + + +explicitly_typed_local_variable_declarators - - + + identifier - - -s + + +DefaultWithoutTypeName - - -stackalloc_element_initializer + + +element_access - - -{ + + +int - - -statement_list + + +dec - - -argument + + +age - - -{ + + +operator_declaration - - -equality_expression + + +3 - - -return_type + + +( - - -additive_expression + + +[ - - -identifier + + +primary_expression - - -literal + + += + + + +< + + + +c + + + +method_modifier + + + +otherArr + + + +local_variable_initializer - - + + identifier - - + + +declaration_statement + + + expression - - -identifier + + +static - - -identifier + + +} - - -identifier + + +public - - -argument_list + + +multiplicative_expression - - -identifier + + +literal - - -explicitly_typed_local_variable_declarator + + +method_header - - -return + + +method_body - - -null_literal + + +ReadonlyRef2 - - -type + + +local_variable_declaration - - -IndexingMovableFixed + + +; - - -identifier + + +} - - -return_type + + +) - - -identifier + + +type_parameter_constraints - - -condition + + +s - - -pointer_type + + +in - - -ref_method_modifier + + +explicitly_typed_local_variable_declaration - - -TValue + + +type - - -public + + +type_argument - - -fixed_parameter + + +ref_indexer_body - - -e + + +expression - - -> + + +block - - -tuple_type + + +local_variable_declaration - - + + +variable_declarator + + + +literal + + + +explicitly_typed_local_variable_declaration + + + identifier - - + + class_member_declaration - - -arr + + +break - - -argument + + +. - - -0 + + +) - - -else + + +if - - -argument_list + + +public - - -method_header + + +identifier - - -pointer_type + + +) - - -; + + +ref - - -throw_expression + + +fixed_parameter + + + +element_access - - -{ + + +statement_list - - -Hello + + +[ - - -primary_expression + + +statement_expression - - -, + + +expression - - -type + + +v2 - - -{ + + +; - - -public + + +[ - - -indexer_declaration + + +local_variable_type - - -, + + +0x_1_2 - - -local_variable_declaration + + +} - - -integral_type + + +> - - -s + + +identifier - - -type_argument + + +identifier - - -parameter_mode_modifier + + +) - - -expression_statement + + +statement - - -? + + +method_body - - -expression_statement + + +( - - + + ) - - -statement_expression - - - -implicitly_typed_local_variable_declarator + + +type - - -ref_method_body + + +. - - -identifier + + +primary_expression - - -byteArray + + +class_declaration - - + + void - - -literal + + +statement_list - - -primary_expression + + +method_body - - -alternative + + +embedded_statement - - -M1_Trace + + +ref - - -) + + +primary_expression - - -} + + +) - - -explicitly_typed_local_variable_declaration + + +( - - -argument + + +equality_expression - - -} + + +return_type - - -fixed_parameter + + +local_function_modifier - - -fixed_parameters + + +literal - - -identifier + + +: - - -throw + + +shift_expression - - -fixed_parameter + + +parameter_mode_modifier - - -declaration_expression + + +implicitly_typed_local_variable_declarator - - -age + + +Mutate - - -type + + +identifier - - -method_modifiers + + +public - - -variable_reference + + +{ - - -non_array_type + + +literal - - -item + + +fixed_parameter - - -identifier + + +isEmployed - - -object_creation_expression + + +explicitly_typed_local_variable_declarator - - -) + + +implicitly_typed_local_variable_declaration - - -local_variable_declaration + + +> - - -expression_statement + + +relational_expression - - -indexer_declarator + + +statement - - -identifier + + +var - - -) + + +Vector3 - - -method_modifiers + + +Guid - - -; + + +int - - -integral_type + + +method_modifiers - - -statement + + +> - - -arg + + +expression - - -anonymous_function_signature + + +0b1001_1010_0001_0100 - - -int + + +} - - -boolean_literal + + +) - - -argument_value + + +when - - -T + + +return - - -argument_list + + +primary_expression - - -ref_method_modifier + + +literal - - -struct + + +statement - - -type + + +declaration_statement - - -v1 + + +member_access - - -x + + +invocation_expression - - + + identifier - - -string - - - -expression + + +explicitly_typed_local_variable_declaration - - -class_declaration + + +in - - + + type - - -) - - - -( + + +identifier - - -Vector3 + + +type_argument_list - - -implicitly_typed_local_variable_declaration + + +identifier - - -switch + + +666 - - -real + + +primary_expression - - -invocation_expression + + +identifier - - -statement + + +declaration_statement - - -method_declaration + + +ref_local_variable_declarator - - -explicitly_typed_local_variable_declarator + + +parameter_list - - + + literal - - -, + + +identifier - - -+ + + +argument - - + + identifier - - -type + + +identifier - - -statement_list + + +var - - -member_name + + +null - - -identifier + + +default_literal - - -identifier + + +y - - -[ + + += - - -overloadable_binary_operator + + +] - - -identifier + + +expr - - -unary_expression + + +struct_member_declaration - - -identifier + + +return - - -) + + +; - - -res + + +: - - -primary_expression + + +args - - -statement + + +tuple_type - - -ref_method_modifier + + +int + + + +switch_label \ No newline at end of file diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/ReadMe.md b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/ReadMe.md new file mode 100644 index 000000000..348083c6e --- /dev/null +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/ReadMe.md @@ -0,0 +1,12 @@ +# Sample: Element access + +Uses modification set Rules which inherits from Base the semantic check for the LHS of +*element_access* & *null_conditional_element_access* not being an *array_creation_expression* +unless it includes an *array_initializer*, or a *stackalloc_expression* unless it includes +a *stackalloc_initializer*. + +The sample contains both valid and invalid samples, the semantic errors the latter +produce are checked – the reference errors are in `Reference/sample.stderr.txt` + +The check is a semantic one only, the code still parses successfully and the parse tree +is checked for correctness as with other samples. \ No newline at end of file diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.gruntree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.gruntree.red.txt new file mode 100644 index 000000000..9ed627acc --- /dev/null +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.gruntree.red.txt @@ -0,0 +1,1973 @@ +⎛ +⎜ prog +⎜ ⎛ +⎜ ⎜ compilation_unit +⎜ ⎜ ⎛ +⎜ ⎜ ⎜ namespace_declaration +⎜ ⎜ ⎜ namespace +⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ qualified_identifier +⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ AccessWithCreation +⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ namespace_body +⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ namespace_member_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_modifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ internal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ AccessWithCreationSample +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_body +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_member_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_modifiers +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ref_method_modifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ static +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ return_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ void +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_header +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ member_name +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ElementAccess +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ) +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_body +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ block +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ x0 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ new +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ string +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ x +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ parenthesized_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ new +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ string +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ) +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ y +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ new +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ string +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "ant" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "bat" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "cat" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "dog" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ z +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ new +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ string +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ rank_specifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "ant" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "bat" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "cat" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "dog" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ s +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ namespace_or_type_name +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ Span +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ type_argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ < +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ type_argument +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ > +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarators +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ s +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarators +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ t +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ s +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarators +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ u +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_conditional_element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ s +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ? +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 1 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ p0 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ p +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ parenthesized_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ) +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ q +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ constant_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_initializer_element_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 0 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 1 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_member_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_modifiers +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ref_method_modifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ static +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ return_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ void +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_header +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ member_name +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ NullConditionalElementAccess +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ) +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_body +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ block +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ x0 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_conditional_element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ new +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ string +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ? +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ x +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_conditional_element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ parenthesized_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ new +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ string +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ) +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ? +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ y +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_conditional_element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ new +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ string +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "ant" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "bat" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "cat" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "dog" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ? +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ z +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_conditional_element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ new +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ non_array_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ string +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ rank_specifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ array_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "ant" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "bat" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "cat" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ "dog" +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ? +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ p0 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_conditional_element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ? +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ p +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_conditional_element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ parenthesized_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ) +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ? +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ q +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_conditional_element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ constant_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 4 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_initializer_element_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 0 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 1 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ? +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ class_member_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_modifiers +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ref_method_modifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ static +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ return_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ void +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_header +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ member_name +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ UnsafeElementAccess +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ) +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ method_body +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ block +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unsafe_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unsafe +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ block +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ pointer_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ value_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ * +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarators +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ p +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarators +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ n +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ p +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ x0 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ x +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ parenthesized_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ) +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ pointer_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ value_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ * +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarators +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ explicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ q +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ constant_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_initializer_element_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ - +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 10 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ - +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 15 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ - +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 30 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ declaration_statement +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declaration +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ var +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ implicitly_typed_local_variable_declarator +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ y +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ = +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ element_access +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unmanaged_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ integral_type +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ int +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ constant_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 3 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ { +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_initializer_element_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ - +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 10 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ - +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 15 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ , +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ stackalloc_element_initializer +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ - +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ unary_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 30 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ [ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ argument_list +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ literal +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ 2 +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ] +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ; +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎜ ⎜ } +⎜ ⎜ ⎜ ⎝ +⎜ ⎜ ⎝ +⎜ ⎝ +⎝ diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.stderr.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.stderr.txt new file mode 100644 index 000000000..481fcc549 --- /dev/null +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.stderr.txt @@ -0,0 +1,5 @@ +line 7:34 LHS of an element_access cannot be an array_creation_expression unless it has an initializer +line 19:38 LHS of an element_access cannot be a stackalloc_expression unless it has an initializer +line 26:34 LHS of a null_conditional_element_access cannot be an array_creation_expression unless it has an initializer +line 33:38 LHS of a null_conditional_element_access cannot be a stackalloc_expression unless it has an initializer +line 46:42 LHS of an element_access cannot be a stackalloc_expression unless it has an initializer diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.tokens.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.tokens.txt new file mode 100644 index 000000000..6b721d4ee --- /dev/null +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.tokens.txt @@ -0,0 +1,393 @@ +[@0,0:8='namespace',<'namespace'>,1:0] +[@1,10:27='AccessWithCreation',,1:10] +[@2,29:29='{',<'{'>,2:0] +[@3,35:42='internal',<'internal'>,3:4] +[@4,44:48='class',<'class'>,3:13] +[@5,50:73='AccessWithCreationSample',,3:19] +[@6,79:79='{',<'{'>,4:4] +[@7,89:94='static',<'static'>,5:8] +[@8,96:99='void',<'void'>,5:15] +[@9,101:113='ElementAccess',,5:20] +[@10,114:114='(',<'('>,5:33] +[@11,115:115=')',<')'>,5:34] +[@12,125:125='{',<'{'>,6:8] +[@13,139:141='var',<'var'>,7:12] +[@14,143:144='x0',,7:16] +[@15,146:146='=',<'='>,7:19] +[@16,148:150='new',<'new'>,7:21] +[@17,152:157='string',<'string'>,7:25] +[@18,158:158='[',<'['>,7:31] +[@19,159:159='4',,7:32] +[@20,160:160=']',<']'>,7:33] +[@21,161:161='[',<'['>,7:34] +[@22,162:162='2',,7:35] +[@23,163:163=']',<']'>,7:36] +[@24,164:164=';',<';'>,7:37] +[@25,203:205='var',<'var'>,8:12] +[@26,207:207='x',,8:16] +[@27,209:209='=',<'='>,8:18] +[@28,211:211='(',<'('>,8:20] +[@29,212:214='new',<'new'>,8:21] +[@30,216:221='string',<'string'>,8:25] +[@31,222:222='[',<'['>,8:31] +[@32,223:223='4',,8:32] +[@33,224:224=']',<']'>,8:33] +[@34,225:225=')',<')'>,8:34] +[@35,226:226='[',<'['>,8:35] +[@36,227:227='2',,8:36] +[@37,228:228=']',<']'>,8:37] +[@38,229:229=';',<';'>,8:38] +[@39,244:246='var',<'var'>,10:12] +[@40,248:248='y',,10:16] +[@41,250:250='=',<'='>,10:18] +[@42,252:254='new',<'new'>,10:20] +[@43,256:261='string',<'string'>,10:24] +[@44,262:262='[',<'['>,10:30] +[@45,263:263='4',,10:31] +[@46,264:264=']',<']'>,10:32] +[@47,266:266='{',<'{'>,10:34] +[@48,268:272='"ant"',,10:36] +[@49,273:273=',',<','>,10:41] +[@50,275:279='"bat"',,10:43] +[@51,280:280=',',<','>,10:48] +[@52,282:286='"cat"',,10:50] +[@53,287:287=',',<','>,10:55] +[@54,289:293='"dog"',,10:57] +[@55,295:295='}',<'}'>,10:63] +[@56,296:296='[',<'['>,10:64] +[@57,297:297='2',,10:65] +[@58,298:298=']',<']'>,10:66] +[@59,299:299=';',<';'>,10:67] +[@60,313:315='var',<'var'>,11:12] +[@61,317:317='z',,11:16] +[@62,319:319='=',<'='>,11:18] +[@63,321:323='new',<'new'>,11:20] +[@64,325:330='string',<'string'>,11:24] +[@65,331:331='[',<'['>,11:30] +[@66,332:332=']',<']'>,11:31] +[@67,334:334='{',<'{'>,11:33] +[@68,336:340='"ant"',,11:35] +[@69,341:341=',',<','>,11:40] +[@70,343:347='"bat"',,11:42] +[@71,348:348=',',<','>,11:47] +[@72,350:354='"cat"',,11:49] +[@73,355:355=',',<','>,11:54] +[@74,357:361='"dog"',,11:56] +[@75,363:363='}',<'}'>,11:62] +[@76,364:364='[',<'['>,11:63] +[@77,365:365='3',,11:64] +[@78,366:366=']',<']'>,11:65] +[@79,367:367=';',<';'>,11:66] +[@80,382:384='var',<'var'>,13:12] +[@81,386:386='s',,13:16] +[@82,388:388='=',<'='>,13:18] +[@83,390:399='stackalloc',<'stackalloc'>,13:20] +[@84,401:403='int',<'int'>,13:31] +[@85,404:404='[',<'['>,13:34] +[@86,405:405='4',,13:35] +[@87,406:406=']',<']'>,13:36] +[@88,407:407=';',<';'>,13:37] +[@89,484:487='Span',,14:12] +[@90,488:488='<',<'<'>,14:16] +[@91,489:491='int',<'int'>,14:17] +[@92,492:492='>',<'>'>,14:20] +[@93,494:494='s',,14:22] +[@94,496:496='=',<'='>,14:24] +[@95,498:507='stackalloc',<'stackalloc'>,14:26] +[@96,509:511='int',<'int'>,14:37] +[@97,512:512='[',<'['>,14:40] +[@98,513:513='4',,14:41] +[@99,514:514=']',<']'>,14:42] +[@100,515:515=';',<';'>,14:43] +[@101,555:557='int',<'int'>,15:12] +[@102,559:559='t',,15:16] +[@103,561:561='=',<'='>,15:18] +[@104,563:563='s',,15:20] +[@105,564:564='[',<'['>,15:21] +[@106,565:565='2',,15:22] +[@107,566:566=']',<']'>,15:23] +[@108,567:567=';',<';'>,15:24] +[@109,581:583='int',<'int'>,16:12] +[@110,585:585='u',,16:16] +[@111,587:587='=',<'='>,16:18] +[@112,589:589='s',,16:20] +[@113,590:590='?',<'?'>,16:21] +[@114,591:591='[',<'['>,16:22] +[@115,592:592='1',,16:23] +[@116,593:593=']',<']'>,16:24] +[@117,594:594=';',<';'>,16:25] +[@118,754:756='var',<'var'>,19:12] +[@119,758:759='p0',,19:16] +[@120,761:761='=',<'='>,19:19] +[@121,763:772='stackalloc',<'stackalloc'>,19:21] +[@122,774:776='int',<'int'>,19:32] +[@123,777:777='[',<'['>,19:35] +[@124,778:778='4',,19:36] +[@125,779:779=']',<']'>,19:37] +[@126,780:780='[',<'['>,19:38] +[@127,781:781='2',,19:39] +[@128,782:782=']',<']'>,19:40] +[@129,783:783=';',<';'>,19:41] +[@130,818:820='var',<'var'>,20:12] +[@131,822:822='p',,20:16] +[@132,824:824='=',<'='>,20:18] +[@133,826:826='(',<'('>,20:20] +[@134,827:836='stackalloc',<'stackalloc'>,20:21] +[@135,838:840='int',<'int'>,20:32] +[@136,841:841='[',<'['>,20:35] +[@137,842:842='4',,20:36] +[@138,843:843=']',<']'>,20:37] +[@139,844:844=')',<')'>,20:38] +[@140,845:845='[',<'['>,20:39] +[@141,846:846='2',,20:40] +[@142,847:847=']',<']'>,20:41] +[@143,848:848=';',<';'>,20:42] +[@144,862:864='var',<'var'>,21:12] +[@145,866:866='q',,21:16] +[@146,868:868='=',<'='>,21:18] +[@147,870:879='stackalloc',<'stackalloc'>,21:20] +[@148,881:883='int',<'int'>,21:31] +[@149,884:884='[',<'['>,21:34] +[@150,885:885='4',,21:35] +[@151,886:886=']',<']'>,21:36] +[@152,888:888='{',<'{'>,21:38] +[@153,890:890='0',,21:40] +[@154,891:891=',',<','>,21:41] +[@155,893:893='1',,21:43] +[@156,894:894=',',<','>,21:44] +[@157,896:896='2',,21:46] +[@158,897:897=',',<','>,21:47] +[@159,899:899='3',,21:49] +[@160,901:901='}',<'}'>,21:51] +[@161,902:902='[',<'['>,21:52] +[@162,903:903='3',,21:53] +[@163,904:904=']',<']'>,21:54] +[@164,905:905=';',<';'>,21:55] +[@165,915:915='}',<'}'>,22:8] +[@166,926:931='static',<'static'>,24:8] +[@167,933:936='void',<'void'>,24:15] +[@168,938:965='NullConditionalElementAccess',,24:20] +[@169,966:966='(',<'('>,24:48] +[@170,967:967=')',<')'>,24:49] +[@171,977:977='{',<'{'>,25:8] +[@172,991:993='var',<'var'>,26:12] +[@173,995:996='x0',,26:16] +[@174,998:998='=',<'='>,26:19] +[@175,1000:1002='new',<'new'>,26:21] +[@176,1004:1009='string',<'string'>,26:25] +[@177,1010:1010='[',<'['>,26:31] +[@178,1011:1011='4',,26:32] +[@179,1012:1012=']',<']'>,26:33] +[@180,1013:1013='?',<'?'>,26:34] +[@181,1014:1014='[',<'['>,26:35] +[@182,1015:1015='2',,26:36] +[@183,1016:1016=']',<']'>,26:37] +[@184,1017:1017=';',<';'>,26:38] +[@185,1055:1057='var',<'var'>,27:12] +[@186,1059:1059='x',,27:16] +[@187,1061:1061='=',<'='>,27:18] +[@188,1063:1063='(',<'('>,27:20] +[@189,1064:1066='new',<'new'>,27:21] +[@190,1068:1073='string',<'string'>,27:25] +[@191,1074:1074='[',<'['>,27:31] +[@192,1075:1075='4',,27:32] +[@193,1076:1076=']',<']'>,27:33] +[@194,1077:1077=')',<')'>,27:34] +[@195,1078:1078='?',<'?'>,27:35] +[@196,1079:1079='[',<'['>,27:36] +[@197,1080:1080='2',,27:37] +[@198,1081:1081=']',<']'>,27:38] +[@199,1082:1082=';',<';'>,27:39] +[@200,1097:1099='var',<'var'>,29:12] +[@201,1101:1101='y',,29:16] +[@202,1103:1103='=',<'='>,29:18] +[@203,1105:1107='new',<'new'>,29:20] +[@204,1109:1114='string',<'string'>,29:24] +[@205,1115:1115='[',<'['>,29:30] +[@206,1116:1116='4',,29:31] +[@207,1117:1117=']',<']'>,29:32] +[@208,1119:1119='{',<'{'>,29:34] +[@209,1121:1125='"ant"',,29:36] +[@210,1126:1126=',',<','>,29:41] +[@211,1128:1132='"bat"',,29:43] +[@212,1133:1133=',',<','>,29:48] +[@213,1135:1139='"cat"',,29:50] +[@214,1140:1140=',',<','>,29:55] +[@215,1142:1146='"dog"',,29:57] +[@216,1148:1148='}',<'}'>,29:63] +[@217,1149:1149='?',<'?'>,29:64] +[@218,1150:1150='[',<'['>,29:65] +[@219,1151:1151='2',,29:66] +[@220,1152:1152=']',<']'>,29:67] +[@221,1153:1153=';',<';'>,29:68] +[@222,1167:1169='var',<'var'>,30:12] +[@223,1171:1171='z',,30:16] +[@224,1173:1173='=',<'='>,30:18] +[@225,1175:1177='new',<'new'>,30:20] +[@226,1179:1184='string',<'string'>,30:24] +[@227,1185:1185='[',<'['>,30:30] +[@228,1186:1186=']',<']'>,30:31] +[@229,1188:1188='{',<'{'>,30:33] +[@230,1190:1194='"ant"',,30:35] +[@231,1195:1195=',',<','>,30:40] +[@232,1197:1201='"bat"',,30:42] +[@233,1202:1202=',',<','>,30:47] +[@234,1204:1208='"cat"',,30:49] +[@235,1209:1209=',',<','>,30:54] +[@236,1211:1215='"dog"',,30:56] +[@237,1217:1217='}',<'}'>,30:62] +[@238,1218:1218='?',<'?'>,30:63] +[@239,1219:1219='[',<'['>,30:64] +[@240,1220:1220='3',,30:65] +[@241,1221:1221=']',<']'>,30:66] +[@242,1222:1222=';',<';'>,30:67] +[@243,1288:1290='var',<'var'>,33:12] +[@244,1292:1293='p0',,33:16] +[@245,1295:1295='=',<'='>,33:19] +[@246,1297:1306='stackalloc',<'stackalloc'>,33:21] +[@247,1308:1310='int',<'int'>,33:32] +[@248,1311:1311='[',<'['>,33:35] +[@249,1312:1312='4',,33:36] +[@250,1313:1313=']',<']'>,33:37] +[@251,1314:1314='?',<'?'>,33:38] +[@252,1315:1315='[',<'['>,33:39] +[@253,1316:1316='2',,33:40] +[@254,1317:1317=']',<']'>,33:41] +[@255,1318:1318=';',<';'>,33:42] +[@256,1352:1354='var',<'var'>,34:12] +[@257,1356:1356='p',,34:16] +[@258,1358:1358='=',<'='>,34:18] +[@259,1360:1360='(',<'('>,34:20] +[@260,1361:1370='stackalloc',<'stackalloc'>,34:21] +[@261,1372:1374='int',<'int'>,34:32] +[@262,1375:1375='[',<'['>,34:35] +[@263,1376:1376='4',,34:36] +[@264,1377:1377=']',<']'>,34:37] +[@265,1378:1378=')',<')'>,34:38] +[@266,1379:1379='?',<'?'>,34:39] +[@267,1380:1380='[',<'['>,34:40] +[@268,1381:1381='2',,34:41] +[@269,1382:1382=']',<']'>,34:42] +[@270,1383:1383=';',<';'>,34:43] +[@271,1413:1415='var',<'var'>,35:12] +[@272,1417:1417='q',,35:16] +[@273,1419:1419='=',<'='>,35:18] +[@274,1421:1430='stackalloc',<'stackalloc'>,35:20] +[@275,1432:1434='int',<'int'>,35:31] +[@276,1435:1435='[',<'['>,35:34] +[@277,1436:1436='4',,35:35] +[@278,1437:1437=']',<']'>,35:36] +[@279,1439:1439='{',<'{'>,35:38] +[@280,1441:1441='0',,35:40] +[@281,1442:1442=',',<','>,35:41] +[@282,1444:1444='1',,35:43] +[@283,1445:1445=',',<','>,35:44] +[@284,1447:1447='2',,35:46] +[@285,1448:1448=',',<','>,35:47] +[@286,1450:1450='3',,35:49] +[@287,1452:1452='}',<'}'>,35:51] +[@288,1453:1453='?',<'?'>,35:52] +[@289,1454:1454='[',<'['>,35:53] +[@290,1455:1455='3',,35:54] +[@291,1456:1456=']',<']'>,35:55] +[@292,1457:1457=';',<';'>,35:56] +[@293,1484:1484='}',<'}'>,36:8] +[@294,1495:1500='static',<'static'>,38:8] +[@295,1502:1505='void',<'void'>,38:15] +[@296,1507:1525='UnsafeElementAccess',,38:20] +[@297,1526:1526='(',<'('>,38:39] +[@298,1527:1527=')',<')'>,38:40] +[@299,1537:1537='{',<'{'>,39:8] +[@300,1551:1556='unsafe',<'unsafe'>,40:12] +[@301,1570:1570='{',<'{'>,41:12] +[@302,1628:1630='int',<'int'>,43:16] +[@303,1631:1631='*',<'*'>,43:19] +[@304,1633:1633='p',,43:21] +[@305,1635:1635='=',<'='>,43:23] +[@306,1637:1646='stackalloc',<'stackalloc'>,43:25] +[@307,1648:1650='int',<'int'>,43:36] +[@308,1651:1651='[',<'['>,43:39] +[@309,1652:1652='3',,43:40] +[@310,1653:1653=']',<']'>,43:41] +[@311,1654:1654=';',<';'>,43:42] +[@312,1706:1708='int',<'int'>,44:16] +[@313,1710:1710='n',,44:20] +[@314,1712:1712='=',<'='>,44:22] +[@315,1714:1714='p',,44:24] +[@316,1715:1715='[',<'['>,44:25] +[@317,1716:1716='2',,44:26] +[@318,1717:1717=']',<']'>,44:27] +[@319,1718:1718=';',<';'>,44:28] +[@320,1753:1755='var',<'var'>,46:16] +[@321,1757:1758='x0',,46:20] +[@322,1760:1760='=',<'='>,46:23] +[@323,1762:1771='stackalloc',<'stackalloc'>,46:25] +[@324,1773:1775='int',<'int'>,46:36] +[@325,1776:1776='[',<'['>,46:39] +[@326,1777:1777='3',,46:40] +[@327,1778:1778=']',<']'>,46:41] +[@328,1779:1779='[',<'['>,46:42] +[@329,1780:1780='2',,46:43] +[@330,1781:1781=']',<']'>,46:44] +[@331,1782:1782=';',<';'>,46:45] +[@332,1822:1824='var',<'var'>,47:16] +[@333,1826:1826='x',,47:20] +[@334,1828:1828='=',<'='>,47:22] +[@335,1830:1830='(',<'('>,47:24] +[@336,1831:1840='stackalloc',<'stackalloc'>,47:25] +[@337,1842:1844='int',<'int'>,47:36] +[@338,1845:1845='[',<'['>,47:39] +[@339,1846:1846='3',,47:40] +[@340,1847:1847=']',<']'>,47:41] +[@341,1848:1848=')',<')'>,47:42] +[@342,1849:1849='[',<'['>,47:43] +[@343,1850:1850='2',,47:44] +[@344,1851:1851=']',<']'>,47:45] +[@345,1852:1852=';',<';'>,47:46] +[@346,1944:1946='int',<'int'>,50:16] +[@347,1948:1948='*',<'*'>,50:20] +[@348,1949:1949='q',,50:21] +[@349,1951:1951='=',<'='>,50:23] +[@350,1953:1962='stackalloc',<'stackalloc'>,50:25] +[@351,1964:1966='int',<'int'>,50:36] +[@352,1967:1967='[',<'['>,50:39] +[@353,1968:1968='3',,50:40] +[@354,1969:1969=']',<']'>,50:41] +[@355,1971:1971='{',<'{'>,50:43] +[@356,1973:1973='-',<'-'>,50:45] +[@357,1974:1975='10',,50:46] +[@358,1976:1976=',',<','>,50:48] +[@359,1978:1978='-',<'-'>,50:50] +[@360,1979:1980='15',,50:51] +[@361,1981:1981=',',<','>,50:53] +[@362,1983:1983='-',<'-'>,50:55] +[@363,1984:1985='30',,50:56] +[@364,1987:1987='}',<'}'>,50:59] +[@365,1988:1988=';',<';'>,50:60] +[@366,2054:2056='var',<'var'>,52:16] +[@367,2058:2058='y',,52:20] +[@368,2060:2060='=',<'='>,52:22] +[@369,2062:2071='stackalloc',<'stackalloc'>,52:24] +[@370,2073:2075='int',<'int'>,52:35] +[@371,2076:2076='[',<'['>,52:38] +[@372,2077:2077='3',,52:39] +[@373,2078:2078=']',<']'>,52:40] +[@374,2080:2080='{',<'{'>,52:42] +[@375,2082:2082='-',<'-'>,52:44] +[@376,2083:2084='10',,52:45] +[@377,2085:2085=',',<','>,52:47] +[@378,2087:2087='-',<'-'>,52:49] +[@379,2088:2089='15',,52:50] +[@380,2090:2090=',',<','>,52:52] +[@381,2092:2092='-',<'-'>,52:54] +[@382,2093:2094='30',,52:55] +[@383,2096:2096='}',<'}'>,52:58] +[@384,2097:2097='[',<'['>,52:59] +[@385,2098:2098='2',,52:60] +[@386,2099:2099=']',<']'>,52:61] +[@387,2100:2100=';',<';'>,52:62] +[@388,2148:2148='}',<'}'>,53:12] +[@389,2158:2158='}',<'}'>,54:8] +[@390,2164:2164='}',<'}'>,55:4] +[@391,2166:2166='}',<'}'>,56:0] +[@392,2167:2166='',,56:1] diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.tree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.tree.red.txt new file mode 100644 index 000000000..70a9f0e12 --- /dev/null +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.tree.red.txt @@ -0,0 +1 @@ +(prog (compilation_unit (namespace_declaration namespace (qualified_identifier (identifier AccessWithCreation)) (namespace_body { (namespace_member_declaration (class_declaration (class_modifier internal) class (identifier AccessWithCreationSample) (class_body { (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier static)) (return_type void) (method_header (member_name (identifier ElementAccess)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier x0) = (expression (element_access (primary_expression (array_creation_expression new (non_array_type (class_type string)) [ (expression_list (literal 4)) ])) [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier x) = (expression (element_access (primary_expression (parenthesized_expression ( (expression (array_creation_expression new (non_array_type (class_type string)) [ (expression_list (literal 4)) ])) ))) [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier y) = (expression (element_access (primary_expression (array_creation_expression new (non_array_type (class_type string)) [ (expression_list (literal 4)) ] (array_initializer { (variable_initializer_list (variable_initializer (literal "ant")) , (variable_initializer (literal "bat")) , (variable_initializer (literal "cat")) , (variable_initializer (literal "dog"))) }))) [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier z) = (expression (element_access (primary_expression (array_creation_expression new (array_type (non_array_type (class_type string)) (rank_specifier [ ])) (array_initializer { (variable_initializer_list (variable_initializer (literal "ant")) , (variable_initializer (literal "bat")) , (variable_initializer (literal "cat")) , (variable_initializer (literal "dog"))) }))) [ (argument_list (literal 3)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier s) = (expression (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 4)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (namespace_or_type_name (identifier Span) (type_argument_list < (type_argument (integral_type int)) >))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier s) = (local_variable_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 4)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier t) = (local_variable_initializer (element_access (primary_expression (identifier s)) [ (argument_list (literal 2)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier u) = (local_variable_initializer (null_conditional_element_access (primary_expression (identifier s)) ? [ (argument_list (literal 1)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier p0) = (expression (element_access (primary_expression (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 4)) ])) [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier p) = (expression (element_access (primary_expression (parenthesized_expression ( (expression (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 4)) ])) ))) [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier q) = (expression (element_access (primary_expression (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (constant_expression (literal 4)) ] (stackalloc_initializer { (stackalloc_initializer_element_list (stackalloc_element_initializer (literal 0)) , (stackalloc_element_initializer (literal 1)) , (stackalloc_element_initializer (literal 2)) , (stackalloc_element_initializer (literal 3))) }))) [ (argument_list (literal 3)) ]))))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier static)) (return_type void) (method_header (member_name (identifier NullConditionalElementAccess)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier x0) = (expression (null_conditional_element_access (primary_expression (array_creation_expression new (non_array_type (class_type string)) [ (expression_list (literal 4)) ])) ? [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier x) = (expression (null_conditional_element_access (primary_expression (parenthesized_expression ( (expression (array_creation_expression new (non_array_type (class_type string)) [ (expression_list (literal 4)) ])) ))) ? [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier y) = (expression (null_conditional_element_access (primary_expression (array_creation_expression new (non_array_type (class_type string)) [ (expression_list (literal 4)) ] (array_initializer { (variable_initializer_list (variable_initializer (literal "ant")) , (variable_initializer (literal "bat")) , (variable_initializer (literal "cat")) , (variable_initializer (literal "dog"))) }))) ? [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier z) = (expression (null_conditional_element_access (primary_expression (array_creation_expression new (array_type (non_array_type (class_type string)) (rank_specifier [ ])) (array_initializer { (variable_initializer_list (variable_initializer (literal "ant")) , (variable_initializer (literal "bat")) , (variable_initializer (literal "cat")) , (variable_initializer (literal "dog"))) }))) ? [ (argument_list (literal 3)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier p0) = (expression (null_conditional_element_access (primary_expression (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 4)) ])) ? [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier p) = (expression (null_conditional_element_access (primary_expression (parenthesized_expression ( (expression (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 4)) ])) ))) ? [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier q) = (expression (null_conditional_element_access (primary_expression (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (constant_expression (literal 4)) ] (stackalloc_initializer { (stackalloc_initializer_element_list (stackalloc_element_initializer (literal 0)) , (stackalloc_element_initializer (literal 1)) , (stackalloc_element_initializer (literal 2)) , (stackalloc_element_initializer (literal 3))) }))) ? [ (argument_list (literal 3)) ]))))) ;))) })))) (class_member_declaration (method_declaration (method_modifiers (ref_method_modifier static)) (return_type void) (method_header (member_name (identifier UnsafeElementAccess)) ( )) (method_body (block { (statement_list (unsafe_statement unsafe (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (pointer_type (value_type (integral_type int)) *)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier p) = (local_variable_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 3)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier n) = (local_variable_initializer (element_access (primary_expression (identifier p)) [ (argument_list (literal 2)) ])))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier x0) = (expression (element_access (primary_expression (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 3)) ])) [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier x) = (expression (element_access (primary_expression (parenthesized_expression ( (expression (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (expression (literal 3)) ])) ))) [ (argument_list (literal 2)) ]))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (pointer_type (value_type (integral_type int)) *)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier q) = (local_variable_initializer (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (constant_expression (literal 3)) ] (stackalloc_initializer { (stackalloc_initializer_element_list (stackalloc_element_initializer (unary_expression - (unary_expression (literal 10)))) , (stackalloc_element_initializer (unary_expression - (unary_expression (literal 15)))) , (stackalloc_element_initializer (unary_expression - (unary_expression (literal 30))))) }))))))) ;)) (statement (declaration_statement (local_variable_declaration (implicitly_typed_local_variable_declaration var (implicitly_typed_local_variable_declarator (identifier y) = (expression (element_access (primary_expression (stackalloc_expression stackalloc (unmanaged_type (integral_type int)) [ (constant_expression (literal 3)) ] (stackalloc_initializer { (stackalloc_initializer_element_list (stackalloc_element_initializer (unary_expression - (unary_expression (literal 10)))) , (stackalloc_element_initializer (unary_expression - (unary_expression (literal 15)))) , (stackalloc_element_initializer (unary_expression - (unary_expression (literal 30))))) }))) [ (argument_list (literal 2)) ]))))) ;))) }))) })))) }))) })))) diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.tree.svg b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.tree.svg new file mode 100644 index 000000000..16f73aa4b --- /dev/null +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/Reference/sample.tree.svg @@ -0,0 +1,4595 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +, + + + +declaration_statement + + + +literal + + + +stackalloc_initializer + + + +variable_initializer + + + +statement + + + +implicitly_typed_local_variable_declarator + + + +stackalloc_element_initializer + + + +parenthesized_expression + + + +implicitly_typed_local_variable_declaration + + + +primary_expression + + + +expression + + + +; + + + +var + + + +2 + + + +implicitly_typed_local_variable_declaration + + + +stackalloc + + + +, + + + +literal + + + +literal + + + +variable_initializer_list + + + += + + + +stackalloc_element_initializer + + + +implicitly_typed_local_variable_declaration + + + +{ + + + +; + + + +value_type + + + +variable_initializer + + + +implicitly_typed_local_variable_declaration + + + +t + + + +var + + + +stackalloc_element_initializer + + + +local_variable_declaration + + + +y + + + +implicitly_typed_local_variable_declarator + + + +non_array_type + + + +[ + + + +expression + + + +; + + + +stackalloc_expression + + + +void + + + +type + + + +stackalloc + + + +> + + + +] + + + +literal + + + += + + + +[ + + + +primary_expression + + + +stackalloc_expression + + + +local_variable_declaration + + + +30 + + + +y + + + +null_conditional_element_access + + + +p0 + + + +constant_expression + + + +4 + + + +stackalloc + + + +int + + + +argument_list + + + +literal + + + +p + + + +block + + + +? + + + +local_variable_declaration + + + +expression + + + +implicitly_typed_local_variable_declaration + + + +expression + + + +primary_expression + + + +constant_expression + + + +local_variable_declaration + + + +expression + + + +literal + + + +3 + + + +new + + + +, + + + +s + + + +] + + + +) + + + +15 + + + +method_modifiers + + + +namespace + + + +, + + + += + + + +- + + + +s + + + +argument_list + + + +int + + + +primary_expression + + + +2 + + + +local_variable_declaration + + + +ref_method_modifier + + + +implicitly_typed_local_variable_declarator + + + +] + + + +stackalloc + + + +primary_expression + + + +ref_method_modifier + + + +? + + + +] + + + +identifier + + + +ref_method_modifier + + + +implicitly_typed_local_variable_declarator + + + +stackalloc_element_initializer + + + +integral_type + + + +local_variable_initializer + + + +pointer_type + + + +type + + + +argument_list + + + +[ + + + +[ + + + +"bat" + + + +stackalloc + + + +stackalloc_element_initializer + + + +element_access + + + +int + + + +expression + + + +literal + + + +] + + + +implicitly_typed_local_variable_declarator + + + +method_header + + + +identifier + + + +( + + + +literal + + + +; + + + +primary_expression + + + +method_declaration + + + +identifier + + + +var + + + +class_type + + + +expression + + + +[ + + + +; + + + +4 + + + +unary_expression + + + +] + + + += + + + +declaration_statement + + + +array_creation_expression + + + +[ + + + +{ + + + +stackalloc_expression + + + +] + + + +class + + + +return_type + + + +integral_type + + + +1 + + + +expression + + + +type + + + +literal + + + +var + + + +stackalloc_expression + + + +implicitly_typed_local_variable_declarator + + + +identifier + + + +integral_type + + + +stackalloc + + + +declaration_statement + + + +parenthesized_expression + + + +literal + + + +expression + + + +constant_expression + + + +unary_expression + + + += + + + +argument_list + + + +literal + + + +explicitly_typed_local_variable_declarators + + + +identifier + + + +return_type + + + +variable_initializer + + + +variable_initializer_list + + + +element_access + + + +element_access + + + +} + + + +unary_expression + + + +; + + + +expression + + + +explicitly_typed_local_variable_declarators + + + +"dog" + + + +statement + + + +4 + + + +local_variable_declaration + + + +implicitly_typed_local_variable_declaration + + + +explicitly_typed_local_variable_declarator + + + +type + + + +[ + + + +[ + + + +var + + + +stackalloc_element_initializer + + + +stackalloc + + + +statement + + + +10 + + + +literal + + + += + + + +declaration_statement + + + += + + + +string + + + +implicitly_typed_local_variable_declaration + + + +expression + + + +[ + + + +stackalloc_element_initializer + + + +integral_type + + + +[ + + + +] + + + +q + + + +unmanaged_type + + + +expression + + + +local_variable_declaration + + + +implicitly_typed_local_variable_declarator + + + +var + + + +30 + + + +; + + + +int + + + +"cat" + + + +int + + + +string + + + +member_name + + + +NullConditionalElementAccess + + + +literal + + + +identifier + + + +argument_list + + + +static + + + +declaration_statement + + + +statement + + + +non_array_type + + + +s + + + +, + + + +literal + + + +local_variable_declaration + + + +element_access + + + +; + + + +{ + + + +integral_type + + + +] + + + +class_member_declaration + + + +variable_initializer + + + +] + + + +unsafe + + + +implicitly_typed_local_variable_declarator + + + +expression + + + +"dog" + + + +n + + + +identifier + + + +AccessWithCreation + + + +[ + + + +identifier + + + +explicitly_typed_local_variable_declarator + + + +( + + + +2 + + + +method_declaration + + + +{ + + + += + + + +type + + + +* + + + +declaration_statement + + + +stackalloc_expression + + + +literal + + + +local_variable_initializer + + + +argument_list + + + +literal + + + +primary_expression + + + +identifier + + + +p + + + +array_creation_expression + + + +declaration_statement + + + +expression + + + +element_access + + + +literal + + + +expression + + + +method_modifiers + + + +primary_expression + + + +"ant" + + + +2 + + + +primary_expression + + + +value_type + + + +declaration_statement + + + +2 + + + +] + + + +, + + + +UnsafeElementAccess + + + +var + + + +2 + + + +] + + + +stackalloc_element_initializer + + + +class_member_declaration + + + +stackalloc_expression + + + +literal + + + +{ + + + +[ + + + +local_variable_declaration + + + +explicitly_typed_local_variable_declarator + + + +q + + + +expression + + + +primary_expression + + + +implicitly_typed_local_variable_declarator + + + +block + + + +integral_type + + + +unmanaged_type + + + +literal + + + +variable_initializer + + + +literal + + + +{ + + + +- + + + +{ + + + +] + + + +statement + + + +internal + + + +literal + + + +unary_expression + + + +new + + + +"ant" + + + +integral_type + + + +unmanaged_type + + + +array_initializer + + + +4 + + + +identifier + + + +array_initializer + + + +stackalloc_element_initializer + + + +} + + + +3 + + + +non_array_type + + + +string + + + +stackalloc_expression + + + +int + + + +; + + + +integral_type + + + +namespace_member_declaration + + + +} + + + +statement_list + + + +new + + + +) + + + +argument_list + + + +identifier + + + +literal + + + +"bat" + + + +class_type + + + +declaration_statement + + + +class_modifier + + + +literal + + + +stackalloc_expression + + + +local_variable_initializer + + + +string + + + +element_access + + + +block + + + +AccessWithCreationSample + + + +implicitly_typed_local_variable_declarator + + + +x + + + +declaration_statement + + + +primary_expression + + + += + + + +argument_list + + + +z + + + +literal + + + +? + + + +unmanaged_type + + + +} + + + +stackalloc_expression + + + +statement_list + + + +class_type + + + +stackalloc_element_initializer + + + +z + + + +{ + + + +statement + + + +"ant" + + + +[ + + + +int + + + +var + + + +literal + + + +statement + + + +non_array_type + + + += + + + +literal + + + +variable_initializer + + + +stackalloc_expression + + + +prog + + + +] + + + +10 + + + +argument_list + + + +] + + + +, + + + +literal + + + +integral_type + + + +[ + + + +static + + + +array_creation_expression + + + +literal + + + +3 + + + +explicitly_typed_local_variable_declaration + + + +, + + + +[ + + + +- + + + +, + + + +literal + + + +literal + + + +, + + + +3 + + + +4 + + + +local_variable_declaration + + + +expression + + + +int + + + +"bat" + + + +[ + + + +integral_type + + + +int + + + += + + + +expression_list + + + +literal + + + +x + + + +local_variable_declaration + + + +"cat" + + + +; + + + +, + + + +3 + + + +int + + + +) + + + +identifier + + + +[ + + + +4 + + + +class_type + + + +implicitly_typed_local_variable_declaration + + + +explicitly_typed_local_variable_declarators + + + +statement + + + +[ + + + +local_variable_declaration + + + +"cat" + + + +array_creation_expression + + + += + + + +statement_list + + + +implicitly_typed_local_variable_declaration + + + +( + + + +literal + + + +; + + + +identifier + + + +] + + + +] + + + +literal + + + +[ + + + +identifier + + + +y + + + +var + + + +] + + + +class_body + + + +] + + + +expression + + + +namespace_declaration + + + += + + + +identifier + + + +array_creation_expression + + + +] + + + +primary_expression + + + +Span + + + +expression + + + +string + + + +declaration_statement + + + +non_array_type + + + +0 + + + +x0 + + + +] + + + +stackalloc_element_initializer + + + +3 + + + +local_variable_declaration + + + +[ + + + +implicitly_typed_local_variable_declaration + + + +literal + + + +primary_expression + + + +variable_initializer + + + +type + + + +var + + + +literal + + + +explicitly_typed_local_variable_declarators + + + +class_member_declaration + + + +integral_type + + + +literal + + + +* + + + +; + + + +implicitly_typed_local_variable_declarator + + + +var + + + +} + + + +var + + + +unary_expression + + + +declaration_statement + + + +rank_specifier + + + +variable_initializer + + + +statement + + + +p + + + +explicitly_typed_local_variable_declaration + + + +string + + + +parenthesized_expression + + + +implicitly_typed_local_variable_declaration + + + +; + + + +variable_initializer + + + +; + + + +null_conditional_element_access + + + +2 + + + +pointer_type + + + +void + + + +"bat" + + + +( + + + +local_variable_initializer + + + +] + + + +local_variable_initializer + + + +[ + + + +4 + + + +variable_initializer_list + + + +unmanaged_type + + + +unary_expression + + + +[ + + + +implicitly_typed_local_variable_declaration + + + +explicitly_typed_local_variable_declaration + + + +string + + + +] + + + +[ + + + +local_variable_declaration + + + +literal + + + +2 + + + +new + + + +stackalloc_expression + + + +implicitly_typed_local_variable_declarator + + + +int + + + +literal + + + +statement + + + +explicitly_typed_local_variable_declaration + + + +argument_list + + + +declaration_statement + + + +identifier + + + +array_initializer + + + +} + + + +implicitly_typed_local_variable_declaration + + + +implicitly_typed_local_variable_declarator + + + +argument_list + + + +var + + + +variable_initializer + + + +expression + + + +array_creation_expression + + + +expression + + + +[ + + + +type_argument + + + +explicitly_typed_local_variable_declarator + + + +expression + + + +] + + + +4 + + + +explicitly_typed_local_variable_declarator + + + +class_type + + + += + + + +argument_list + + + +, + + + +{ + + + +expression + + + +statement + + + +stackalloc + + + +declaration_statement + + + +u + + + +local_variable_declaration + + + +literal + + + +identifier + + + +type_argument_list + + + +1 + + + +) + + + +parenthesized_expression + + + +unmanaged_type + + + +local_variable_declaration + + + +{ + + + +2 + + + +implicitly_typed_local_variable_declaration + + + +identifier + + + +[ + + + +15 + + + +; + + + +[ + + + +argument_list + + + +literal + + + +expression_list + + + += + + + += + + + +expression_list + + + +3 + + + +; + + + +literal + + + +explicitly_typed_local_variable_declarators + + + +literal + + + +} + + + +2 + + + +} + + + +identifier + + + +identifier + + + +declaration_statement + + + +integral_type + + + +} + + + +? + + + +element_access + + + +p0 + + + +int + + + +new + + + +array_creation_expression + + + +method_body + + + +identifier + + + +literal + + + +] + + + +; + + + +integral_type + + + +0 + + + +stackalloc_initializer_element_list + + + +method_header + + + +statement + + + +var + + + +} + + + +stackalloc_expression + + + +return_type + + + +statement + + + +literal + + + +; + + + +string + + + +literal + + + +stackalloc_element_initializer + + + +null_conditional_element_access + + + +) + + + +unsafe_statement + + + +[ + + + +int + + + +variable_initializer + + + +array_creation_expression + + + +stackalloc + + + +? + + + +integral_type + + + +local_variable_declaration + + + +expression + + + +] + + + +statement_list + + + +unary_expression + + + +primary_expression + + + +void + + + +"dog" + + + +declaration_statement + + + +expression_list + + + +variable_initializer_list + + + +block + + + +[ + + + +3 + + + +argument_list + + + += + + + +stackalloc_initializer + + + +stackalloc + + + +expression + + + +implicitly_typed_local_variable_declarator + + + +] + + + +stackalloc_initializer_element_list + + + +var + + + +{ + + + +array_type + + + +member_name + + + +unary_expression + + + +variable_initializer + + + +) + + + +unmanaged_type + + + +declaration_statement + + + +literal + + + +] + + + +} + + + +statement + + + +rank_specifier + + + +statement + + + +x + + + +class_type + + + +s + + + +stackalloc + + + +identifier + + + +] + + + +explicitly_typed_local_variable_declaration + + + +; + + + +stackalloc + + + +literal + + + +new + + + +literal + + + +literal + + + +[ + + + +unmanaged_type + + + +] + + + +4 + + + +statement + + + +unary_expression + + + +null_conditional_element_access + + + +class_type + + + +non_array_type + + + +unmanaged_type + + + +int + + + +2 + + + +declaration_statement + + + +expression_list + + + +3 + + + +identifier + + + +literal + + + +statement + + + +[ + + + +; + + + +array_type + + + +literal + + + +primary_expression + + + +identifier + + + +implicitly_typed_local_variable_declaration + + + +, + + + +class_type + + + +literal + + + +( + + + +unary_expression + + + +non_array_type + + + +} + + + +declaration_statement + + + +element_access + + + +variable_initializer + + + +new + + + +local_variable_declaration + + + +] + + + +integral_type + + + +- + + + +{ + + + +] + + + +2 + + + +] + + + +int + + + +local_variable_declaration + + + +declaration_statement + + + +] + + + +unmanaged_type + + + +( + + + +4 + + + +namespace_or_type_name + + + +? + + + += + + + += + + + +ElementAccess + + + +] + + + +implicitly_typed_local_variable_declarator + + + += + + + +literal + + + +primary_expression + + + +non_array_type + + + +2 + + + +} + + + +local_variable_declaration + + + +primary_expression + + + +identifier + + + +3 + + + +] + + + +implicitly_typed_local_variable_declaration + + + +implicitly_typed_local_variable_declaration + + + +, + + + +implicitly_typed_local_variable_declaration + + + +declaration_statement + + + +literal + + + +[ + + + +local_variable_declaration + + + +stackalloc_initializer + + + +literal + + + +member_name + + + +expression + + + +2 + + + +) + + + +var + + + +literal + + + += + + + +, + + + +parenthesized_expression + + + +identifier + + + +} + + + +stackalloc_element_initializer + + + +int + + + +declaration_statement + + + +method_header + + + +stackalloc_element_initializer + + + +class_declaration + + + +statement + + + +literal + + + +implicitly_typed_local_variable_declarator + + + +4 + + + +expression + + + +stackalloc + + + +literal + + + +, + + + +4 + + + +stackalloc_initializer_element_list + + + +null_conditional_element_access + + + +local_variable_initializer + + + +integral_type + + + +implicitly_typed_local_variable_declarator + + + +expression + + + +static + + + +literal + + + +null_conditional_element_access + + + +[ + + + +x0 + + + +argument_list + + + +method_modifiers + + + +[ + + + +implicitly_typed_local_variable_declarator + + + +argument_list + + + +namespace_body + + + +[ + + + += + + + +declaration_statement + + + +< + + + +identifier + + + +statement + + + +int + + + +"dog" + + + +integral_type + + + +argument_list + + + +int + + + +; + + + += + + + +explicitly_typed_local_variable_declarators + + + +primary_expression + + + +4 + + + +- + + + +local_variable_declaration + + + +p + + + +int + + + +expression + + + +identifier + + + +array_initializer + + + +local_variable_declaration + + + +method_body + + + +2 + + + +[ + + + +"ant" + + + +stackalloc_expression + + + +( + + + +literal + + + +method_declaration + + + +identifier + + + +q + + + +statement + + + +[ + + + +element_access + + + +primary_expression + + + +unary_expression + + + +; + + + +statement + + + +, + + + +; + + + +integral_type + + + +[ + + + +[ + + + +expression + + + +( + + + +element_access + + + +literal + + + +variable_initializer + + + +stackalloc_initializer_element_list + + + +, + + + +variable_initializer + + + +[ + + + +[ + + + +- + + + +x0 + + + +compilation_unit + + + +explicitly_typed_local_variable_declaration + + + +) + + + +? + + + +literal + + + +] + + + +, + + + +{ + + + +null_conditional_element_access + + + +literal + + + +3 + + + +, + + + +, + + + +local_variable_declaration + + + += + + + +unmanaged_type + + + +integral_type + + + +unary_expression + + + +explicitly_typed_local_variable_declarator + + + +unmanaged_type + + + +element_access + + + +literal + + + +literal + + + +{ + + + +4 + + + +var + + + +element_access + + + +] + + + +variable_initializer + + + +literal + + + +var + + + +[ + + + +new + + + +stackalloc_initializer + + + +expression + + + +expression_list + + + +literal + + + +"cat" + + + +statement + + + +expression + + + +] + + + +] + + + +primary_expression + + + +identifier + + + +] + + + +literal + + + +2 + + + +null_conditional_element_access + + + +identifier + + + +identifier + + + +literal + + + +qualified_identifier + + + +identifier + + + +; + + + +1 + + + +unmanaged_type + + + +statement + + + +argument_list + + + +2 + + + +statement + + + +, + + + +? + + + +constant_expression + + + +argument_list + + + +argument_list + + + +declaration_statement + + + +method_body + + \ No newline at end of file diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/_Sample_Options.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/_Sample_Options.txt new file mode 100644 index 000000000..c3810f510 --- /dev/null +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/_Sample_Options.txt @@ -0,0 +1 @@ +-ms Rules -rt \ No newline at end of file diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/sample.cs b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/sample.cs new file mode 100644 index 000000000..c09c57232 --- /dev/null +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Element Access/sample.cs @@ -0,0 +1,56 @@ +namespace AccessWithCreation +{ + internal class AccessWithCreationSample + { + static void ElementAccess() + { + var x0 = new string[4][2]; // semantic error + var x = (new string[4])[2]; + + var y = new string[4] { "ant", "bat", "cat", "dog" }[2]; + var z = new string[] { "ant", "bat", "cat", "dog" }[3]; + + var s = stackalloc int[4]; // syntactically valid but only valid in unsafe context + Span s = stackalloc int[4]; // valid in safe context + int t = s[2]; + int u = s?[1]; // syntactically valid but semantically invalid + // as Span is not a nullable + + var p0 = stackalloc int[4][2]; // semantic error + var p = (stackalloc int[4])[2]; + var q = stackalloc int[4] { 0, 1, 2, 3 }[3]; + } + + static void NullConditionalElementAccess() + { + var x0 = new string[4]?[2]; // semantic error + var x = (new string[4])?[2]; + + var y = new string[4] { "ant", "bat", "cat", "dog" }?[2]; + var z = new string[] { "ant", "bat", "cat", "dog" }?[3]; + + // safe context, stackalloc is Span + var p0 = stackalloc int[4]?[2]; // semantic error + var p = (stackalloc int[4])?[2]; // type error? + var q = stackalloc int[4] { 0, 1, 2, 3 }?[3]; // type error? + } + + static void UnsafeElementAccess() + { + unsafe + { + // Memory uninitialized + int* p = stackalloc int[3]; // stackalloc type is int* + int n = p[2]; + + var x0 = stackalloc int[3][2]; // semantic error + var x = (stackalloc int[3])[2]; // stackalloc type is Span + + // Memory initialized + int *q = stackalloc int[3] { -10, -15, -30 }; // stackalloc type is int* + + var y = stackalloc int[3] { -10, -15, -30 }[2]; // stackalloc type is Span + } + } + } +} \ No newline at end of file diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.gruntree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.gruntree.red.txt index dacf86f6f..75ed0482b 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.gruntree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.gruntree.red.txt @@ -117,7 +117,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_forgiving_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ s @@ -421,11 +421,11 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_forgiving_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_forgiving_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ s @@ -479,7 +479,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_forgiving_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ parenthesized_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( @@ -488,7 +488,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_forgiving_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ s @@ -545,11 +545,11 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_forgiving_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_forgiving_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ parenthesized_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( @@ -611,7 +611,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_forgiving_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ parenthesized_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( @@ -620,7 +620,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_forgiving_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ parenthesized_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( @@ -685,7 +685,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_forgiving_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ parenthesized_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ( @@ -706,7 +706,7 @@ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ null_forgiving_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ -⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_no_array_creation_expression +⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ primary_expression ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ identifier ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ s diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tokens.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tokens.txt index 9212868f6..96b59501e 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tokens.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tokens.txt @@ -1,105 +1,105 @@ [@0,0:4='class',<'class'>,1:0] [@1,6:24='NullForgivingChecks',,1:6] [@2,26:26='{',<'{'>,2:0] -[@3,32:35='void',<'void'>,3:4] -[@4,37:55='NullForgivingChecks',,3:9] -[@5,56:56='(',<'('>,3:28] -[@6,57:57=')',<')'>,3:29] -[@7,63:63='{',<'{'>,4:4] -[@8,102:107='string',<'string'>,6:6] -[@9,108:108='?',<'?'>,6:12] -[@10,110:110='s',,6:14] -[@11,112:112='=',<'='>,6:16] -[@12,114:117='null',<'null'>,6:18] -[@13,118:118=';',<';'>,6:22] -[@14,126:131='string',<'string'>,7:6] -[@15,133:133='a',,7:13] -[@16,135:135='=',<'='>,7:15] -[@17,137:137='s',,7:17] -[@18,138:138='!',<'!'>,7:18] -[@19,139:139=';',<';'>,7:19] -[@20,200:202='int',<'int'>,10:6] -[@21,204:204='b',,10:10] -[@22,206:206='=',<'='>,10:12] -[@23,208:208='c',,10:14] -[@24,209:209='?',<'?'>,10:15] -[@25,210:210='.',<'.'>,10:16] -[@26,211:211='d',,10:17] -[@27,212:212='.',<'.'>,10:18] -[@28,213:213='e',,10:19] -[@29,214:214=';',<';'>,10:20] -[@30,222:224='int',<'int'>,11:6] -[@31,226:226='b',,11:10] -[@32,228:228='=',<'='>,11:12] -[@33,230:230='c',,11:14] -[@34,231:231='?',<'?'>,11:15] -[@35,232:232='.',<'.'>,11:16] -[@36,233:233='d',,11:17] -[@37,234:234='!',<'!'>,11:18] -[@38,235:235='.',<'.'>,11:19] -[@39,236:236='e',,11:20] -[@40,237:237=';',<';'>,11:21] -[@41,245:247='int',<'int'>,12:6] -[@42,249:249='b',,12:10] -[@43,251:251='=',<'='>,12:12] -[@44,253:253='c',,12:14] -[@45,254:254='?',<'?'>,12:15] -[@46,255:255='.',<'.'>,12:16] -[@47,256:256='d',,12:17] -[@48,257:257='.',<'.'>,12:18] -[@49,258:258='e',,12:19] -[@50,259:259='.',<'.'>,12:20] -[@51,260:260='f',,12:21] -[@52,261:261=';',<';'>,12:22] -[@53,269:271='int',<'int'>,13:6] -[@54,273:273='b',,13:10] -[@55,275:275='=',<'='>,13:12] -[@56,277:277='c',,13:14] -[@57,278:278='?',<'?'>,13:15] -[@58,279:279='.',<'.'>,13:16] -[@59,280:280='d',,13:17] -[@60,281:281='.',<'.'>,13:18] -[@61,282:282='e',,13:19] -[@62,283:283='!',<'!'>,13:20] -[@63,284:284='.',<'.'>,13:21] -[@64,285:285='f',,13:22] -[@65,286:286=';',<';'>,13:23] -[@66,445:450='string',<'string'>,17:6] -[@67,452:452='b',,17:13] -[@68,454:454='=',<'='>,17:15] -[@69,456:456='s',,17:17] -[@70,457:457='!',<'!'>,17:18] -[@71,458:458='!',<'!'>,17:19] -[@72,459:459=';',<';'>,17:20] -[@73,467:472='string',<'string'>,18:6] -[@74,474:474='c',,18:13] -[@75,476:476='=',<'='>,18:15] -[@76,478:478='(',<'('>,18:17] -[@77,479:479='s',,18:18] -[@78,480:480='!',<'!'>,18:19] -[@79,481:481=')',<')'>,18:20] -[@80,482:482='!',<'!'>,18:21] -[@81,483:483=';',<';'>,18:22] -[@82,491:496='string',<'string'>,19:6] -[@83,498:498='d',,19:13] -[@84,500:500='=',<'='>,19:15] -[@85,502:502='(',<'('>,19:17] -[@86,503:503='s',,19:18] -[@87,504:504=')',<')'>,19:19] -[@88,505:505='!',<'!'>,19:20] -[@89,506:506='!',<'!'>,19:21] -[@90,507:507=';',<';'>,19:22] -[@91,515:520='string',<'string'>,20:6] -[@92,522:522='e',,20:13] -[@93,524:524='=',<'='>,20:15] -[@94,526:526='(',<'('>,20:17] -[@95,527:527='(',<'('>,20:18] -[@96,528:528='s',,20:19] -[@97,529:529=')',<')'>,20:20] -[@98,530:530='!',<'!'>,20:21] -[@99,531:531=')',<')'>,20:22] -[@100,532:532='!',<'!'>,20:23] -[@101,533:533=';',<';'>,20:24] +[@3,31:34='void',<'void'>,3:3] +[@4,36:54='NullForgivingChecks',,3:8] +[@5,55:55='(',<'('>,3:27] +[@6,56:56=')',<')'>,3:28] +[@7,61:61='{',<'{'>,4:3] +[@8,100:105='string',<'string'>,6:6] +[@9,106:106='?',<'?'>,6:12] +[@10,108:108='s',,6:14] +[@11,110:110='=',<'='>,6:16] +[@12,112:115='null',<'null'>,6:18] +[@13,116:116=';',<';'>,6:22] +[@14,124:129='string',<'string'>,7:6] +[@15,131:131='a',,7:13] +[@16,133:133='=',<'='>,7:15] +[@17,135:135='s',,7:17] +[@18,136:136='!',<'!'>,7:18] +[@19,137:137=';',<';'>,7:19] +[@20,198:200='int',<'int'>,10:6] +[@21,202:202='b',,10:10] +[@22,204:204='=',<'='>,10:12] +[@23,206:206='c',,10:14] +[@24,207:207='?',<'?'>,10:15] +[@25,208:208='.',<'.'>,10:16] +[@26,209:209='d',,10:17] +[@27,210:210='.',<'.'>,10:18] +[@28,211:211='e',,10:19] +[@29,212:212=';',<';'>,10:20] +[@30,220:222='int',<'int'>,11:6] +[@31,224:224='b',,11:10] +[@32,226:226='=',<'='>,11:12] +[@33,228:228='c',,11:14] +[@34,229:229='?',<'?'>,11:15] +[@35,230:230='.',<'.'>,11:16] +[@36,231:231='d',,11:17] +[@37,232:232='!',<'!'>,11:18] +[@38,233:233='.',<'.'>,11:19] +[@39,234:234='e',,11:20] +[@40,235:235=';',<';'>,11:21] +[@41,243:245='int',<'int'>,12:6] +[@42,247:247='b',,12:10] +[@43,249:249='=',<'='>,12:12] +[@44,251:251='c',,12:14] +[@45,252:252='?',<'?'>,12:15] +[@46,253:253='.',<'.'>,12:16] +[@47,254:254='d',,12:17] +[@48,255:255='.',<'.'>,12:18] +[@49,256:256='e',,12:19] +[@50,257:257='.',<'.'>,12:20] +[@51,258:258='f',,12:21] +[@52,259:259=';',<';'>,12:22] +[@53,267:269='int',<'int'>,13:6] +[@54,271:271='b',,13:10] +[@55,273:273='=',<'='>,13:12] +[@56,275:275='c',,13:14] +[@57,276:276='?',<'?'>,13:15] +[@58,277:277='.',<'.'>,13:16] +[@59,278:278='d',,13:17] +[@60,279:279='.',<'.'>,13:18] +[@61,280:280='e',,13:19] +[@62,281:281='!',<'!'>,13:20] +[@63,282:282='.',<'.'>,13:21] +[@64,283:283='f',,13:22] +[@65,284:284=';',<';'>,13:23] +[@66,443:448='string',<'string'>,17:6] +[@67,450:450='b',,17:13] +[@68,452:452='=',<'='>,17:15] +[@69,454:454='s',,17:17] +[@70,455:455='!',<'!'>,17:18] +[@71,456:456='!',<'!'>,17:19] +[@72,457:457=';',<';'>,17:20] +[@73,465:470='string',<'string'>,18:6] +[@74,472:472='c',,18:13] +[@75,474:474='=',<'='>,18:15] +[@76,476:476='(',<'('>,18:17] +[@77,477:477='s',,18:18] +[@78,478:478='!',<'!'>,18:19] +[@79,479:479=')',<')'>,18:20] +[@80,480:480='!',<'!'>,18:21] +[@81,481:481=';',<';'>,18:22] +[@82,489:494='string',<'string'>,19:6] +[@83,496:496='d',,19:13] +[@84,498:498='=',<'='>,19:15] +[@85,500:500='(',<'('>,19:17] +[@86,501:501='s',,19:18] +[@87,502:502=')',<')'>,19:19] +[@88,503:503='!',<'!'>,19:20] +[@89,504:504='!',<'!'>,19:21] +[@90,505:505=';',<';'>,19:22] +[@91,513:518='string',<'string'>,20:6] +[@92,520:520='e',,20:13] +[@93,522:522='=',<'='>,20:15] +[@94,524:524='(',<'('>,20:17] +[@95,525:525='(',<'('>,20:18] +[@96,526:526='s',,20:19] +[@97,527:527=')',<')'>,20:20] +[@98,528:528='!',<'!'>,20:21] +[@99,529:529=')',<')'>,20:22] +[@100,530:530='!',<'!'>,20:23] +[@101,531:531=';',<';'>,20:24] [@102,628:633='string',<'string'>,23:6] [@103,635:635='f',,23:13] [@104,637:637='=',<'='>,23:15] @@ -111,6 +111,6 @@ [@110,647:647=')',<')'>,23:25] [@111,648:648='!',<'!'>,23:26] [@112,649:649=';',<';'>,23:27] -[@113,656:656='}',<'}'>,25:4] -[@114,658:658='}',<'}'>,26:0] -[@115,659:658='',,26:1] +[@113,654:654='}',<'}'>,24:3] +[@114,656:656='}',<'}'>,25:0] +[@115,657:656='',,25:1] diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tree.red.txt b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tree.red.txt index a11c9427d..57d428346 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tree.red.txt +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tree.red.txt @@ -1 +1 @@ -(prog (compilation_unit (class_declaration class (identifier NullForgivingChecks) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier NullForgivingChecks)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (nullable_reference_type (non_nullable_reference_type (class_type string)) (nullable_type_annotation ?))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier s) = (local_variable_initializer (null_literal null)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (null_forgiving_expression (primary_no_array_creation_expression (identifier s)) (null_forgiving_operator !))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (null_conditional_member_access (primary_expression (identifier c)) ? . (identifier d) (dependent_access . (identifier e)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (null_conditional_member_access (primary_expression (identifier c)) ? . (identifier d) (null_forgiving_operator !) (dependent_access . (identifier e)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (null_conditional_member_access (primary_expression (identifier c)) ? . (identifier d) (dependent_access . (identifier e)) (dependent_access . (identifier f)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (null_conditional_member_access (primary_expression (identifier c)) ? . (identifier d) (dependent_access . (identifier e)) (null_forgiving_operator !) (dependent_access . (identifier f)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (null_forgiving_expression (primary_no_array_creation_expression (null_forgiving_expression (primary_no_array_creation_expression (identifier s)) (null_forgiving_operator !))) (null_forgiving_operator !))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier c) = (local_variable_initializer (null_forgiving_expression (primary_no_array_creation_expression (parenthesized_expression ( (expression (null_forgiving_expression (primary_no_array_creation_expression (identifier s)) (null_forgiving_operator !))) ))) (null_forgiving_operator !))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier d) = (local_variable_initializer (null_forgiving_expression (primary_no_array_creation_expression (null_forgiving_expression (primary_no_array_creation_expression (parenthesized_expression ( (expression (identifier s)) ))) (null_forgiving_operator !))) (null_forgiving_operator !))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier e) = (local_variable_initializer (null_forgiving_expression (primary_no_array_creation_expression (parenthesized_expression ( (expression (null_forgiving_expression (primary_no_array_creation_expression (parenthesized_expression ( (expression (identifier s)) ))) (null_forgiving_operator !))) ))) (null_forgiving_operator !))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier f) = (local_variable_initializer (null_forgiving_expression (primary_no_array_creation_expression (parenthesized_expression ( (expression (null_coalescing_expression (conditional_or_expression (identifier s)) ?? (null_coalescing_expression (null_forgiving_expression (primary_no_array_creation_expression (identifier s)) (null_forgiving_operator !))))) ))) (null_forgiving_operator !))))))) ;))) })))) })))) +(prog (compilation_unit (class_declaration class (identifier NullForgivingChecks) (class_body { (class_member_declaration (method_declaration method_modifiers (return_type void) (method_header (member_name (identifier NullForgivingChecks)) ( )) (method_body (block { (statement_list (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (nullable_reference_type (non_nullable_reference_type (class_type string)) (nullable_type_annotation ?))) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier s) = (local_variable_initializer (null_literal null)))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier a) = (local_variable_initializer (null_forgiving_expression (primary_expression (identifier s)) (null_forgiving_operator !))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (null_conditional_member_access (primary_expression (identifier c)) ? . (identifier d) (dependent_access . (identifier e)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (null_conditional_member_access (primary_expression (identifier c)) ? . (identifier d) (null_forgiving_operator !) (dependent_access . (identifier e)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (null_conditional_member_access (primary_expression (identifier c)) ? . (identifier d) (dependent_access . (identifier e)) (dependent_access . (identifier f)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (integral_type int)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (null_conditional_member_access (primary_expression (identifier c)) ? . (identifier d) (dependent_access . (identifier e)) (null_forgiving_operator !) (dependent_access . (identifier f)))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier b) = (local_variable_initializer (null_forgiving_expression (primary_expression (null_forgiving_expression (primary_expression (identifier s)) (null_forgiving_operator !))) (null_forgiving_operator !))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier c) = (local_variable_initializer (null_forgiving_expression (primary_expression (parenthesized_expression ( (expression (null_forgiving_expression (primary_expression (identifier s)) (null_forgiving_operator !))) ))) (null_forgiving_operator !))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier d) = (local_variable_initializer (null_forgiving_expression (primary_expression (null_forgiving_expression (primary_expression (parenthesized_expression ( (expression (identifier s)) ))) (null_forgiving_operator !))) (null_forgiving_operator !))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier e) = (local_variable_initializer (null_forgiving_expression (primary_expression (parenthesized_expression ( (expression (null_forgiving_expression (primary_expression (parenthesized_expression ( (expression (identifier s)) ))) (null_forgiving_operator !))) ))) (null_forgiving_operator !))))))) ;)) (statement (declaration_statement (local_variable_declaration (explicitly_typed_local_variable_declaration (type (class_type string)) (explicitly_typed_local_variable_declarators (explicitly_typed_local_variable_declarator (identifier f) = (local_variable_initializer (null_forgiving_expression (primary_expression (parenthesized_expression ( (expression (null_coalescing_expression (conditional_or_expression (identifier s)) ?? (null_coalescing_expression (null_forgiving_expression (primary_expression (identifier s)) (null_forgiving_operator !))))) ))) (null_forgiving_operator !))))))) ;))) })))) })))) diff --git a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tree.svg b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tree.svg index e24c4278c..93d36888f 100644 --- a/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tree.svg +++ b/tools/GrammarTesting/Tests/Parsing/Samples/v8/Null-forgiving/Reference/sample.tree.svg @@ -1,26 +1,26 @@ - - - - - - - - - - - + + + + + + + + + + + - + - - - - - + + + + + @@ -40,7 +40,7 @@ - + @@ -54,1582 +54,1582 @@ - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -s + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +null_conditional_member_access - - -; + + +string - - -d + + +null - - -! + + +explicitly_typed_local_variable_declaration - - -method_declaration + + +integral_type - - -! + + +?? - - -primary_no_array_creation_expression + + +null_forgiving_operator - - -local_variable_initializer + + +local_variable_declaration - - -block + + +method_body + + + +class_type - - + + identifier - - -; + + +e - - -identifier + + +expression - - -explicitly_typed_local_variable_declarators + + +class_type - - -c + + +d - - -c + + +local_variable_initializer - - -c + + +e - - + + null_forgiving_operator - - -method_modifiers - - - -statement + + +type - - + + identifier + + +( + + + +; + + + +a + + + +null_forgiving_expression + + + +statement_list + + + +primary_expression + + + +null_forgiving_expression + + + +c + member_name - - + + declaration_statement - - -explicitly_typed_local_variable_declaration + + +dependent_access - - -declaration_statement + + +; - - -= + + +s - - -local_variable_initializer + + +identifier - - -local_variable_declaration + + +statement - - -primary_no_array_creation_expression + + +primary_expression - - -void + + +parenthesized_expression - - -non_nullable_reference_type + + +NullForgivingChecks - - -! + + +; - - -. + + +explicitly_typed_local_variable_declarator - - -identifier + + +c - - -local_variable_declaration + + +statement - - -= + + +d - - -. + + +type - - -a + + +; - - -statement + + +non_nullable_reference_type - - + + local_variable_declaration - - -null_coalescing_expression + + +. - - -local_variable_initializer + + +! - - -explicitly_typed_local_variable_declarators + + +identifier - - -declaration_statement + + +explicitly_typed_local_variable_declaration - - -type + + +conditional_or_expression + + + +null_forgiving_operator + + + +explicitly_typed_local_variable_declaration - - + + local_variable_declaration - - -integral_type + + +( + + + +primary_expression - - + + type - - -explicitly_typed_local_variable_declarator + + +statement - - -null_forgiving_operator + + +nullable_reference_type - - -statement + + +identifier - - -= + + +null_forgiving_expression - - + + declaration_statement - - + + identifier - - -primary_no_array_creation_expression + + +} - - -identifier + + +primary_expression - - -type + + +e - - -local_variable_initializer + + +explicitly_typed_local_variable_declaration - - -explicitly_typed_local_variable_declarators + + +; - - -null_forgiving_expression + + +explicitly_typed_local_variable_declarator - - -primary_no_array_creation_expression + + +class_type - - -int + + +identifier - - -primary_expression + + +explicitly_typed_local_variable_declaration - - -primary_no_array_creation_expression + + +integral_type - - -class + + +? - - -explicitly_typed_local_variable_declaration + + +! + + + +null_literal - - + + ) - - -local_variable_initializer + + +null_coalescing_expression - - -string + + +explicitly_typed_local_variable_declarators - - -local_variable_initializer + + +identifier - - -explicitly_typed_local_variable_declarators + + +explicitly_typed_local_variable_declarator - - -null_forgiving_expression + + +primary_expression - - -parenthesized_expression + + +explicitly_typed_local_variable_declarators - - -; + + +! - - -explicitly_typed_local_variable_declaration + + +declaration_statement - - -local_variable_declaration + + +f - - -string + + += - - -identifier + + +f - - -dependent_access + + +c - - -d + + +explicitly_typed_local_variable_declarators - - -local_variable_declaration + + +} - - -null_conditional_member_access + + +declaration_statement - - + + identifier - - -( + + +parenthesized_expression - - -null_forgiving_operator + + += - - -declaration_statement + + +. - - -! + + +b - - -s + + +int - - -s + + +identifier - - -. + + +c - - -identifier + + +explicitly_typed_local_variable_declaration - - -null_forgiving_expression + + +type - - -string + + +class_type - - + + local_variable_initializer - - -e + + +type - - -declaration_statement + + +class_declaration - - -explicitly_typed_local_variable_declarator + + +{ - - -primary_no_array_creation_expression + + +d - - -identifier + + +; - - + + local_variable_initializer - - -prog + + +explicitly_typed_local_variable_declarator - - -class_body + + +( - - -expression + + +compilation_unit - - -string + + +explicitly_typed_local_variable_declarators - - -b + + +; - - -?? + + +NullForgivingChecks - - -( - - - -d - - - -null_forgiving_expression + + +! - - + + string - - -! + + +type - - -= + + +b - - -local_variable_declaration + + +block - - -null_forgiving_operator + + +local_variable_initializer - - -explicitly_typed_local_variable_declarators + + +identifier - - + + identifier - - -local_variable_initializer + + +type - - -local_variable_declaration + + +; - - -dependent_access + + +null_forgiving_operator - - -null_conditional_member_access + + +class_type + + + +int - - + + ? - - + + += + + + +null_forgiving_expression + + + parenthesized_expression - - -integral_type + + +primary_expression - - -identifier + + +nullable_type_annotation - - -! + + +b - - -identifier + + +? - - -int + + +explicitly_typed_local_variable_declaration - - -statement + + +explicitly_typed_local_variable_declaration - - -int + + +null_forgiving_operator - - -type + + +identifier - - -class_type + + +prog - - -) + + +s - - -; + + +int - - -identifier + + +local_variable_initializer - - -class_type + + +string - - + + ! - - -return_type + + +explicitly_typed_local_variable_declaration - - -= + + +explicitly_typed_local_variable_declarators - - -c + + +explicitly_typed_local_variable_declarators - - -expression + + +? - - -explicitly_typed_local_variable_declarator + + +statement + + + +dependent_access + + + +method_modifiers + + + +null_forgiving_operator = - - -identifier + + +s - - -null_forgiving_expression + + +! - - -type + + +primary_expression - - -identifier + + +) - - -class_type + + += - - -explicitly_typed_local_variable_declarators + + +explicitly_typed_local_variable_declaration - - + + +identifier + + + identifier - - + + local_variable_declaration - - -= + + +{ - - -e + + +identifier - - + + . - - -primary_no_array_creation_expression - - - -explicitly_typed_local_variable_declarators - - - + + explicitly_typed_local_variable_declarator - - -class_type + + +s - - -explicitly_typed_local_variable_declarator + + +f - - -s + + +method_header - - -null_forgiving_operator + + +local_variable_declaration - - -null_forgiving_expression + + +identifier - - -= + + +declaration_statement - - -string + + +declaration_statement - - -null_forgiving_operator + + +c - - -identifier + + +dependent_access - - -integral_type + + +local_variable_declaration - - -! + + +primary_expression - - -null_forgiving_expression + + +expression - - + + statement - - + + d - - -explicitly_typed_local_variable_declaration - - - -local_variable_initializer - - - -) - - - -identifier + + +null_forgiving_expression - - -explicitly_typed_local_variable_declaration + + +; - - -declaration_statement + + +. - - -nullable_type_annotation + + +primary_expression - - -s + + += - - + + type - - -. + + +local_variable_initializer - - -null_forgiving_operator + + +explicitly_typed_local_variable_declarator - - -parenthesized_expression + + +void - - -identifier + + +primary_expression - - -null_forgiving_operator + + +explicitly_typed_local_variable_declarator - - -null_conditional_member_access + + +! - - -dependent_access + + +identifier - - -( + + +! - - -type + + +local_variable_declaration - - -s + + +. - - -int + + +declaration_statement - - -explicitly_typed_local_variable_declarator + + +declaration_statement - - -primary_expression + + +! - - + + identifier - - -s - - - -e + + +type - - -f + + +string - - -null_forgiving_operator + + +return_type - - + + declaration_statement - - -explicitly_typed_local_variable_declaration + + +null_forgiving_operator - - -explicitly_typed_local_variable_declarators + + +! - - -b + + +local_variable_initializer - - -class_type + + +primary_expression - - -method_header + + +expression - - -method_body + + +) - - -( + + += - - -parenthesized_expression + + +s + + + += - - + + string - - + + identifier - - -; + + +primary_expression - - -! + + +null_coalescing_expression - - -e + + +d - - -null_forgiving_expression + + +null_forgiving_operator - - -statement + + +local_variable_initializer - - -local_variable_declaration + + +; - - -null_forgiving_operator + + +expression - - -{ + + +identifier - - -primary_expression + + +int - - -primary_no_array_creation_expression + + += - - -c + + +explicitly_typed_local_variable_declarators - - -) + + +. - - -} + + +local_variable_declaration - - + + explicitly_typed_local_variable_declarator - - + + ! - - -null_literal - - - -. - - - -null_conditional_member_access + + +integral_type - - -null_forgiving_operator + + +identifier - - -; + + +( - - -= + + +primary_expression - - -null + + +parenthesized_expression - - -local_variable_initializer + + +null_forgiving_expression - - -nullable_reference_type + + +identifier - - -dependent_access + + +identifier - - -d + + +local_variable_declaration - - -? + + +explicitly_typed_local_variable_declarators - - -explicitly_typed_local_variable_declarator + + +b - - -explicitly_typed_local_variable_declaration + + +class_type - - -statement + + +null_forgiving_operator - - -primary_no_array_creation_expression + + +class - - -e + + +null_forgiving_operator - - -integral_type + + +s - - -expression + + +identifier - - -expression + + +null_forgiving_operator - - -? + + +s - - -. + + +identifier - - -) + + +statement - - -declaration_statement + + +method_declaration - - -expression + + +identifier - - -conditional_or_expression + + +primary_expression - - -null_forgiving_expression + + +b - - -explicitly_typed_local_variable_declarators + + +explicitly_typed_local_variable_declarator - - + + type - - -{ - - - -type + + += - - -dependent_access + + +null_forgiving_operator - - -; + + +identifier - - -explicitly_typed_local_variable_declaration + + +null_conditional_member_access - - + + dependent_access - - -f - - - -. + + +identifier - - -( + + +local_variable_declaration - - -identifier + + +explicitly_typed_local_variable_declaration - - -; + + +local_variable_initializer - - -b + + +) - - + + statement - - -null_forgiving_operator + + +identifier - - -explicitly_typed_local_variable_declarator + + +class_body - - + + . - - -class_member_declaration - - - -class_type + + +identifier - - -explicitly_typed_local_variable_declarator + + +null_conditional_member_access - - -! + + +( - - -local_variable_declaration + + +explicitly_typed_local_variable_declarators - - -explicitly_typed_local_variable_declaration + + +null_forgiving_expression - - -; + + +class_type - - -; + + +local_variable_declaration - - -? + + +null_conditional_member_access - - -parenthesized_expression + + +dependent_access - - -declaration_statement + + +statement - - -} + + +statement - - -identifier + + +null_forgiving_expression - - -null_forgiving_operator + + +? - - + + identifier - - -explicitly_typed_local_variable_declarator - - - -! - - - -statement - - - -class_declaration - - - + + . - - -identifier + + +explicitly_typed_local_variable_declarators - - + + = - - -identifier + + +s - - -primary_no_array_creation_expression + + +null_forgiving_operator - - -= + + +statement - - -statement_list + + +null_forgiving_expression - - + + type - - -identifier + + +string - - -primary_expression + + +identifier - - + + declaration_statement - - -? - - - -b - - - -class_type - - - -null_forgiving_expression + + +string - - -! + + +local_variable_initializer - - + + statement - - -type - - - -; + + +local_variable_initializer - - -explicitly_typed_local_variable_declarators + + +expression - - -explicitly_typed_local_variable_declarators + + +declaration_statement - - -null_forgiving_expression + + +! - - -identifier + + +parenthesized_expression - - -explicitly_typed_local_variable_declaration + + +! - - -identifier + + +. - - -null_coalescing_expression + + +e - - -f + + +null_forgiving_expression - - -( + + +explicitly_typed_local_variable_declarator - - -primary_no_array_creation_expression + + +e - - -) + + +class_member_declaration - - -NullForgivingChecks + + +( - - + + identifier - - -statement + + +explicitly_typed_local_variable_declarator - - -explicitly_typed_local_variable_declaration + + +; - - -NullForgivingChecks + + +) - - -s + + +integral_type - - -b + + +. - - -identifier + + +) - - -identifier + + +explicitly_typed_local_variable_declarators - - -identifier + + +primary_expression - - -compilation_unit + + +null_forgiving_expression + + + +dependent_access \ No newline at end of file