@dekobon/tree-sitter-groovy 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/grammar.json CHANGED
@@ -107,6 +107,10 @@
107
107
  "type": "SYMBOL",
108
108
  "name": "try_statement"
109
109
  },
110
+ {
111
+ "type": "SYMBOL",
112
+ "name": "synchronized_statement"
113
+ },
110
114
  {
111
115
  "type": "SYMBOL",
112
116
  "name": "class_declaration"
@@ -183,8 +187,22 @@
183
187
  "type": "FIELD",
184
188
  "name": "argument",
185
189
  "content": {
186
- "type": "SYMBOL",
187
- "name": "_command_argument"
190
+ "type": "CHOICE",
191
+ "members": [
192
+ {
193
+ "type": "SYMBOL",
194
+ "name": "_command_argument"
195
+ },
196
+ {
197
+ "type": "ALIAS",
198
+ "content": {
199
+ "type": "SYMBOL",
200
+ "name": "_command_named_argument"
201
+ },
202
+ "named": true,
203
+ "value": "named_argument"
204
+ }
205
+ ]
188
206
  }
189
207
  },
190
208
  {
@@ -200,8 +218,31 @@
200
218
  "type": "FIELD",
201
219
  "name": "argument",
202
220
  "content": {
203
- "type": "SYMBOL",
204
- "name": "_command_argument"
221
+ "type": "CHOICE",
222
+ "members": [
223
+ {
224
+ "type": "ALIAS",
225
+ "content": {
226
+ "type": "SYMBOL",
227
+ "name": "_command_named_argument"
228
+ },
229
+ "named": true,
230
+ "value": "named_argument"
231
+ },
232
+ {
233
+ "type": "ALIAS",
234
+ "content": {
235
+ "type": "SYMBOL",
236
+ "name": "_command_continued_named_argument"
237
+ },
238
+ "named": true,
239
+ "value": "named_argument"
240
+ },
241
+ {
242
+ "type": "SYMBOL",
243
+ "name": "_expression"
244
+ }
245
+ ]
205
246
  }
206
247
  }
207
248
  ]
@@ -210,6 +251,64 @@
210
251
  ]
211
252
  }
212
253
  },
254
+ "_command_named_argument": {
255
+ "type": "SEQ",
256
+ "members": [
257
+ {
258
+ "type": "SYMBOL",
259
+ "name": "_command_named_key"
260
+ },
261
+ {
262
+ "type": "FIELD",
263
+ "name": "key",
264
+ "content": {
265
+ "type": "RESERVED",
266
+ "content": {
267
+ "type": "SYMBOL",
268
+ "name": "identifier"
269
+ },
270
+ "context_name": "property"
271
+ }
272
+ },
273
+ {
274
+ "type": "STRING",
275
+ "value": ":"
276
+ },
277
+ {
278
+ "type": "FIELD",
279
+ "name": "value",
280
+ "content": {
281
+ "type": "SYMBOL",
282
+ "name": "_expression"
283
+ }
284
+ }
285
+ ]
286
+ },
287
+ "_command_continued_named_argument": {
288
+ "type": "SEQ",
289
+ "members": [
290
+ {
291
+ "type": "FIELD",
292
+ "name": "key",
293
+ "content": {
294
+ "type": "SYMBOL",
295
+ "name": "identifier"
296
+ }
297
+ },
298
+ {
299
+ "type": "STRING",
300
+ "value": ":"
301
+ },
302
+ {
303
+ "type": "FIELD",
304
+ "name": "value",
305
+ "content": {
306
+ "type": "SYMBOL",
307
+ "name": "_expression"
308
+ }
309
+ }
310
+ ]
311
+ },
213
312
  "_command_argument": {
214
313
  "type": "CHOICE",
215
314
  "members": [
@@ -795,6 +894,39 @@
795
894
  }
796
895
  ]
797
896
  },
897
+ "synchronized_statement": {
898
+ "type": "SEQ",
899
+ "members": [
900
+ {
901
+ "type": "STRING",
902
+ "value": "synchronized"
903
+ },
904
+ {
905
+ "type": "STRING",
906
+ "value": "("
907
+ },
908
+ {
909
+ "type": "FIELD",
910
+ "name": "lock",
911
+ "content": {
912
+ "type": "SYMBOL",
913
+ "name": "_expression"
914
+ }
915
+ },
916
+ {
917
+ "type": "STRING",
918
+ "value": ")"
919
+ },
920
+ {
921
+ "type": "FIELD",
922
+ "name": "body",
923
+ "content": {
924
+ "type": "SYMBOL",
925
+ "name": "block"
926
+ }
927
+ }
928
+ ]
929
+ },
798
930
  "resource_specification": {
799
931
  "type": "SEQ",
800
932
  "members": [
@@ -847,12 +979,8 @@
847
979
  "type": "CHOICE",
848
980
  "members": [
849
981
  {
850
- "type": "FIELD",
851
- "name": "type",
852
- "content": {
853
- "type": "SYMBOL",
854
- "name": "_type"
855
- }
982
+ "type": "STRING",
983
+ "value": "final"
856
984
  },
857
985
  {
858
986
  "type": "BLANK"
@@ -860,12 +988,64 @@
860
988
  ]
861
989
  },
862
990
  {
863
- "type": "FIELD",
864
- "name": "name",
865
- "content": {
866
- "type": "SYMBOL",
867
- "name": "identifier"
868
- }
991
+ "type": "CHOICE",
992
+ "members": [
993
+ {
994
+ "type": "SEQ",
995
+ "members": [
996
+ {
997
+ "type": "CHOICE",
998
+ "members": [
999
+ {
1000
+ "type": "CHOICE",
1001
+ "members": [
1002
+ {
1003
+ "type": "STRING",
1004
+ "value": "def"
1005
+ },
1006
+ {
1007
+ "type": "STRING",
1008
+ "value": "var"
1009
+ },
1010
+ {
1011
+ "type": "FIELD",
1012
+ "name": "type",
1013
+ "content": {
1014
+ "type": "SYMBOL",
1015
+ "name": "_type"
1016
+ }
1017
+ }
1018
+ ]
1019
+ },
1020
+ {
1021
+ "type": "BLANK"
1022
+ }
1023
+ ]
1024
+ },
1025
+ {
1026
+ "type": "FIELD",
1027
+ "name": "name",
1028
+ "content": {
1029
+ "type": "SYMBOL",
1030
+ "name": "identifier"
1031
+ }
1032
+ }
1033
+ ]
1034
+ },
1035
+ {
1036
+ "type": "FIELD",
1037
+ "name": "name",
1038
+ "content": {
1039
+ "type": "ALIAS",
1040
+ "content": {
1041
+ "type": "STRING",
1042
+ "value": "var"
1043
+ },
1044
+ "named": true,
1045
+ "value": "identifier"
1046
+ }
1047
+ }
1048
+ ]
869
1049
  },
870
1050
  {
871
1051
  "type": "STRING",
@@ -921,21 +1101,8 @@
921
1101
  "type": "CHOICE",
922
1102
  "members": [
923
1103
  {
924
- "type": "FIELD",
925
- "name": "type",
926
- "content": {
927
- "type": "CHOICE",
928
- "members": [
929
- {
930
- "type": "SYMBOL",
931
- "name": "_type"
932
- },
933
- {
934
- "type": "SYMBOL",
935
- "name": "multi_type"
936
- }
937
- ]
938
- }
1104
+ "type": "STRING",
1105
+ "value": "final"
939
1106
  },
940
1107
  {
941
1108
  "type": "BLANK"
@@ -943,12 +1110,73 @@
943
1110
  ]
944
1111
  },
945
1112
  {
946
- "type": "FIELD",
947
- "name": "name",
948
- "content": {
949
- "type": "SYMBOL",
950
- "name": "identifier"
951
- }
1113
+ "type": "CHOICE",
1114
+ "members": [
1115
+ {
1116
+ "type": "SEQ",
1117
+ "members": [
1118
+ {
1119
+ "type": "CHOICE",
1120
+ "members": [
1121
+ {
1122
+ "type": "CHOICE",
1123
+ "members": [
1124
+ {
1125
+ "type": "STRING",
1126
+ "value": "def"
1127
+ },
1128
+ {
1129
+ "type": "STRING",
1130
+ "value": "var"
1131
+ },
1132
+ {
1133
+ "type": "FIELD",
1134
+ "name": "type",
1135
+ "content": {
1136
+ "type": "CHOICE",
1137
+ "members": [
1138
+ {
1139
+ "type": "SYMBOL",
1140
+ "name": "_type"
1141
+ },
1142
+ {
1143
+ "type": "SYMBOL",
1144
+ "name": "multi_type"
1145
+ }
1146
+ ]
1147
+ }
1148
+ }
1149
+ ]
1150
+ },
1151
+ {
1152
+ "type": "BLANK"
1153
+ }
1154
+ ]
1155
+ },
1156
+ {
1157
+ "type": "FIELD",
1158
+ "name": "name",
1159
+ "content": {
1160
+ "type": "SYMBOL",
1161
+ "name": "identifier"
1162
+ }
1163
+ }
1164
+ ]
1165
+ },
1166
+ {
1167
+ "type": "FIELD",
1168
+ "name": "name",
1169
+ "content": {
1170
+ "type": "ALIAS",
1171
+ "content": {
1172
+ "type": "STRING",
1173
+ "value": "var"
1174
+ },
1175
+ "named": true,
1176
+ "value": "identifier"
1177
+ }
1178
+ }
1179
+ ]
952
1180
  }
953
1181
  ]
954
1182
  },
@@ -1195,7 +1423,7 @@
1195
1423
  "members": [
1196
1424
  {
1197
1425
  "type": "SYMBOL",
1198
- "name": "permits_clause"
1426
+ "name": "super_interfaces"
1199
1427
  },
1200
1428
  {
1201
1429
  "type": "BLANK"
@@ -1203,13 +1431,25 @@
1203
1431
  ]
1204
1432
  },
1205
1433
  {
1206
- "type": "FIELD",
1207
- "name": "body",
1208
- "content": {
1209
- "type": "SYMBOL",
1210
- "name": "class_body"
1211
- }
1212
- }
1434
+ "type": "CHOICE",
1435
+ "members": [
1436
+ {
1437
+ "type": "SYMBOL",
1438
+ "name": "permits_clause"
1439
+ },
1440
+ {
1441
+ "type": "BLANK"
1442
+ }
1443
+ ]
1444
+ },
1445
+ {
1446
+ "type": "FIELD",
1447
+ "name": "body",
1448
+ "content": {
1449
+ "type": "SYMBOL",
1450
+ "name": "class_body"
1451
+ }
1452
+ }
1213
1453
  ]
