@@ -265,10 +265,7 @@ module.exports = grammar({
265265
266266 class_declaration : $ => seq (
267267 $ . _class_declaration_initializer ,
268- choice (
269- seq ( field ( 'body' , $ . declaration_list ) , $ . _optional_semi ) ,
270- ';' ,
271- ) ,
268+ $ . _declaration_list_body ,
272269 ) ,
273270
274271 _class_declaration_initializer : $ => seq (
@@ -282,10 +279,7 @@ module.exports = grammar({
282279
283280 struct_declaration : $ => seq (
284281 $ . _struct_declaration_initializer ,
285- choice (
286- seq ( field ( 'body' , $ . declaration_list ) , $ . _optional_semi ) ,
287- ';' ,
288- ) ,
282+ $ . _declaration_list_body ,
289283 ) ,
290284
291285 _struct_declaration_initializer : $ => seq (
@@ -332,10 +326,7 @@ module.exports = grammar({
332326
333327 interface_declaration : $ => seq (
334328 $ . _interface_declaration_initializer ,
335- choice (
336- seq ( field ( 'body' , $ . declaration_list ) , $ . _optional_semi ) ,
337- ';' ,
338- ) ,
329+ $ . _declaration_list_body ,
339330 ) ,
340331
341332 _interface_declaration_initializer : $ => seq (
@@ -366,10 +357,7 @@ module.exports = grammar({
366357
367358 record_declaration : $ => seq (
368359 $ . _record_declaration_initializer ,
369- choice (
370- seq ( field ( 'body' , $ . declaration_list ) , $ . _optional_semi ) ,
371- ';' ,
372- ) ,
360+ $ . _declaration_list_body ,
373361 ) ,
374362
375363 _record_declaration_initializer : $ => seq (
@@ -388,6 +376,11 @@ module.exports = grammar({
388376 seq ( ':' , $ . primary_constructor_base_type , optional ( seq ( ',' , commaSep1 ( $ . _name ) ) ) ) ,
389377 ) ,
390378
379+ _declaration_list_body : $ => choice (
380+ seq ( field ( 'body' , $ . declaration_list ) , $ . _optional_semi ) ,
381+ ';' ,
382+ ) ,
383+
391384 primary_constructor_base_type : $ => seq (
392385 field ( 'type' , $ . _name ) ,
393386 $ . argument_list ,
0 commit comments