diff options
author | Ian Romanick <[email protected]> | 2010-05-10 10:47:14 -0700 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2010-05-10 11:04:02 -0700 |
commit | 3521f0bdd52d226031a3b60e2cd89b4629147690 (patch) | |
tree | 2215d03df7219358862025081aa018f0295184dd /glsl_parser.ypp | |
parent | bdd9b1f3ffa2a195d983816adfeca20480256119 (diff) |
Store AST function call parameters in expressions
Previously the list of function call parameters was stored as a
circular list in ast_expression::subexpressions[1]. They are now
stored as a regular list in ast_expression::expressions.
Diffstat (limited to 'glsl_parser.ypp')
-rw-r--r-- | glsl_parser.ypp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/glsl_parser.ypp b/glsl_parser.ypp index 131f23d8c1e..fb3b3450728 100644 --- a/glsl_parser.ypp +++ b/glsl_parser.ypp @@ -294,6 +294,12 @@ postfix_expression: } | function_call { + /* Function call parameters used to be stored as a circular list in + * subexpressions[1]. They are now stored as a regular list in + * expressions. This assertion validates that the old code was + * correctly converted. It can eventually be removed. + */ + assert($1->subexpressions[1] == NULL); $$ = $1; } | postfix_expression '.' IDENTIFIER @@ -346,14 +352,13 @@ function_call_header_with_parameters: { $$ = $1; $$->set_location(yylloc); - $$->subexpressions[1] = $2; + insert_at_tail(& $$->expressions, (struct simple_node *) $2); } | function_call_header_with_parameters ',' assignment_expression { $$ = $1; $$->set_location(yylloc); - insert_at_tail((struct simple_node *) $$->subexpressions[1], - (struct simple_node *) $3); + insert_at_tail(& $$->expressions, (struct simple_node *) $3); } ; |