1214
1454
  },
1215
1455
  "interface_declaration": {
@@ -1728,6 +1968,82 @@
1728
1968
  ]
1729
1969
  }
1730
1970
  },
1971
+ "_modified_constructor_declaration": {
1972
+ "type": "PREC_DYNAMIC",
1973
+ "value": 4,
1974
+ "content": {
1975
+ "type": "PREC_RIGHT",
1976
+ "value": 3,
1977
+ "content": {
1978
+ "type": "SEQ",
1979
+ "members": [
1980
+ {
1981
+ "type": "REPEAT",
1982
+ "content": {
1983
+ "type": "SYMBOL",
1984
+ "name": "annotation"
1985
+ }
1986
+ },
1987
+ {
1988
+ "type": "REPEAT1",
1989
+ "content": {
1990
+ "type": "CHOICE",
1991
+ "members": [
1992
+ {
1993
+ "type": "STRING",
1994
+ "value": "public"
1995
+ },
1996
+ {
1997
+ "type": "STRING",
1998
+ "value": "private"
1999
+ },
2000
+ {
2001
+ "type": "STRING",
2002
+ "value": "protected"
2003
+ }
2004
+ ]
2005
+ }
2006
+ },
2007
+ {
2008
+ "type": "FIELD",
2009
+ "name": "name",
2010
+ "content": {
2011
+ "type": "SYMBOL",
2012
+ "name": "identifier"
2013
+ }
2014
+ },
2015
+ {
2016
+ "type": "FIELD",
2017
+ "name": "parameters",
2018
+ "content": {
2019
+ "type": "SYMBOL",
2020
+ "name": "formal_parameters"
2021
+ }
2022
+ },
2023
+ {
2024
+ "type": "CHOICE",
2025
+ "members": [
2026
+ {
2027
+ "type": "SYMBOL",
2028
+ "name": "throws_clause"
2029
+ },
2030
+ {
2031
+ "type": "BLANK"
2032
+ }
2033
+ ]
2034
+ },
2035
+ {
2036
+ "type": "FIELD",
2037
+ "name": "body",
2038
+ "content": {
2039
+ "type": "SYMBOL",
2040
+ "name": "block"
2041
+ }
2042
+ }
2043
+ ]
2044
+ }
2045
+ }
2046
+ },
1731
2047
  "static_initializer": {
1732
2048
  "type": "SEQ",
1733
2049
  "members": [
@@ -1750,7 +2066,7 @@
1750
2066
  "members": [
1751
2067
  {
1752
2068
  "type": "PREC_DYNAMIC",
1753
- "value": 1,
2069
+ "value": 4,
1754
2070
  "content": {
1755
2071
  "type": "SEQ",
1756
2072
  "members": [
@@ -1809,184 +2125,312 @@
1809
2125
  }
1810
2126
  },
1811
2127
  {
1812
- "type": "SEQ",
1813
- "members": [
1814
- {
1815
- "type": "REPEAT",
1816
- "content": {
1817
- "type": "SYMBOL",
1818
- "name": "annotation"
1819
- }
1820
- },
1821
- {
1822
- "type": "REPEAT1",
1823
- "content": {
1824
- "type": "SYMBOL",
1825
- "name": "_modifier"
1826
- }
1827
- },
1828
- {
1829
- "type": "SYMBOL",
1830
- "name": "variable_declarator"
1831
- },
1832
- {
1833
- "type": "REPEAT",
1834
- "content": {
1835
- "type": "SEQ",
1836
- "members": [
1837
- {
1838
- "type": "STRING",
1839
- "value": ","
1840
- },
1841
- {
1842
- "type": "SYMBOL",
1843
- "name": "variable_declarator"
1844
- }
1845
- ]
1846
- }
1847
- }
1848
- ]
1849
- }
1850
- ]
1851
- },
1852
- "method_declaration": {
1853
- "type": "PREC_RIGHT",
1854
- "value": 2,
1855
- "content": {
1856
- "type": "SEQ",
1857
- "members": [
1858
- {
1859
- "type": "REPEAT",
1860
- "content": {
1861
- "type": "SYMBOL",
1862
- "name": "annotation"
1863
- }
1864
- },
1865
- {
1866
- "type": "REPEAT",
1867
- "content": {
1868
- "type": "SYMBOL",
1869
- "name": "_modifier"
1870
- }
1871
- },
1872
- {
1873
- "type": "CHOICE",
2128
+ "type": "PREC_DYNAMIC",
2129
+ "value": -1,
2130
+ "content": {
2131
+ "type": "SEQ",
1874
2132
  "members": [
1875
2133
  {
1876
- "type": "FIELD",
1877
- "name": "type_parameters",
2134
+ "type": "REPEAT",
1878
2135
  "content": {
1879
2136
  "type": "SYMBOL",
1880
- "name": "method_type_parameters"
2137
+ "name": "annotation"
1881
2138
  }
1882
2139
  },
1883
2140
  {
1884
- "type": "BLANK"
1885
- }
1886
- ]
1887
- },
1888
- {
1889
- "type": "CHOICE",
1890
- "members": [
1891
- {
1892
- "type": "STRING",
1893
- "value": "def"
1894
- },
1895
- {
1896
- "type": "FIELD",
1897
- "name": "return_type",
2141
+ "type": "REPEAT1",
1898
2142
  "content": {
1899
2143
  "type": "SYMBOL",
1900
- "name": "_type"
2144
+ "name": "_modifier"
1901
2145
  }
1902
- }
1903
- ]
1904
- },
1905
- {
1906
- "type": "FIELD",
1907
- "name": "name",
1908
- "content": {
1909
- "type": "SYMBOL",
1910
- "name": "_property_name"
1911
- }
1912
- },
1913
- {
1914
- "type": "FIELD",
1915
- "name": "parameters",
1916
- "content": {
1917
- "type": "SYMBOL",
1918
- "name": "formal_parameters"
1919
- }
1920
- },
1921
- {
1922
- "type": "CHOICE",
1923
- "members": [
2146
+ },
1924
2147
  {
1925
2148
  "type": "SYMBOL",
1926
- "name": "throws_clause"
2149
+ "name": "variable_declarator"
1927
2150
  },
1928
2151
  {
1929
- "type": "BLANK"
1930
- }
1931
- ]
1932
- },
1933
- {
1934
- "type": "CHOICE",
1935
- "members": [
1936
- {
1937
- "type": "FIELD",
1938
- "name": "body",
2152
+ "type": "REPEAT",
1939
2153
  "content": {
1940
- "type": "SYMBOL",
1941
- "name": "block"
2154
+ "type": "SEQ",
2155
+ "members": [
2156
+ {
2157
+ "type": "STRING",
2158
+ "value": ","
2159
+ },
2160
+ {
2161
+ "type": "SYMBOL",
2162
+ "name": "variable_declarator"
2163
+ }
2164
+ ]
1942
2165
  }
1943
- },
1944
- {
1945
- "type": "BLANK"
1946
- }
1947
- ]
1948
- }
1949
- ]
1950
- }
1951
- },
1952
- "method_type_parameters": {
1953
- "type": "SEQ",
1954
- "members": [
1955
- {
1956
- "type": "STRING",
1957
- "value": "<"
1958
- },
1959
- {
1960
- "type": "SYMBOL",
1961
- "name": "type_parameter"
1962
- },
1963
- {
1964
- "type": "REPEAT",
1965
- "content": {
1966
- "type": "SEQ",
1967
- "members": [
1968
- {
1969
- "type": "STRING",
1970
- "value": ","
1971
- },
1972
- {
1973
- "type": "SYMBOL",
1974
- "name": "type_parameter"
1975
2166
  }
1976
2167
  ]
1977
2168
  }
1978
- },
1979
- {
1980
- "type": "STRING",
1981
- "value": ">"
1982
2169
  }
1983
2170
  ]
1984
2171
  },
1985
- "throws_clause": {
1986
- "type": "PREC_LEFT",
1987
- "value": 0,
1988
- "content": {
1989
- "type": "SEQ",
2172
+ "method_declaration": {
2173
+ "type": "PREC_RIGHT",
2174
+ "value": 2,
2175
+ "content": {
2176
+ "type": "CHOICE",
2177
+ "members": [
2178
+ {
2179
+ "type": "PREC_DYNAMIC",
2180
+ "value": -1,
2181
+ "content": {
2182
+ "type": "SEQ",
2183
+ "members": [
2184
+ {
2185
+ "type": "REPEAT",
2186
+ "content": {
2187
+ "type": "SYMBOL",
2188
+ "name": "annotation"
2189
+ }
2190
+ },
2191
+ {
2192
+ "type": "CHOICE",
2193
+ "members": [
2194
+ {
2195
+ "type": "SEQ",
2196
+ "members": [
2197
+ {
2198
+ "type": "REPEAT",
2199
+ "content": {
2200
+ "type": "SYMBOL",
2201
+ "name": "_modifier"
2202
+ }
2203
+ },
2204
+ {
2205
+ "type": "CHOICE",
2206
+ "members": [
2207
+ {
2208
+ "type": "FIELD",
2209
+ "name": "type_parameters",
2210
+ "content": {
2211
+ "type": "SYMBOL",
2212
+ "name": "method_type_parameters"
2213
+ }
2214
+ },
2215
+ {
2216
+ "type": "BLANK"
2217
+ }
2218
+ ]
2219
+ },
2220
+ {
2221
+ "type": "CHOICE",
2222
+ "members": [
2223
+ {
2224
+ "type": "STRING",
2225
+ "value": "def"
2226
+ },
2227
+ {
2228
+ "type": "FIELD",
2229
+ "name": "return_type",
2230
+ "content": {
2231
+ "type": "SYMBOL",
2232
+ "name": "_type"
2233
+ }
2234
+ }
2235
+ ]
2236
+ }
2237
+ ]
2238
+ },
2239
+ {
2240
+ "type": "REPEAT1",
2241
+ "content": {
2242
+ "type": "SYMBOL",
2243
+ "name": "_modifier"
2244
+ }
2245
+ }
2246
+ ]
2247
+ },
2248
+ {
2249
+ "type": "FIELD",
2250
+ "name": "name",
2251
+ "content": {
2252
+ "type": "SYMBOL",
2253
+ "name": "_property_name"
2254
+ }
2255
+ },
2256
+ {
2257
+ "type": "FIELD",
2258
+ "name": "parameters",
2259
+ "content": {
2260
+ "type": "SYMBOL",
2261
+ "name": "formal_parameters"
2262
+ }
2263
+ },
2264
+ {
2265
+ "type": "CHOICE",
2266
+ "members": [
2267
+ {
2268
+ "type": "SYMBOL",
2269
+ "name": "throws_clause"
2270
+ },
2271
+ {
2272
+ "type": "BLANK"
2273
+ }
2274
+ ]
2275
+ }
2276
+ ]
2277
+ }
2278
+ },
2279
+ {
2280
+ "type": "PREC_DYNAMIC",
2281
+ "value": 3,
2282
+ "content": {
2283
+ "type": "SEQ",
2284
+ "members": [
2285
+ {
2286
+ "type": "SEQ",
2287
+ "members": [
2288
+ {
2289
+ "type": "REPEAT",
2290
+ "content": {
2291
+ "type": "SYMBOL",
2292
+ "name": "annotation"
2293
+ }
2294
+ },
2295
+ {
2296
+ "type": "CHOICE",
2297
+ "members": [
2298
+ {
2299
+ "type": "SEQ",
2300
+ "members": [
2301
+ {
2302
+ "type": "REPEAT",
2303
+ "content": {
2304
+ "type": "SYMBOL",
2305
+ "name": "_modifier"
2306
+ }
2307
+ },
2308
+ {
2309
+ "type": "CHOICE",
2310
+ "members": [
2311
+ {
2312
+ "type": "FIELD",
2313
+ "name": "type_parameters",
2314
+ "content": {
2315
+ "type": "SYMBOL",
2316
+ "name": "method_type_parameters"
2317
+ }
2318
+ },
2319
+ {
2320
+ "type": "BLANK"
2321
+ }
2322
+ ]
2323
+ },
2324
+ {
2325
+ "type": "CHOICE",
2326
+ "members": [
2327
+ {
2328
+ "type": "STRING",
2329
+ "value": "def"
2330
+ },
2331
+ {
2332
+ "type": "FIELD",
2333
+ "name": "return_type",
2334
+ "content": {
2335
+ "type": "SYMBOL",
2336
+ "name": "_type"
2337
+ }
2338
+ }
2339
+ ]
2340
+ }
2341
+ ]
2342
+ },
2343
+ {
2344
+ "type": "REPEAT1",
2345
+ "content": {
2346
+ "type": "SYMBOL",
2347
+ "name": "_modifier"
2348
+ }
2349
+ }
2350
+ ]
2351
+ },
2352
+ {
2353
+ "type": "FIELD",
2354
+ "name": "name",
2355
+ "content": {
2356
+ "type": "SYMBOL",
2357
+ "name": "_property_name"
2358
+ }
2359
+ },
2360
+ {
2361
+ "type": "FIELD",
2362
+ "name": "parameters",
2363
+ "content": {
2364
+ "type": "SYMBOL",
2365
+ "name": "formal_parameters"
2366
+ }
2367
+ },
2368
+ {
2369
+ "type": "CHOICE",
2370
+ "members": [
2371
+ {
2372
+ "type": "SYMBOL",
2373
+ "name": "throws_clause"
2374
+ },
2375
+ {
2376
+ "type": "BLANK"
2377
+ }
2378
+ ]
2379
+ }
2380
+ ]
2381
+ },
2382
+ {
2383
+ "type": "FIELD",
2384
+ "name": "body",
2385
+ "content": {
2386
+ "type": "SYMBOL",
2387
+ "name": "block"
2388
+ }
2389
+ }
2390
+ ]
2391
+ }
2392
+ }
2393
+ ]
2394
+ }
2395
+ },
2396
+ "method_type_parameters": {
2397
+ "type": "SEQ",
2398
+ "members": [
2399
+ {
2400
+ "type": "STRING",
2401
+ "value": "<"
2402
+ },
2403
+ {
2404
+ "type": "SYMBOL",
2405
+ "name": "type_parameter"
2406
+ },
2407
+ {
2408
+ "type": "REPEAT",
2409
+ "content": {
2410
+ "type": "SEQ",
2411
+ "members": [
2412
+ {
2413
+ "type": "STRING",
2414
+ "value": ","
2415
+ },
2416
+ {
2417
+ "type": "SYMBOL",
2418
+ "name": "type_parameter"
2419
+ }
2420
+ ]
2421
+ }
2422
+ },
2423
+ {
2424
+ "type": "STRING",
2425
+ "value": ">"
2426
+ }
2427
+ ]
2428
+ },
2429
+ "throws_clause": {
2430
+ "type": "PREC_LEFT",
2431
+ "value": 0,
2432
+ "content": {
2433
+ "type": "SEQ",
1990
2434
  "members": [
1991
2435
  {
1992
2436
  "type": "STRING",
@@ -2051,81 +2495,215 @@
2051
2495
  ]
2052
2496
  },
2053
2497
  {
2054
- "type": "BLANK"
2498
+ "type": "BLANK"
2499
+ }
2500
+ ]
2501
+ },
2502
+ {
2503
+ "type": "STRING",
2504
+ "value": ")"
2505
+ }
2506
+ ]
2507
+ },
2508
+ "formal_parameter": {
2509
+ "type": "CHOICE",
2510
+ "members": [
2511
+ {
2512
+ "type": "SEQ",
2513
+ "members": [
2514
+ {
2515
+ "type": "REPEAT",
2516
+ "content": {
2517
+ "type": "SYMBOL",
2518
+ "name": "annotation"
2519
+ }
2520
+ },
2521
+ {
2522
+ "type": "CHOICE",
2523
+ "members": [
2524
+ {
2525
+ "type": "STRING",
2526
+ "value": "final"
2527
+ },
2528
+ {
2529
+ "type": "BLANK"
2530
+ }
2531
+ ]
2532
+ },
2533
+ {
2534
+ "type": "CHOICE",
2535
+ "members": [
2536
+ {
2537
+ "type": "SEQ",
2538
+ "members": [
2539
+ {
2540
+ "type": "CHOICE",
2541
+ "members": [
2542
+ {
2543
+ "type": "CHOICE",
2544
+ "members": [
2545
+ {
2546
+ "type": "STRING",
2547
+ "value": "def"
2548
+ },
2549
+ {
2550
+ "type": "STRING",
2551
+ "value": "var"
2552
+ },
2553
+ {
2554
+ "type": "FIELD",
2555
+ "name": "type",
2556
+ "content": {
2557
+ "type": "CHOICE",
2558
+ "members": [
2559
+ {
2560
+ "type": "SYMBOL",
2561
+ "name": "_type"
2562
+ },
2563
+ {
2564
+ "type": "SYMBOL",
2565
+ "name": "varargs_type"
2566
+ }
2567
+ ]
2568
+ }
2569
+ }
2570
+ ]
2571
+ },
2572
+ {
2573
+ "type": "BLANK"
2574
+ }
2575
+ ]
2576
+ },
2577
+ {
2578
+ "type": "FIELD",
2579
+ "name": "name",
2580
+ "content": {
2581
+ "type": "SYMBOL",
2582
+ "name": "identifier"
2583
+ }
2584
+ }
2585
+ ]
2586
+ },
2587
+ {
2588
+ "type": "FIELD",
2589
+ "name": "name",
2590
+ "content": {
2591
+ "type": "ALIAS",
2592
+ "content": {
2593
+ "type": "STRING",
2594
+ "value": "var"
2595
+ },
2596
+ "named": true,
2597
+ "value": "identifier"
2598
+ }
2599
+ }
2600
+ ]
2601
+ },
2602
+ {
2603
+ "type": "CHOICE",
2604
+ "members": [
2605
+ {
2606
+ "type": "SEQ",
2607
+ "members": [
2608
+ {
2609
+ "type": "STRING",
2610
+ "value": "="
2611
+ },
2612
+ {
2613
+ "type": "FIELD",
2614
+ "name": "default",
2615
+ "content": {
2616
+ "type": "SYMBOL",
2617
+ "name": "_expression"
2618
+ }
2619
+ }
2620
+ ]
2621
+ },
2622
+ {
2623
+ "type": "BLANK"
2624
+ }
2625
+ ]
2055
2626
  }
2056
2627
  ]
2057
2628
  },
2058
2629
  {
2059
- "type": "STRING",
2060
- "value": ")"
2061
- }
2062
- ]
2063
- },
2064
- "formal_parameter": {
2065
- "type": "SEQ",
2066
- "members": [
2067
- {
2068
- "type": "REPEAT",
2069
- "content": {
2070
- "type": "SYMBOL",
2071
- "name": "annotation"
2072
- }
2073
- },
2074
- {
2075
- "type": "CHOICE",
2630
+ "type": "SEQ",
2076
2631
  "members": [
2077
2632
  {
2078
- "type": "FIELD",
2079
- "name": "type",
2633
+ "type": "REPEAT1",
2080
2634
  "content": {
2081
- "type": "CHOICE",
2082
- "members": [
2083
- {
2084
- "type": "SYMBOL",
2085
- "name": "_type"
2086
- },
2087
- {
2088
- "type": "SYMBOL",
2089
- "name": "varargs_type"
2090
- }
2091
- ]
2635
+ "type": "SYMBOL",
2636
+ "name": "annotation"
2092
2637
  }
2093
2638
  },
2094
2639
  {
2095
- "type": "BLANK"
2096
- }
2097
- ]
2098
- },
2099
- {
2100
- "type": "FIELD",
2101
- "name": "name",
2102
- "content": {
2103
- "type": "SYMBOL",
2104
- "name": "identifier"
2105
- }
2106
- },
2107
- {
2108
- "type": "CHOICE",
2109
- "members": [
2110
- {
2111
- "type": "SEQ",
2640
+ "type": "CHOICE",
2112
2641
  "members": [
2113
- {
2114
- "type": "STRING",
2115
- "value": "="
2116
- },
2117
2642
  {
2118
2643
  "type": "FIELD",
2119
- "name": "default",
2644
+ "name": "name",
2120
2645
  "content": {
2121
- "type": "SYMBOL",
2122
- "name": "_expression"
2646
+ "type": "ALIAS",
2647
+ "content": {
2648
+ "type": "STRING",
2649
+ "value": "_"
2650
+ },
2651
+ "named": true,
2652
+ "value": "identifier"
2123
2653
  }
2654
+ },
2655
+ {
2656
+ "type": "SEQ",
2657
+ "members": [
2658
+ {
2659
+ "type": "FIELD",
2660
+ "name": "type",
2661
+ "content": {
2662
+ "type": "ALIAS",
2663
+ "content": {
2664
+ "type": "STRING",
2665
+ "value": "_"
2666
+ },
2667
+ "named": true,
2668
+ "value": "type_identifier"
2669
+ }
2670
+ },
2671
+ {
2672
+ "type": "FIELD",
2673
+ "name": "name",
2674
+ "content": {
2675
+ "type": "SYMBOL",
2676
+ "name": "identifier"
2677
+ }
2678
+ }
2679
+ ]
2124
2680
  }
2125
2681
  ]
2126
2682
  },
2127
2683
  {
2128
- "type": "BLANK"
2684
+ "type": "CHOICE",
2685
+ "members": [
2686
+ {
2687
+ "type": "SEQ",
2688
+ "members": [
2689
+ {
2690
+ "type": "STRING",
2691
+ "value": "="
2692
+ },
2693
+ {
2694
+ "type": "FIELD",
2695
+ "name": "default",
2696
+ "content": {
2697
+ "type": "SYMBOL",
2698
+ "name": "_expression"
2699
+ }
2700
+ }
2701
+ ]
2702
+ },
2703
+ {
2704
+ "type": "BLANK"
2705
+ }
2706
+ ]
2129
2707
  }
2130
2708
  ]
2131
2709
  }
@@ -2173,6 +2751,18 @@
2173
2751
  "name": "identifier"
2174
2752
  }
2175
2753
  },
2754
+ {
2755
+ "type": "CHOICE",
2756
+ "members": [
2757
+ {
2758
+ "type": "SYMBOL",
2759
+ "name": "super_interfaces"
2760
+ },
2761
+ {
2762
+ "type": "BLANK"
2763
+ }
2764
+ ]
2765
+ },
2176
2766
  {
2177
2767
  "type": "FIELD",
2178
2768
  "name": "body",
@@ -2295,6 +2885,85 @@
2295
2885
  }
2296
2886
  }
2297
2887
  ]
