diff options
| author | Ian Romanick <ian.d.romanick@intel.com> | 2010-03-10 13:25:56 -0800 |
|---|---|---|
| committer | Ian Romanick <ian.d.romanick@intel.com> | 2010-03-10 13:25:56 -0800 |
| commit | d10fe19495191072d39689337700b69e62252bf1 (patch) | |
| tree | 3626471adcc87b9a21a07a4a1e75b2ce2f09efac | |
| parent | adfb0cd7401251bef0c854ac945fce78f0ed11db (diff) | |
Simplified constructor for identifier expressions
| -rw-r--r-- | ast.h | 9 | ||||
| -rw-r--r-- | glsl_parser.ypp | 12 |
2 files changed, 11 insertions, 10 deletions
@@ -150,6 +150,15 @@ public: ast_expression(int oper, ast_expression *, ast_expression *, ast_expression *); + ast_expression(const char *identifier) : + oper(ast_identifier) + { + subexpressions[0] = NULL; + subexpressions[1] = NULL; + subexpressions[2] = NULL; + primary_expression.identifier = (char *) identifier; + } + static const char *operator_string(enum ast_operators op); virtual ir_instruction *hir(exec_list *instructions, diff --git a/glsl_parser.ypp b/glsl_parser.ypp index c755725458..debbcea936 100644 --- a/glsl_parser.ypp +++ b/glsl_parser.ypp @@ -351,19 +351,11 @@ function_identifier: } | IDENTIFIER { - ast_expression *expr = - new ast_expression(ast_identifier, NULL, NULL, NULL); - expr->primary_expression.identifier = $1; - - $$ = (struct ast_node *) expr; + $$ = new ast_expression($1); } | FIELD_SELECTION { - ast_expression *expr = - new ast_expression(ast_identifier, NULL, NULL, NULL); - expr->primary_expression.identifier = $1; - - $$ = (struct ast_node *) expr; + $$ = new ast_expression($1); } ; |
