glsl: Don't hide the type of struct_declaration_list.

I've been trying to derive from this for UBO support, and the slightly
obfuscated types were putting me over the edge.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Eric Anholt 2012-04-26 10:16:52 -07:00
parent 532e99cbf2
commit 912a429bc5
3 changed files with 9 additions and 5 deletions

View File

@ -417,15 +417,19 @@ struct ast_type_qualifier {
const char *interpolation_string() const; const char *interpolation_string() const;
}; };
class ast_declarator_list;
class ast_struct_specifier : public ast_node { class ast_struct_specifier : public ast_node {
public: public:
ast_struct_specifier(const char *identifier, ast_node *declarator_list); ast_struct_specifier(const char *identifier,
ast_declarator_list *declarator_list);
virtual void print(void) const; virtual void print(void) const;
virtual ir_rvalue *hir(exec_list *instructions, virtual ir_rvalue *hir(exec_list *instructions,
struct _mesa_glsl_parse_state *state); struct _mesa_glsl_parse_state *state);
const char *name; const char *name;
/* List of ast_declarator_list * */
exec_list declarations; exec_list declarations;
}; };

View File

@ -214,7 +214,7 @@ static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char *msg)
%type <node> declaration_statement %type <node> declaration_statement
%type <node> jump_statement %type <node> jump_statement
%type <struct_specifier> struct_specifier %type <struct_specifier> struct_specifier
%type <node> struct_declaration_list %type <declarator_list> struct_declaration_list
%type <declarator_list> struct_declaration %type <declarator_list> struct_declaration
%type <declaration> struct_declarator %type <declaration> struct_declarator
%type <declaration> struct_declarator_list %type <declaration> struct_declarator_list
@ -1479,12 +1479,12 @@ struct_specifier:
struct_declaration_list: struct_declaration_list:
struct_declaration struct_declaration
{ {
$$ = (ast_node *) $1; $$ = $1;
$1->link.self_link(); $1->link.self_link();
} }
| struct_declaration_list struct_declaration | struct_declaration_list struct_declaration
{ {
$$ = (ast_node *) $1; $$ = $1;
$$->link.insert_before(& $2->link); $$->link.insert_before(& $2->link);
} }
; ;

View File

@ -1003,7 +1003,7 @@ ast_struct_specifier::print(void) const
ast_struct_specifier::ast_struct_specifier(const char *identifier, ast_struct_specifier::ast_struct_specifier(const char *identifier,
ast_node *declarator_list) ast_declarator_list *declarator_list)
{ {
if (identifier == NULL) { if (identifier == NULL) {
static unsigned anon_count = 1; static unsigned anon_count = 1;