diff --git a/tools/qfcc/source/qc-parse.y b/tools/qfcc/source/qc-parse.y index e052de96d..d333e6f38 100644 --- a/tools/qfcc/source/qc-parse.y +++ b/tools/qfcc/source/qc-parse.y @@ -181,6 +181,7 @@ int yylex (YYSTYPE *yylval, YYLTYPE *yylloc); %type generic_param %type type_func type_op %type type_function type_param type_ref +%type type_ref_spec %type generic_type %type type_list type_param_list @@ -1250,7 +1251,7 @@ type_list ; type_ref - : TYPE_SPEC { $$ = new_type_expr ($1.type); } + : type_ref_spec { $$ = new_type_expr ($1.type); } | CLASS_NAME { $$ = new_type_expr ($1->type); } | TYPE_NAME { @@ -1262,6 +1263,11 @@ type_ref } ; +type_ref_spec + : TYPE_SPEC + | type_ref_spec TYPE_SPEC { $$ = spec_merge ($1, $2); } + ; + attribute_list : attribute | attribute_list ',' attribute