From 86915b495b2fefa671750b24eda0225000ccbb9e Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 1 Jun 2016 18:40:21 -0700 Subject: [PATCH] glsl: Simplify interface qualifier parsing. This better matches the grammar in section 4.3.9 of the GLSL 4.5 spec, and also removes some redundant code. Signed-off-by: Kenneth Graunke Reviewed-by: Timothy Arceri --- src/compiler/glsl/glsl_parser.yy | 41 +++++++--------------------------------- 1 file changed, 7 insertions(+), 34 deletions(-) diff --git a/src/compiler/glsl/glsl_parser.yy b/src/compiler/glsl/glsl_parser.yy index 61c4723..146589a 100644 --- a/src/compiler/glsl/glsl_parser.yy +++ b/src/compiler/glsl/glsl_parser.yy @@ -219,8 +219,6 @@ static bool match_layout_qualifier(const char *s1, const char *s2, %type subroutine_qualifier %type subroutine_type_list %type interface_qualifier -%type uniform_interface_qualifier -%type buffer_interface_qualifier %type type_specifier %type type_specifier_nonarray %type array_specifier @@ -2663,30 +2661,11 @@ basic_interface_block: { ast_interface_block *const block = $6; - block->block_name = $2; - block->declarations.push_degenerate_list_at_head(& $4->link); - - _mesa_ast_process_interface_block(& @1, state, block, $1); - - $$ = block; - } - | uniform_interface_qualifier NEW_IDENTIFIER '{' member_list '}' instance_name_opt ';' - { - ast_interface_block *const block = $6; - - block->layout = *state->default_uniform_qualifier; - block->block_name = $2; - block->declarations.push_degenerate_list_at_head(& $4->link); - - _mesa_ast_process_interface_block(& @1, state, block, $1); - - $$ = block; - } - | buffer_interface_qualifier NEW_IDENTIFIER '{' member_list '}' instance_name_opt ';' - { - ast_interface_block *const block = $6; - - block->layout = *state->default_shader_storage_qualifier; + if ($1.flags.q.uniform) { + block->layout = *state->default_uniform_qualifier; + } else if ($1.flags.q.buffer) { + block->layout = *state->default_shader_storage_qualifier; + } block->block_name = $2; block->declarations.push_degenerate_list_at_head(& $4->link); @@ -2707,18 +2686,12 @@ interface_qualifier: memset(& $$, 0, sizeof($$)); $$.flags.q.out = 1; } - ; - -uniform_interface_qualifier: - UNIFORM + | UNIFORM { memset(& $$, 0, sizeof($$)); $$.flags.q.uniform = 1; } - ; - -buffer_interface_qualifier: - BUFFER + | BUFFER { memset(& $$, 0, sizeof($$)); $$.flags.q.buffer = 1; -- 2.7.4