vkd3d-shader/hlsl: Add 'braces' flag to parse initializers.

Signed-off-by: Francisco Casas <fcasas@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Francisco Casas 2022-03-30 23:38:28 +02:00 committed by Alexandre Julliard
parent d9dc1a4554
commit 426c08eba4

View File

@ -48,6 +48,7 @@ struct parse_initializer
struct hlsl_ir_node **args; struct hlsl_ir_node **args;
unsigned int args_count; unsigned int args_count;
struct list *instrs; struct list *instrs;
bool braces;
}; };
struct parse_array_sizes struct parse_array_sizes
@ -3215,14 +3216,17 @@ complex_initializer:
} }
$$.args[0] = node_from_list($1); $$.args[0] = node_from_list($1);
$$.instrs = $1; $$.instrs = $1;
$$.braces = false;
} }
| '{' complex_initializer_list '}' | '{' complex_initializer_list '}'
{ {
$$ = $2; $$ = $2;
$$.braces = true;
} }
| '{' complex_initializer_list ',' '}' | '{' complex_initializer_list ',' '}'
{ {
$$ = $2; $$ = $2;
$$.braces = true;
} }
complex_initializer_list: complex_initializer_list:
@ -3260,6 +3264,7 @@ initializer_expr_list:
} }
$$.args[0] = node_from_list($1); $$.args[0] = node_from_list($1);
$$.instrs = $1; $$.instrs = $1;
$$.braces = false;
} }
| initializer_expr_list ',' initializer_expr | initializer_expr_list ',' initializer_expr
{ {
@ -3396,6 +3401,7 @@ func_arguments:
$$.args_count = 0; $$.args_count = 0;
if (!($$.instrs = make_empty_list(ctx))) if (!($$.instrs = make_empty_list(ctx)))
YYABORT; YYABORT;
$$.braces = false;
} }
| initializer_expr_list | initializer_expr_list