diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2022-08-17 16:14:46 +0200 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2022-09-21 13:26:40 +0100 |
commit | 0358eaa6245d9003f0f5b44cd4ed6d0282853c51 (patch) | |
tree | 7f010b2d91c8bd779202789659594ad41207a718 | |
parent | 1122952c381424351c0350f7acf0af419d653440 (diff) | |
download | gobject-introspection-0358eaa6245d9003f0f5b44cd4ed6d0282853c51.tar.gz |
giscanner: Support C99 designated initializers
https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html
Based on https://github.com/katef/kgt/blob/c9d8ad246855c6b65e42371be7898f4073c28d18/examples/c99-grammar.iso-ebnf#L247-L252
-rw-r--r-- | giscanner/scannerparser.y | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/giscanner/scannerparser.y b/giscanner/scannerparser.y index e0709cde..52fc1996 100644 --- a/giscanner/scannerparser.y +++ b/giscanner/scannerparser.y @@ -1406,8 +1406,23 @@ initializer ; initializer_list - : initializer - | initializer_list ',' initializer + : initializer_list_item + | initializer_list ',' initializer_list_item + ; + +initializer_list_item + : designator_list '=' initializer + | initializer + ; + +designator_list + : designator + | designator_list designator + ; + +designator + : '[' constant_expression ']' + | '.' identifier ; /* A.2.3 Statements. */ |