@@ -322,6 +322,7 @@ module.exports = grammar({
322
322
$ . type_check_pattern ,
323
323
$ . optional_pattern ,
324
324
$ . identifier_pattern ,
325
+ $ . named_field_pattern ,
325
326
) ,
326
327
327
328
optional_pattern : ( $ ) => prec . left ( seq ( "?" , $ . _pattern ) ) ,
@@ -331,7 +332,7 @@ module.exports = grammar({
331
332
332
333
attribute_pattern : ( $ ) => prec . left ( seq ( $ . attributes , $ . _pattern ) ) ,
333
334
334
- paren_pattern : ( $ ) => seq ( "(" , $ . _pattern , ")" ) ,
335
+ paren_pattern : ( $ ) => prec ( 1 , seq ( "(" , $ . _pattern , ")" ) ) ,
335
336
336
337
as_pattern : ( $ ) => prec . left ( 0 , seq ( $ . _pattern , "as" , $ . identifier ) ) ,
337
338
cons_pattern : ( $ ) => prec . left ( 0 , seq ( $ . _pattern , "::" , $ . _pattern ) ) ,
@@ -377,7 +378,7 @@ module.exports = grammar({
377
378
seq (
378
379
optional ( $ . _newline ) ,
379
380
$ . _pattern ,
380
- repeat ( seq ( choice ( ";" , $ . _newline ) , $ . _pattern ) ) ,
381
+ repeat ( seq ( $ . _newline , $ . _pattern ) ) ,
381
382
) ,
382
383
$ . _indent ,
383
384
$ . _dedent ,
@@ -387,7 +388,19 @@ module.exports = grammar({
387
388
array_pattern : ( $ ) => seq ( "[|" , optional ( $ . _list_pattern_content ) , "|]" ) ,
388
389
record_pattern : ( $ ) =>
389
390
prec . left (
390
- seq ( "{" , $ . field_pattern , repeat ( seq ( ";" , $ . field_pattern ) ) , "}" ) ,
391
+ seq (
392
+ "{" ,
393
+ $ . field_pattern ,
394
+ repeat ( seq ( $ . _newline , $ . field_pattern ) ) ,
395
+ "}" ,
396
+ ) ,
397
+ ) ,
398
+
399
+ named_field : ( $ ) => seq ( optional ( seq ( $ . identifier , "=" ) ) , $ . _pattern ) ,
400
+
401
+ named_field_pattern : ( $ ) =>
402
+ prec . left (
403
+ seq ( "(" , $ . named_field , repeat ( seq ( $ . _newline , $ . named_field ) ) , ")" ) ,
391
404
) ,
392
405
393
406
identifier_pattern : ( $ ) =>
0 commit comments