Sfoglia il codice sorgente

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 3 anni fa
parent
commit
20fee37fd0
Non sono state trovate chiavi note per questa firma nel database ID Chiave GPG: E67890ADC4227273
1 ha cambiato i file con 12 aggiunte e 0 eliminazioni
  1. +12
    -0
      grammar.js

+ 12
- 0
grammar.js Vedi File

@ -475,7 +475,9 @@ module.exports = grammar({
'const', 'const',
'volatile', 'volatile',
'restrict', 'restrict',
'__restrict__',
'_Atomic', '_Atomic',
'_Noreturn',
), ),
_type_specifier: $ => choice( _type_specifier: $ => choice(
@ -736,6 +738,7 @@ module.exports = grammar({
$.cast_expression, $.cast_expression,
$.pointer_expression, $.pointer_expression,
$.sizeof_expression, $.sizeof_expression,
$.generic_expression,
$.subscript_expression, $.subscript_expression,
$.call_expression, $.call_expression,
$.field_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( subscript_expression: $ => prec(PREC.SUBSCRIPT, seq(
field('argument', $._expression), field('argument', $._expression),
'[', '[',

Caricamento…
Annulla
Salva