2888
+ },
2889
+ {
2890
+ "type": "SEQ",
2891
+ "members": [
2892
+ {
2893
+ "type": "STRING",
2894
+ "value": ","
2895
+ },
2896
+ {
2897
+ "type": "CHOICE",
2898
+ "members": [
2899
+ {
2900
+ "type": "SYMBOL",
2901
+ "name": "method_declaration"
2902
+ },
2903
+ {
2904
+ "type": "SYMBOL",
2905
+ "name": "field_declaration"
2906
+ },
2907
+ {
2908
+ "type": "ALIAS",
2909
+ "content": {
2910
+ "type": "SYMBOL",
2911
+ "name": "_modified_constructor_declaration"
2912
+ },
2913
+ "named": true,
2914
+ "value": "constructor_declaration"
2915
+ },
2916
+ {
2917
+ "type": "SYMBOL",
2918
+ "name": "static_initializer"
2919
+ },
2920
+ {
2921
+ "type": "SYMBOL",
2922
+ "name": "enum_declaration"
2923
+ },
2924
+ {
2925
+ "type": "SYMBOL",
2926
+ "name": "class_declaration"
2927
+ },
2928
+ {
2929
+ "type": "SYMBOL",
2930
+ "name": "interface_declaration"
2931
+ },
2932
+ {
2933
+ "type": "SYMBOL",
2934
+ "name": "trait_declaration"
2935
+ },
2936
+ {
2937
+ "type": "SYMBOL",
2938
+ "name": "record_declaration"
2939
+ },
2940
+ {
2941
+ "type": "SYMBOL",
2942
+ "name": "annotation_type_declaration"
2943
+ }
2944
+ ]
2945
+ },
2946
+ {
2947
+ "type": "REPEAT",
2948
+ "content": {
2949
+ "type": "CHOICE",
2950
+ "members": [
2951
+ {
2952
+ "type": "SYMBOL",
2953
+ "name": "_class_member"
2954
+ },
2955
+ {
2956
+ "type": "SYMBOL",
2957
+ "name": "block"
2958
+ },
2959
+ {
2960
+ "type": "STRING",
2961
+ "value": ";"
2962
+ }
2963
+ ]
2964
+ }
2965
+ }
2966
+ ]
2298
2967
  }
