From 4c49fc38831fcfdb47a4220f04b8c268a71abbbd Mon Sep 17 00:00:00 2001 From: Amaan Qureshi Date: Fri, 21 Jul 2023 05:27:56 -0400 Subject: [PATCH] fix: rework typedef specifiers again --- grammar.js | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/grammar.js b/grammar.js index 446b9ea..399e34e 100644 --- a/grammar.js +++ b/grammar.js @@ -62,8 +62,8 @@ module.exports = grammar({ [$._type_specifier, $._expression_not_binary], [$._type_specifier, $._expression_not_binary, $.macro_type_specifier], [$._type_specifier, $.macro_type_specifier], - [$._typedef_type_specifier, $.macro_type_specifier], [$.sized_type_specifier], + [$._type_specifier, $.sized_type_specifier], [$.attributed_statement], [$._declaration_modifiers, $.attributed_statement], [$.enum_specifier], @@ -242,7 +242,7 @@ module.exports = grammar({ type_definition: $ => seq( 'typedef', repeat($.type_qualifier), - field('type', $._typedef_type_specifier), + field('type', $._type_specifier), repeat($.type_qualifier), commaSep1(field('declarator', $._type_declarator)), ';', @@ -358,6 +358,8 @@ module.exports = grammar({ alias($.array_type_declarator, $.array_declarator), alias($.parenthesized_type_declarator, $.parenthesized_declarator), $._type_identifier, + alias(choice('signed', 'unsigned', 'long', 'short'), $.primitive_type), + $.primitive_type, ), _abstract_declarator: $ => choice( @@ -508,16 +510,6 @@ module.exports = grammar({ 'noreturn', ), - _typedef_type_specifier: $ => choice( - $.struct_specifier, - $.union_specifier, - $.enum_specifier, - $.macro_type_specifier, - alias($._typedef_sized_type_specifier, $.sized_type_specifier), - $.primitive_type, - $._type_identifier, - ), - _type_specifier: $ => choice( $.struct_specifier, $.union_specifier, @@ -528,13 +520,6 @@ module.exports = grammar({ $._type_identifier, ), - _typedef_sized_type_specifier: _ => repeat1(choice( - 'signed', - 'unsigned', - 'long', - 'short', - )), - sized_type_specifier: $ => seq( repeat1(choice( 'signed', @@ -1168,7 +1153,10 @@ module.exports = grammar({ identifier: _ => /(\p{XID_Start}|_|\\u[0-9A-Fa-f]{4}|\\U[0-9A-Fa-f]{8})(\p{XID_Continue}|\\u[0-9A-Fa-f]{4}|\\U[0-9A-Fa-f]{8})*/, - _type_identifier: $ => alias($.identifier, $.type_identifier), + _type_identifier: $ => alias( + $.identifier, + $.type_identifier, + ), _field_identifier: $ => alias($.identifier, $.field_identifier), _statement_identifier: $ => alias($.identifier, $.statement_identifier),