Parcourir la source

feat: add _Generic expressions and missing type qualifiers

_Generic is a C11 feature, __restrict__ and _Noreturn were added to type_qualifiers
pull/137/head
Amaan Qureshi il y a 3 ans
Parent
révision
20fee37fd0
Aucune clé connue n'a été trouvée dans la base pour cette signature ID de la clé GPG: E67890ADC4227273
1 fichiers modifiés avec 12 ajouts et 0 suppressions
  1. +12
    -0
      grammar.js

+ 12
- 0
grammar.js Voir le fichier

@ -475,7 +475,9 @@ module.exports = grammar({
'const',
'volatile',
'restrict',
'__restrict__',
'_Atomic',
'_Noreturn',
),
_type_specifier: $ => choice(
@ -736,6 +738,7 @@ module.exports = grammar({
$.cast_expression,
$.pointer_expression,
$.sizeof_expression,
$.generic_expression,
$.subscript_expression,
$.call_expression,
$.field_expression,
@ -865,6 +868,15 @@ module.exports = grammar({
),
)),
generic_expression: $ => prec(PREC.CALL, seq(
'_Generic',
'(',
$._expression,
',',
commaSep1(seq($.type_descriptor, ':', $._expression)),
')',
)),
subscript_expression: $ => prec(PREC.SUBSCRIPT, seq(
field('argument', $._expression),
'[',

Chargement…
Annuler
Enregistrer