2299
2968
  ]
2300
2969
  },
@@ -2334,44 +3003,103 @@
2334
3003
  ]
2335
3004
  },
2336
3005
  "enum_constant": {
2337
- "type": "PREC",
2338
- "value": 1,
2339
- "content": {
2340
- "type": "SEQ",
2341
- "members": [
2342
- {
2343
- "type": "REPEAT",
2344
- "content": {
2345
- "type": "SYMBOL",
2346
- "name": "annotation"
2347
- }
2348
- },
2349
- {
2350
- "type": "FIELD",
2351
- "name": "name",
2352
- "content": {
2353
- "type": "SYMBOL",
2354
- "name": "identifier"
2355
- }
2356
- },
2357
- {
2358
- "type": "CHOICE",
3006
+ "type": "CHOICE",
3007
+ "members": [
3008
+ {
3009
+ "type": "PREC",
3010
+ "value": 1,
3011
+ "content": {
3012
+ "type": "SEQ",
2359
3013
  "members": [
3014
+ {
3015
+ "type": "REPEAT",
3016
+ "content": {
3017
+ "type": "SYMBOL",
3018
+ "name": "annotation"
3019
+ }
3020
+ },
2360
3021
  {
2361
3022
  "type": "FIELD",
2362
- "name": "arguments",
3023
+ "name": "name",
3024
+ "content": {
3025
+ "type": "SYMBOL",
3026
+ "name": "identifier"
3027
+ }
3028
+ },
3029
+ {
3030
+ "type": "CHOICE",
3031
+ "members": [
3032
+ {
3033
+ "type": "FIELD",
3034
+ "name": "arguments",
3035
+ "content": {
3036
+ "type": "SYMBOL",
3037
+ "name": "argument_list"
3038
+ }
3039
+ },
3040
+ {
3041
+ "type": "BLANK"
3042
+ }
3043
+ ]
3044
+ }
3045
+ ]
3046
+ }
3047
+ },
3048
+ {
3049
+ "type": "PREC",
3050
+ "value": -1,
3051
+ "content": {
3052
+ "type": "SEQ",
3053
+ "members": [
3054
+ {
3055
+ "type": "REPEAT",
3056
+ "content": {
3057
+ "type": "SYMBOL",
3058
+ "name": "annotation"
3059
+ }
3060
+ },
3061
+ {
3062
+ "type": "FIELD",
3063
+ "name": "name",
2363
3064
  "content": {
2364
- "type": "SYMBOL",
2365
- "name": "argument_list"
3065
+ "type": "ALIAS",
3066
+ "content": {
3067
+ "type": "CHOICE",
3068
+ "members": [
3069
+ {
3070
+ "type": "STRING",
3071
+ "value": "sealed"
3072
+ },
3073
+ {
3074
+ "type": "STRING",
3075
+ "value": "trait"
3076
+ }
3077
+ ]
3078
+ },
3079
+ "named": true,
3080
+ "value": "identifier"
2366
3081
  }
2367
3082
  },
2368
3083
  {
2369
- "type": "BLANK"
3084
+ "type": "CHOICE",
3085
+ "members": [
3086
+ {
3087
+ "type": "FIELD",
3088
+ "name": "arguments",
3089
+ "content": {
3090
+ "type": "SYMBOL",
3091
+ "name": "argument_list"
3092
+ }
3093
+ },
3094
+ {
3095
+ "type": "BLANK"
3096
+ }
3097
+ ]
2370
3098
  }
2371
3099
  ]
2372
3100
  }
2373
- ]
2374
- }
3101
+ }
3102
+ ]
2375
3103
  },
2376
3104
  "record_declaration": {
2377
3105
  "type": "PREC_DYNAMIC",
@@ -2539,6 +3267,13 @@
2539
3267
  "package_declaration": {
2540
3268
  "type": "SEQ",
2541
3269
  "members": [
3270
+ {
3271
+ "type": "REPEAT",
3272
+ "content": {
3273
+ "type": "SYMBOL",
3274
+ "name": "annotation"
3275
+ }
3276
+ },
2542
3277
  {
2543
3278
  "type": "STRING",
2544
3279
  "value": "package"
@@ -2556,6 +3291,13 @@
2556
3291
  "import_declaration": {
2557
3292
  "type": "SEQ",
2558
3293
  "members": [
3294
+ {
3295
+ "type": "REPEAT",
3296
+ "content": {
3297
+ "type": "SYMBOL",
3298
+ "name": "annotation"
3299
+ }
3300
+ },
2559
3301
  {
2560
3302
  "type": "STRING",
2561
3303
  "value": "import"
@@ -2656,6 +3398,25 @@
2656
3398
  {
2657
3399
  "type": "SEQ",
2658
3400
  "members": [
3401
+ {
3402
+ "type": "REPEAT",
3403
+ "content": {
3404
+ "type": "SYMBOL",
3405
+ "name": "annotation"
3406
+ }
3407
+ },
3408
+ {
3409
+ "type": "CHOICE",
3410
+ "members": [
3411
+ {
3412
+ "type": "STRING",
3413
+ "value": "final"
3414
+ },
3415
+ {
3416
+ "type": "BLANK"
3417
+ }
3418
+ ]
3419
+ },
2659
3420
  {
2660
3421
  "type": "CHOICE",
2661
3422
  "members": [
@@ -2691,20 +3452,79 @@
2691
3452
  }
2692
3453
  ]
2693
3454
  },
3455
+ {
3456
+ "type": "PREC_DYNAMIC",
3457
+ "value": 1,
3458
+ "content": {
3459
+ "type": "SEQ",
3460
+ "members": [
3461
+ {
3462
+ "type": "REPEAT",
3463
+ "content": {
3464
+ "type": "SYMBOL",
3465
+ "name": "annotation"
3466
+ }
3467
+ },
3468
+ {
3469
+ "type": "CHOICE",
3470
+ "members": [
3471
+ {
3472
+ "type": "STRING",
3473
+ "value": "final"
3474
+ },
3475
+ {
3476
+ "type": "BLANK"
3477
+ }
3478
+ ]
3479
+ },
3480
+ {
3481
+ "type": "FIELD",
3482
+ "name": "type",
3483
+ "content": {
3484
+ "type": "SYMBOL",
3485
+ "name": "_type"
3486
+ }
3487
+ },
3488
+ {
3489
+ "type": "SYMBOL",
3490
+ "name": "_initialized_declarator"
3491
+ },
3492
+ {
3493
+ "type": "REPEAT",
3494
+ "content": {
3495
+ "type": "SEQ",
3496
+ "members": [
3497
+ {
3498
+ "type": "STRING",
3499
+ "value": ","
3500
+ },
3501
+ {
3502
+ "type": "SYMBOL",
3503
+ "name": "_initialized_declarator"
3504
+ }
3505
+ ]
3506
+ }
3507
+ }
3508
+ ]
3509
+ }
3510
+ },
2694
3511
  {
2695
3512
  "type": "SEQ",
2696
3513
  "members": [
2697
3514
  {
2698
- "type": "FIELD",
2699
- "name": "type",
3515
+ "type": "REPEAT",
2700
3516
  "content": {
2701
3517
  "type": "SYMBOL",
2702
- "name": "_type"
3518
+ "name": "annotation"
2703
3519
  }
2704
3520
  },
3521
+ {
3522
+ "type": "STRING",
3523
+ "value": "final"
3524
+ },
2705
3525
  {
2706
3526
  "type": "SYMBOL",
2707
- "name": "_initialized_declarator"
3527
+ "name": "variable_declarator"
2708
3528
  },
2709
3529
  {
2710
3530
  "type": "REPEAT",
@@ -2717,16 +3537,90 @@
2717
3537
  },
2718
3538
  {
2719
3539
  "type": "SYMBOL",
2720
- "name": "_initialized_declarator"
3540
+ "name": "variable_declarator"
2721
3541
  }
2722
3542
  ]
2723
3543
  }
2724
3544
  }
2725
3545
  ]
3546
+ },
3547
+ {
3548
+ "type": "PREC_DYNAMIC",
3549
+ "value": 2,
3550
+ "content": {
3551
+ "type": "SEQ",
3552
+ "members": [
3553
+ {
3554
+ "type": "REPEAT",
3555
+ "content": {
3556
+ "type": "SYMBOL",
3557
+ "name": "annotation"
3558
+ }
3559
+ },
3560
+ {
3561
+ "type": "STRING",
3562
+ "value": "final"
3563
+ },
3564
+ {
3565
+ "type": "FIELD",
3566
+ "name": "type",
3567
+ "content": {
3568
+ "type": "SYMBOL",
3569
+ "name": "_type"
3570
+ }
3571
+ },
3572
+ {
3573
+ "type": "FIELD",
3574
+ "name": "name",
3575
+ "content": {
3576
+ "type": "SYMBOL",
3577
+ "name": "identifier"
3578
+ }
3579
+ }
3580
+ ]
3581
+ }
3582
+ },
3583
+ {
3584
+ "type": "PREC_DYNAMIC",
3585
+ "value": 2,
3586
+ "content": {
3587
+ "type": "SEQ",
3588
+ "members": [
3589
+ {
3590
+ "type": "REPEAT1",
3591
+ "content": {
3592
+ "type": "SYMBOL",
3593
+ "name": "annotation"
3594
+ }
3595
+ },
3596
+ {
3597
+ "type": "ALIAS",
3598
+ "content": {
3599
+ "type": "SYMBOL",
3600
+ "name": "_placeholder_declarator"
3601
+ },
3602
+ "named": true,
3603
+ "value": "variable_declarator"
3604
+ }
3605
+ ]
3606
+ }
2726
3607
  }
2727
3608
  ]
2728
3609
  }
2729
3610
  },
3611
+ "_placeholder_declarator": {
3612
+ "type": "FIELD",
3613
+ "name": "name",
3614
+ "content": {
3615
+ "type": "ALIAS",
3616
+ "content": {
3617
+ "type": "STRING",
3618
+ "value": "_"
3619
+ },
3620
+ "named": true,
3621
+ "value": "identifier"
3622
+ }
3623
+ },
2730
3624
  "_initialized_declarator": {
2731
3625
  "type": "SEQ",
2732
3626
  "members": [
@@ -2900,6 +3794,18 @@
2900
3794
  "type": "STRING",
2901
3795
  "value": "("
2902
3796
  },
3797
+ {
3798
+ "type": "CHOICE",
3799
+ "members": [
3800
+ {
3801
+ "type": "STRING",
3802
+ "value": "final"
3803
+ },
3804
+ {
3805
+ "type": "BLANK"
3806
+ }
3807
+ ]
3808
+ },
2903
3809
  {
2904
3810
  "type": "CHOICE",
2905
3811
  "members": [
@@ -2978,8 +3884,55 @@
2978
3884
  ]
2979
3885
  },
2980
3886
  "expression_statement": {
2981
- "type": "SYMBOL",
2982
- "name": "_expression"
3887
+ "type": "CHOICE",
3888
+ "members": [
3889
+ {
3890
+ "type": "SYMBOL",
3891
+ "name": "_expression"
3892
+ },
3893
+ {
3894
+ "type": "ALIAS",
3895
+ "content": {
3896
+ "type": "SYMBOL",
3897
+ "name": "_statement_assignment"
3898
+ },
3899
+ "named": true,
3900
+ "value": "assignment_expression"
3901
+ }
3902
+ ]
3903
+ },
3904
+ "_statement_assignment": {
3905
+ "type": "PREC_RIGHT",
3906
+ "value": 1,
3907
+ "content": {
3908
+ "type": "SEQ",
3909
+ "members": [
3910
+ {
3911
+ "type": "FIELD",
3912
+ "name": "left",
3913
+ "content": {
3914
+ "type": "SYMBOL",
3915
+ "name": "identifier"
3916
+ }
3917
+ },
3918
+ {
3919
+ "type": "FIELD",
3920
+ "name": "operator",
3921
+ "content": {
3922
+ "type": "STRING",
3923
+ "value": "="
3924
+ }
3925
+ },
3926
+ {
3927
+ "type": "FIELD",
3928
+ "name": "right",
3929
+ "content": {
3930
+ "type": "SYMBOL",
3931
+ "name": "_expression"
3932
+ }
3933
+ }
3934
+ ]
3935
+ }
2983
3936
  },
2984
3937
  "_expression": {
2985
3938
  "type": "CHOICE",
@@ -3533,29 +4486,18 @@
3533
4486
  "type": "SYMBOL",
3534
4487
  "name": "_expression"
3535
4488
  }
3536
- },
3537
- {
3538
- "type": "FIELD",
3539
- "name": "operator",
3540
- "content": {
3541
- "type": "TOKEN",
3542
- "content": {
3543
- "type": "PREC",
3544
- "value": 1,
3545
- "content": {
3546
- "type": "SEQ",
3547
- "members": [
3548
- {
3549
- "type": "STRING",
3550
- "value": "!in"
3551
- },
3552
- {
3553
- "type": "PATTERN",
3554
- "value": "[ \\t\\r\\n\\[({]"
3555
- }
3556
- ]
3557
- }
3558
- }
4489
+ },
4490
+ {
4491
+ "type": "FIELD",
4492
+ "name": "operator",
4493
+ "content": {
4494
+ "type": "ALIAS",
4495
+ "content": {
4496
+ "type": "SYMBOL",
4497
+ "name": "_not_in"
4498
+ },
4499
+ "named": false,
4500
+ "value": "!in"
3559
4501
  }
3560
4502
  },
3561
4503
  {
@@ -3778,37 +4720,88 @@
3778
4720
  ]
3779
4721
  },
3780
4722
  "parenthesized_type_cast": {
3781
- "type": "PREC_RIGHT",
3782
- "value": 14,
3783
- "content": {
3784
- "type": "SEQ",
3785
- "members": [
3786
- {
3787
- "type": "STRING",
3788
- "value": "("
3789
- },
3790
- {
3791
- "type": "FIELD",
3792
- "name": "type",
4723
+ "type": "CHOICE",
4724
+ "members": [
4725
+ {
4726
+ "type": "PREC_DYNAMIC",
4727
+ "value": 1,
4728
+ "content": {
4729
+ "type": "PREC_RIGHT",
4730
+ "value": 14,
3793
4731
  "content": {
3794
- "type": "SYMBOL",
3795
- "name": "_type"
4732
+ "type": "SEQ",
4733
+ "members": [
4734
+ {
4735
+ "type": "STRING",
4736
+ "value": "("
4737
+ },
4738
+ {
4739
+ "type": "FIELD",
4740
+ "name": "type",
4741
+ "content": {
4742
+ "type": "SYMBOL",
4743
+ "name": "_type"
4744
+ }
4745
+ },
4746
+ {
4747
+ "type": "ALIAS",
4748
+ "content": {
4749
+ "type": "SYMBOL",
4750
+ "name": "_cast_close"
4751
+ },
4752
+ "named": false,
4753
+ "value": ")"
4754
+ },
4755
+ {
4756
+ "type": "FIELD",
4757
+ "name": "value",
4758
+ "content": {
4759
+ "type": "SYMBOL",
4760
+ "name": "_expression"
4761
+ }
4762
+ }
4763
+ ]
3796
4764
  }
3797
- },
3798
- {
3799
- "type": "STRING",
3800
- "value": ")"
3801
- },
3802
- {
3803
- "type": "FIELD",
3804
- "name": "value",
4765
+ }
4766
+ },
4767
+ {
4768
+ "type": "PREC_DYNAMIC",
4769
+ "value": -1,
4770
+ "content": {
4771
+ "type": "PREC_RIGHT",
4772
+ "value": 14,
3805
4773
  "content": {
3806
- "type": "SYMBOL",
3807
- "name": "_expression"
4774
+ "type": "SEQ",
4775
+ "members": [
4776
+ {
4777
+ "type": "STRING",
4778
+ "value": "("
4779
+ },
4780
+ {
4781
+ "type": "FIELD",
4782
+ "name": "type",
4783
+ "content": {
4784
+ "type": "SYMBOL",
4785
+ "name": "_type"
4786
+ }
4787
+ },
4788
+ {
4789
+ "type": "STRING",
4790
+ "value": ")"
4791
+ },
4792
+ {
4793
+ "type": "FIELD",
4794
+ "name": "value",
4795
+ "content": {
4796
+ "type": "SYMBOL",
4797
+ "name": "_expression"
4798
+ }
4799
+ }
4800
+ ]
3808
4801
  }
3809
4802
  }
3810
- ]
3811
- }
4803
+ }
4804
+ ]
3812
4805
  },
3813
4806
  "_type": {
3814
4807
  "type": "CHOICE",
@@ -3886,7 +4879,12 @@
3886
4879
  "name": "_type"
3887
4880
  },
3888
4881
  {
3889
- "type": "STRING",
4882
+ "type": "ALIAS",
4883
+ "content": {
4884
+ "type": "SYMBOL",
4885
+ "name": "_subscript_open"
4886
+ },
4887
+ "named": false,
3890
4888
  "value": "["
3891
4889
  },
3892
4890
  {
@@ -4525,7 +5523,12 @@
4525
5523
  }
4526
5524
  },
4527
5525
  {
4528
- "type": "STRING",
5526
+ "type": "ALIAS",
5527
+ "content": {
5528
+ "type": "SYMBOL",
5529
+ "name": "_subscript_open"
5530
+ },
5531
+ "named": false,
4529
5532
  "value": "["
4530
5533
  },
4531
5534
  {
@@ -6134,89 +7137,278 @@
6134
7137
  }
6135
7138
  },
6136
7139
  {
6137
- "type": "STRING",
6138
- "value": "}"
6139
- }
6140
- ]
6141
- },
6142
- "closure_parameters": {
6143
- "type": "SEQ",
6144
- "members": [
6145
- {
6146
- "type": "CHOICE",
7140
+ "type": "STRING",
7141
+ "value": "}"
7142
+ }
7143
+ ]
7144
+ },
7145
+ "closure_parameters": {
7146
+ "type": "SEQ",
7147
+ "members": [
7148
+ {
7149
+ "type": "CHOICE",
7150
+ "members": [
7151
+ {
7152
+ "type": "SEQ",
7153
+ "members": [
7154
+ {
7155
+ "type": "SYMBOL",
7156
+ "name": "closure_parameter"
7157
+ },
7158
+ {
7159
+ "type": "REPEAT",
7160
+ "content": {
7161
+ "type": "SEQ",
7162
+ "members": [
7163
+ {
7164
+ "type": "STRING",
7165
+ "value": ","
7166
+ },
7167
+ {
7168
+ "type": "SYMBOL",
7169
+ "name": "closure_parameter"
7170
+ }
7171
+ ]
7172
+ }
7173
+ }
7174
+ ]
7175
+ },
7176
+ {
7177
+ "type": "BLANK"
7178
+ }
7179
+ ]
7180
+ },
7181
+ {
7182
+ "type": "STRING",
7183
+ "value": "->"
7184
+ }
7185
+ ]
7186
+ },
7187
+ "closure_parameter": {
7188
+ "type": "CHOICE",
7189
+ "members": [
7190
+ {
7191
+ "type": "SEQ",
7192
+ "members": [
7193
+ {
7194
+ "type": "REPEAT",
7195
+ "content": {
7196
+ "type": "SYMBOL",
7197
+ "name": "annotation"
7198
+ }
7199
+ },
7200
+ {
7201
+ "type": "CHOICE",
7202
+ "members": [
7203
+ {
7204
+ "type": "STRING",
7205
+ "value": "final"
7206
+ },
7207
+ {
7208
+ "type": "BLANK"
7209
+ }
7210
+ ]
7211
+ },
7212
+ {
7213
+ "type": "CHOICE",
7214
+ "members": [
7215
+ {
7216
+ "type": "SEQ",
7217
+ "members": [
7218
+ {
7219
+ "type": "CHOICE",
7220
+ "members": [
7221
+ {
7222
+ "type": "CHOICE",
7223
+ "members": [
7224
+ {
7225
+ "type": "STRING",
7226
+ "value": "def"
7227
+ },
7228
+ {
7229
+ "type": "STRING",
7230
+ "value": "var"
7231
+ },
7232
+ {
7233
+ "type": "FIELD",
7234
+ "name": "type",
7235
+ "content": {
7236
+ "type": "CHOICE",
7237
+ "members": [
7238
+ {
7239
+ "type": "SYMBOL",
7240
+ "name": "_type"
7241
+ },
7242
+ {
7243
+ "type": "SYMBOL",
7244
+ "name": "varargs_type"
7245
+ }
7246
+ ]
7247
+ }
7248
+ }
7249
+ ]
7250
+ },
7251
+ {
7252
+ "type": "BLANK"
7253
+ }
7254
+ ]
7255
+ },
7256
+ {
7257
+ "type": "FIELD",
7258
+ "name": "name",
7259
+ "content": {
7260
+ "type": "SYMBOL",
7261
+ "name": "identifier"
7262
+ }
7263
+ }
7264
+ ]
7265
+ },
7266
+ {
7267
+ "type": "FIELD",
7268
+ "name": "name",
7269
+ "content": {
7270
+ "type": "ALIAS",
7271
+ "content": {
7272
+ "type": "STRING",
7273
+ "value": "var"
7274
+ },
7275
+ "named": true,
7276
+ "value": "identifier"
7277
+ }
7278
+ }
7279
+ ]
7280
+ },
7281
+ {
7282
+ "type": "CHOICE",
7283
+ "members": [
7284
+ {
7285
+ "type": "SEQ",
7286
+ "members": [
7287
+ {
7288
+ "type": "STRING",
7289
+ "value": "="
7290
+ },
7291
+ {
7292
+ "type": "FIELD",
7293
+ "name": "default",
7294
+ "content": {
7295
+ "type": "SYMBOL",
7296
+ "name": "_expression"
7297
+ }
7298
+ }
7299
+ ]
7300
+ },
7301
+ {
7302
+ "type": "BLANK"
7303
+ }
7304
+ ]
7305
+ }
7306
+ ]
7307
+ },
7308
+ {
7309
+ "type": "SEQ",
6147
7310
  "members": [
6148
7311
  {
6149
- "type": "SEQ",
7312
+ "type": "REPEAT1",
7313
+ "content": {
7314
+ "type": "SYMBOL",
7315
+ "name": "annotation"
7316
+ }
7317
+ },
7318
+ {
7319
+ "type": "CHOICE",
6150
7320
  "members": [
6151
7321
  {
6152
- "type": "SYMBOL",
6153
- "name": "closure_parameter"
7322
+ "type": "FIELD",
7323
+ "name": "name",
7324
+ "content": {
7325
+ "type": "ALIAS",
7326
+ "content": {
7327
+ "type": "STRING",
7328
+ "value": "_"
7329
+ },
7330
+ "named": true,
7331
+ "value": "identifier"
7332
+ }
6154
7333
  },
6155
7334
  {
6156
- "type": "REPEAT",
6157
- "content": {
6158
- "type": "SEQ",
6159
- "members": [
6160
- {
6161
- "type": "STRING",
6162
- "value": ","
6163
- },
6164
- {
7335
+ "type": "SEQ",
7336
+ "members": [
7337
+ {
7338
+ "type": "FIELD",
7339
+ "name": "type",
7340
+ "content": {
7341
+ "type": "ALIAS",
7342
+ "content": {
7343
+ "type": "STRING",
7344
+ "value": "_"
7345
+ },
7346
+ "named": true,
7347
+ "value": "type_identifier"
7348
+ }
7349
+ },
7350
+ {
7351
+ "type": "FIELD",
7352
+ "name": "name",
7353
+ "content": {
6165
7354
  "type": "SYMBOL",
6166
- "name": "closure_parameter"
7355
+ "name": "identifier"
6167
7356
  }
6168
- ]
6169
- }
7357
+ }
7358
+ ]
6170
7359
  }
6171
7360
  ]
6172
7361
  },
6173
7362
  {
6174
- "type": "BLANK"
7363
+ "type": "CHOICE",
7364
+ "members": [
7365
+ {
7366
+ "type": "SEQ",
7367
+ "members": [
7368
+ {
7369
+ "type": "STRING",
7370
+ "value": "="
7371
+ },
7372
+ {
7373
+ "type": "FIELD",
7374
+ "name": "default",
7375
+ "content": {
7376
+ "type": "SYMBOL",
7377
+ "name": "_expression"
7378
+ }
7379
+ }
7380
+ ]
7381
+ },
7382
+ {
7383
+ "type": "BLANK"
7384
+ }
7385
+ ]
6175
7386
  }
6176
7387
  ]
6177
- },
6178
- {
6179
- "type": "STRING",
6180
- "value": "->"
6181
7388
  }
6182
7389
  ]
6183
7390
  },
6184
- "closure_parameter": {
7391
+ "list_literal": {
6185
7392
  "type": "SEQ",
6186
7393
  "members": [
6187
7394
  {
6188
7395
  "type": "CHOICE",
6189
7396
  "members": [
6190
7397
  {
6191
- "type": "FIELD",
6192
- "name": "type",
6193
- "content": {
6194
- "type": "SYMBOL",
6195
- "name": "_type"
6196
- }
7398
+ "type": "STRING",
7399
+ "value": "["
6197
7400
  },
6198
7401
  {
6199
- "type": "BLANK"
7402
+ "type": "ALIAS",
7403
+ "content": {
7404
+ "type": "SYMBOL",
7405
+ "name": "_subscript_open"
7406
+ },
7407
+ "named": false,
7408
+ "value": "["
6200
7409
  }
6201
7410
  ]
6202
7411
  },
6203
- {
6204
- "type": "FIELD",
6205
- "name": "name",
6206
- "content": {
6207
- "type": "SYMBOL",
6208
- "name": "identifier"
6209
- }
6210
- }
6211
- ]
6212
- },
6213
- "list_literal": {
6214
- "type": "SEQ",
6215
- "members": [
6216
- {
6217
- "type": "STRING",
6218
- "value": "["
6219
- },
6220
7412
  {
6221
7413
  "type": "CHOICE",
6222
7414
  "members": [
@@ -6272,8 +7464,22 @@
6272
7464
  "type": "SEQ",
6273
7465
  "members": [
6274
7466
  {
6275
- "type": "STRING",
6276
- "value": "["
7467
+ "type": "CHOICE",
7468
+ "members": [
7469
+ {
7470
+ "type": "STRING",
7471
+ "value": "["
7472
+ },
7473
+ {
7474
+ "type": "ALIAS",
7475
+ "content": {
7476
+ "type": "SYMBOL",
7477
+ "name": "_subscript_open"
7478
+ },
7479
+ "named": false,
7480
+ "value": "["
7481
+ }
7482
+ ]
6277
7483
  },
6278
7484
  {
6279
7485
  "type": "CHOICE",
@@ -6399,8 +7605,22 @@
6399
7605
  "name": "_expression"
6400
7606
  },
6401
7607
  {
6402
- "type": "STRING",
6403
- "value": ")"
7608
+ "type": "CHOICE",
7609
+ "members": [
7610
+ {
7611
+ "type": "STRING",
7612
+ "value": ")"
7613
+ },
7614
+ {
7615
+ "type": "ALIAS",
7616
+ "content": {
7617
+ "type": "SYMBOL",
7618
+ "name": "_cast_close"
7619
+ },
7620
+ "named": false,
7621
+ "value": ")"
7622
+ }
7623
+ ]
6404
7624
  }
6405
7625
  ]
6406
7626
  },
@@ -6560,6 +7780,10 @@
6560
7780
  },
6561
7781
  "named": true,
6562
7782
  "value": "string_fragment"
7783
+ },
7784
+ {
7785
+ "type": "SYMBOL",
7786
+ "name": "_string_body"
6563
7787
  }
6564
7788
  ]
6565
7789
  }
@@ -6701,6 +7925,10 @@
6701
7925
  },
