mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-23 03:00:37 +02:00
Add new constructors for ast_type_specifier
Add a constructor that uses an ast_struct_specifier and one that uses a type name. This saves a (trivial) bit of code, but it also ensures some of the class invariants (i.e., type_name != NULL) are met.
This commit is contained in:
parent
7f9d309743
commit
ed85a5dd4b
2 changed files with 18 additions and 4 deletions
16
ast.h
16
ast.h
|
|
@ -357,6 +357,22 @@ class ast_type_specifier : public ast_node {
|
|||
public:
|
||||
ast_type_specifier(int specifier);
|
||||
|
||||
/** Construct a type specifier from a type name */
|
||||
ast_type_specifier(const char *name)
|
||||
: type_specifier(ast_type_name), type_name(name), structure(NULL),
|
||||
is_array(false), array_size(NULL), precision(ast_precision_high)
|
||||
{
|
||||
/* empty */
|
||||
}
|
||||
|
||||
/** Construct a type specifier from a structure definition */
|
||||
ast_type_specifier(ast_struct_specifier *s)
|
||||
: type_specifier(ast_struct), type_name(s->name), structure(s),
|
||||
is_array(false), array_size(NULL), precision(ast_precision_high)
|
||||
{
|
||||
/* empty */
|
||||
}
|
||||
|
||||
virtual void print(void) const;
|
||||
|
||||
enum ast_types type_specifier;
|
||||
|
|
|
|||
|
|
@ -861,13 +861,11 @@ type_specifier_nonarray:
|
|||
}
|
||||
| struct_specifier
|
||||
{
|
||||
$$ = new ast_type_specifier(ast_struct);
|
||||
$$->structure = $1;
|
||||
$$ = new ast_type_specifier($1);
|
||||
}
|
||||
| TYPE_NAME
|
||||
{
|
||||
$$ = new ast_type_specifier(ast_type_name);
|
||||
$$->type_name = $1;
|
||||
$$ = new ast_type_specifier($1);
|
||||
}
|
||||
;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue