@@ -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, |
@@ -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); | |||
} | |||
; | |||