summaryrefslogtreecommitdiff
path: root/giscanner/scannerparser.y
diff options
context:
space:
mode:
Diffstat (limited to 'giscanner/scannerparser.y')
-rw-r--r--giscanner/scannerparser.y19
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. */