6702
7926
  "named": true,
6703
7927
  "value": "string_fragment"
7928
+ },
7929
+ {
7930
+ "type": "SYMBOL",
7931
+ "name": "_string_body"
6704
7932
  }
6705
7933
  ]
6706
7934
  }
@@ -6757,27 +7985,48 @@
6757
7985
  "type": "CHOICE",
6758
7986
  "members": [
6759
7987
  {
6760
- "type": "ALIAS",
6761
- "content": {
6762
- "type": "SYMBOL",
6763
- "name": "_triple_gstring_text"
6764
- },
6765
- "named": true,
6766
- "value": "string_fragment"
6767
- },
6768
- {
6769
- "type": "SYMBOL",
6770
- "name": "gstring_dollar_interpolation"
6771
- },
6772
- {
6773
- "type": "SYMBOL",
6774
- "name": "gstring_brace_interpolation"
7988
+ "type": "CHOICE",
7989
+ "members": [
7990
+ {
7991
+ "type": "ALIAS",
7992
+ "content": {
7993
+ "type": "SYMBOL",
7994
+ "name": "_triple_gstring_text"
7995
+ },
7996
+ "named": true,
7997
+ "value": "string_fragment"
7998
+ },
7999
+ {
8000
+ "type": "SYMBOL",
8001
+ "name": "gstring_dollar_interpolation"
8002
+ },
8003
+ {
8004
+ "type": "SYMBOL",
8005
+ "name": "gstring_brace_interpolation"
8006
+ },
8007
+ {
8008
+ "type": "ALIAS",
8009
+ "content": {
8010
+ "type": "SYMBOL",
8011
+ "name": "_gstring_literal_dollar"
8012
+ },
8013
+ "named": true,
8014
+ "value": "string_fragment"
8015
+ },
8016
+ {
8017
+ "type": "SYMBOL",
8018
+ "name": "_string_body"
8019
+ }
8020
+ ]
6775
8021
  },
6776
8022
  {
6777
8023
  "type": "ALIAS",
6778
8024
  "content": {
6779
- "type": "SYMBOL",
6780
- "name": "_gstring_literal_dollar"
8025
+ "type": "IMMEDIATE_TOKEN",
8026
+ "content": {
8027
+ "type": "STRING",
8028
+ "value": "\""
8029
+ }
6781
8030
  },
6782
8031
  "named": true,
6783
8032
  "value": "string_fragment"
@@ -6811,11 +8060,11 @@
6811
8060
  },
6812
8061
  {
6813
8062
  "type": "PATTERN",
6814
- "value": "\"[^\"]"
8063
+ "value": "\"(\\\\[\\s\\S]|[^\"\\\\$])"
6815
8064
  },
6816
8065
  {
6817
8066
  "type": "PATTERN",
6818
- "value": "\"\"[^\"]"
8067
+ "value": "\"\"(\\\\[\\s\\S]|[^\"\\\\$])"
6819
8068
  }
6820
8069
  ]
