|
|
|
|
@ -755,7 +755,7 @@
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "parameter_declaration"
|
|
|
|
|
"name": "type_parameter_declaration"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
@ -768,7 +768,7 @@
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "parameter_declaration"
|
|
|
|
|
"name": "type_parameter_declaration"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
@ -793,6 +793,57 @@
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"type_parameter_declaration": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "FIELD",
|
|
|
|
|
"name": "name",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "identifier"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": ","
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "FIELD",
|
|
|
|
|
"name": "name",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "identifier"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "FIELD",
|
|
|
|
|
"name": "type",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "ALIAS",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "type_elem"
|
|
|
|
|
},
|
|
|
|
|
"named": true,
|
|
|
|
|
"value": "type_constraint"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"parameter_list": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
@ -1239,10 +1290,6 @@
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "function_type"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "union_type"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "negated_type"
|
|
|
|
|
@ -1250,42 +1297,42 @@
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"generic_type": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "FIELD",
|
|
|
|
|
"name": "type",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_type_identifier"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "qualified_type"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "union_type"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "negated_type"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "FIELD",
|
|
|
|
|
"name": "type_arguments",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "type_arguments"
|
|
|
|
|
"type": "PREC_DYNAMIC",
|
|
|
|
|
"value": 1,
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "FIELD",
|
|
|
|
|
"name": "type",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_type_identifier"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "qualified_type"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "negated_type"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "FIELD",
|
|
|
|
|
"name": "type_arguments",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "type_arguments"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"type_arguments": {
|
|
|
|
|
"type": "PREC_DYNAMIC",
|
|
|
|
|
@ -1302,7 +1349,7 @@
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_type"
|
|
|
|
|
"name": "type_elem"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
@ -1315,7 +1362,7 @@
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_type"
|
|
|
|
|
"name": "type_elem"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
@ -1454,27 +1501,6 @@
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"union_type": {
|
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
|
"value": 0,
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_type"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "|"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_type"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"negated_type": {
|
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
|
"value": 0,
|
|
|
|
|
@ -1705,7 +1731,7 @@
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_interface_body"
|
|
|
|
|
"name": "_interface_elem"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
@ -1731,7 +1757,7 @@
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_interface_body"
|
|
|
|
|
"name": "_interface_elem"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
@ -1774,88 +1800,20 @@
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"_interface_body": {
|
|
|
|
|
"_interface_elem": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "method_spec"
|
|
|
|
|
"name": "method_elem"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "struct_elem"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "ALIAS",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_simple_type"
|
|
|
|
|
},
|
|
|
|
|
"named": true,
|
|
|
|
|
"value": "constraint_elem"
|
|
|
|
|
"name": "type_elem"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"struct_elem": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "struct_term"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "|"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "struct_term"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"struct_term": {
|
|
|
|
|
"type": "PREC",
|
|
|
|
|
"value": 1,
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "~"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "*"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "BLANK"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "struct_type"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"method_spec": {
|
|
|
|
|
"method_elem": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
@ -1901,6 +1859,31 @@
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"type_elem": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_type"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "|"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_type"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"map_type": {
|
|
|
|
|
"type": "PREC_RIGHT",
|
|
|
|
|
"value": 0,
|
|
|
|
|
@ -3314,6 +3297,10 @@
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "type_conversion_expression"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "type_instantiation_expression"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "identifier"
|
|
|
|
|
@ -3887,6 +3874,68 @@
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"type_instantiation_expression": {
|
|
|
|
|
"type": "PREC_DYNAMIC",
|
|
|
|
|
"value": -1,
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "FIELD",
|
|
|
|
|
"name": "type",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_type"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "["
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_type"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": ","
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "_type"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": ","
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "BLANK"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "]"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"composite_literal": {
|
|
|
|
|
"type": "PREC",
|
|
|
|
|
"value": -1,
|
|
|
|
|
@ -6859,11 +6908,12 @@
|
|
|
|
|
"_expression"
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"qualified_type",
|
|
|
|
|
"_simple_type",
|
|
|
|
|
"generic_type",
|
|
|
|
|
"_expression"
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"generic_type",
|
|
|
|
|
"qualified_type",
|
|
|
|
|
"_expression"
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
@ -6872,21 +6922,22 @@
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"parameter_declaration",
|
|
|
|
|
"_simple_type",
|
|
|
|
|
"_expression"
|
|
|
|
|
"_simple_type"
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"parameter_declaration",
|
|
|
|
|
"generic_type",
|
|
|
|
|
"type_parameter_declaration",
|
|
|
|
|
"_simple_type",
|
|
|
|
|
"_expression"
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"parameter_declaration",
|
|
|
|
|
"type_parameter_declaration",
|
|
|
|
|
"_expression"
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"parameter_declaration",
|
|
|
|
|
"_simple_type"
|
|
|
|
|
"type_parameter_declaration",
|
|
|
|
|
"_simple_type",
|
|
|
|
|
"generic_type",
|
|
|
|
|
"_expression"
|
|
|
|
|
]
|
|
|
|
|
],
|
|
|
|
|
"precedences": [],
|
|
|
|
|
@ -6897,7 +6948,8 @@
|
|
|
|
|
"_field_identifier",
|
|
|
|
|
"_package_identifier",
|
|
|
|
|
"_top_level_declaration",
|
|
|
|
|
"_string_literal"
|
|
|
|
|
"_string_literal",
|
|
|
|
|
"_interface_elem"
|
|
|
|
|
],
|
|
|
|
|
"supertypes": [
|
|
|
|
|
"_expression",
|
|
|
|
|
@ -6907,4 +6959,3 @@
|
|
|
|
|
"_simple_statement"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|