diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2022-08-17 16:14:46 +0200 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2022-08-17 16:49:40 +0200 |
commit | 88049f80867dc6e738bd7837ac2e6885353925da (patch) | |
tree | 063708bd0c0ad040c603449824da2e08acff0332 | |
parent | 0f9327b61fb666a0a6169db8e6ce9387ad887019 (diff) | |
download | gobject-introspection-88049f80867dc6e738bd7837ac2e6885353925da.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. */ |