6821
8070
  }
@@ -6843,7 +8092,7 @@
6843
8092
  "type": "IMMEDIATE_TOKEN",
6844
8093
  "content": {
6845
8094
  "type": "PATTERN",
6846
- "value": "\\$[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*"
8095
+ "value": "\\$(?:[A-Za-z_][A-Za-z_0-9]*(?:[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}\\p{Nd}\\p{Mn}\\p{Mc}--[\\x00-\\x7F]][A-Za-z_0-9[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}\\p{Nd}\\p{Mn}\\p{Mc}--[\\x00-\\x7F]]]*)?|[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}--[\\x00-\\x7F]][A-Za-z_0-9[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}\\p{Nd}\\p{Mn}\\p{Mc}--[\\x00-\\x7F]]]*)(?:\\.(?:[A-Za-z_][A-Za-z_0-9]*(?:[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}\\p{Nd}\\p{Mn}\\p{Mc}--[\\x00-\\x7F]][A-Za-z_0-9[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}\\p{Nd}\\p{Mn}\\p{Mc}--[\\x00-\\x7F]]]*)?|[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}--[\\x00-\\x7F]][A-Za-z_0-9[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}\\p{Nd}\\p{Mn}\\p{Mc}--[\\x00-\\x7F]]]*))*"
6847
8096
  }
