+string_decl
+ : STRING IDENT '<' const '>'
+ {
+ $$ = new_decl (decl_type_string, NULL, $2, $4);
+ }
+ | STRING IDENT '<' '>'
+ {
+ $$ = new_decl (decl_type_string, NULL, $2, NULL);
+ }
+ ;
+
+opaque_decl
+ : OPAQUE IDENT '[' const ']'
+ {
+ $$ = new_decl (decl_type_opaque_fixed, NULL, $2, $4);
+ }
+ | OPAQUE IDENT '<' const '>'
+ {
+ $$ = new_decl (decl_type_opaque_variable, NULL, $2, $4);
+ }
+ ;
+