6848
8097
  },
6849
8098
  "gstring_brace_interpolation": {
@@ -6883,27 +8132,48 @@
6883
8132
  "type": "CHOICE",
6884
8133
  "members": [
6885
8134
  {
6886
- "type": "ALIAS",
6887
- "content": {
6888
- "type": "SYMBOL",
6889
- "name": "_dollar_slashy_text"
6890
- },
6891
- "named": true,
6892
- "value": "string_fragment"
6893
- },
6894
- {
6895
- "type": "SYMBOL",
6896
- "name": "gstring_dollar_interpolation"
6897
- },
6898
- {
6899
- "type": "SYMBOL",
6900
- "name": "gstring_brace_interpolation"
8135
+ "type": "CHOICE",
8136
+ "members": [
8137
+ {
8138
+ "type": "ALIAS",
8139
+ "content": {
8140
+ "type": "SYMBOL",
8141
+ "name": "_dollar_slashy_text"
8142
+ },
8143
+ "named": true,
8144
+ "value": "string_fragment"
8145
+ },
8146
+ {
8147
+ "type": "SYMBOL",
8148
+ "name": "gstring_dollar_interpolation"
8149
+ },
8150
+ {
8151
+ "type": "SYMBOL",
8152
+ "name": "gstring_brace_interpolation"
8153
+ },
8154
+ {
8155
+ "type": "ALIAS",
8156
+ "content": {
8157
+ "type": "SYMBOL",
8158
+ "name": "_gstring_literal_dollar"
8159
+ },
8160
+ "named": true,
8161
+ "value": "string_fragment"
8162
+ },
8163
+ {
8164
+ "type": "SYMBOL",
8165
+ "name": "_string_body"
8166
+ }
8167
+ ]
6901
8168
  },
6902
8169
  {
6903
8170
  "type": "ALIAS",
6904
8171
  "content": {
6905
- "type": "SYMBOL",
6906
- "name": "_gstring_literal_dollar"
8172
+ "type": "IMMEDIATE_TOKEN",
8173
+ "content": {
8174
+ "type": "STRING",
8175
+ "value": "/"
8176
+ }
6907
8177
  },
6908
8178
  "named": true,
6909
8179
  "value": "string_fragment"
@@ -6933,7 +8203,7 @@
6933
8203
  },
6934
8204
  {
6935
8205
  "type": "PATTERN",
6936
- "value": "\\/[^$]"
8206
+ "value": "\\/+[^/$]"
6937
8207
  },
6938
8208
  {
6939
8209
  "type": "PATTERN",
@@ -6977,7 +8247,7 @@
6977
8247
  },
6978
8248
  "identifier": {
6979
8249
  "type": "PATTERN",
6980
- "value": "[A-Za-z_$][A-Za-z0-9_$]*"
8250
+ "value": "(?:[A-Za-z_$][A-Za-z_$0-9]*(?:[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}\\p{Nd}\\p{Mn}\\p{Mc}--[\\x00-\\x7F]][A-Za-z_$0-9[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}\\p{Nd}\\p{Mn}\\p{Mc}--[\\x00-\\x7F]]]*)?|[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}--[\\x00-\\x7F]][A-Za-z_$0-9[\\p{L}\\p{Nl}\\p{Sc}\\p{Pc}\\p{Nd}\\p{Mn}\\p{Mc}--[\\x00-\\x7F]]]*)"
6981
8251
  }
6982
8252
  },
6983
8253
  "extras": [
@@ -6985,6 +8255,10 @@
6985
8255
  "type": "PATTERN",
6986
8256
  "value": "\\s"
6987
8257
  },
8258
+ {
8259
+ "type": "PATTERN",
8260
+ "value": "\\\\\\r?\\n"
8261
+ },
6988
8262
  {
6989
8263
  "type": "SYMBOL",
6990
8264
  "name": "line_comment"
@@ -6999,6 +8273,10 @@
6999
8273
  }
7000
8274
  ],
7001
8275
  "conflicts": [
8276
+ [
8277
+ "_modifier",
8278
+ "local_variable_declaration"
8279
+ ],
7002
8280
  [
7003
8281
  "_expression",
7004
8282
  "_type"
@@ -7031,6 +8309,27 @@
7031
8309
  [
7032
8310
  "formal_parameter",
7033
8311
  "_expression"
8312
+ ],
8313
+ [
8314
+ "_modifier",
8315
+ "_modified_constructor_declaration"
8316
+ ],
8317
+ [
8318
+ "_modifier",
8319
+ "local_variable_declaration",
8320
+ "closure_parameter"
8321
+ ],
8322
+ [
8323
+ "_initialized_declarator",
8324
+ "closure_parameter"
8325
+ ],
8326
+ [
8327
+ "variable_declarator",
8328
+ "closure_parameter"
8329
+ ],
8330
+ [
8331
+ "_placeholder_declarator",
8332
+ "closure_parameter"
7034
8333
  ]
7035
8334
  ],
7036
8335
  "precedences": [],
@@ -7054,6 +8353,30 @@
7054
8353
  {
7055
8354
  "type": "SYMBOL",
7056
8355
  "name": "_record_keyword"
8356
+ },
8357
+ {
8358
+ "type": "SYMBOL",
8359
+ "name": "_command_named_key"
8360
+ },
8361
+ {
8362
+ "type": "SYMBOL",
8363
+ "name": "_subscript_open"
8364
+ },
8365
+ {
8366
+ "type": "SYMBOL",
8367
+ "name": "_cast_close"
8368
+ },
8369
+ {
8370
+ "type": "SYMBOL",
8371
+ "name": "_not_in"
8372
+ },
8373
+ {
8374
+ "type": "SYMBOL",
8375
+ "name": "_string_body"
8376
+ },
8377
+ {
8378
+ "type": "SYMBOL",
8379
+ "name": "_error_sentinel"
7057
8380
  }
7058
8381
  ],
7059
8382
  "inline": [],