mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
Fix bug as in previous fix, but with multi-token argument.
The previous fix added FUNC_MACRO to a production one higher in teh grammar than it should have. So it prevented a FUNC_MACRO from appearing as part of a mutli-token argument rather than just alone as an argument. Fix this (and add a test).
This commit is contained in:
parent
69f390d609
commit
59ca98990f
2 changed files with 12 additions and 12 deletions
|
|
@ -94,7 +94,7 @@ _argument_list_member_at (argument_list_t *list, int index);
|
|||
%lex-param {void *scanner}
|
||||
|
||||
%token DEFINE FUNC_MACRO IDENTIFIER NEWLINE OBJ_MACRO REPLACEMENT TOKEN UNDEF
|
||||
%type <str> FUNC_MACRO IDENTIFIER OBJ_MACRO REPLACEMENT TOKEN word
|
||||
%type <str> argument_word FUNC_MACRO IDENTIFIER OBJ_MACRO REPLACEMENT TOKEN
|
||||
%type <string_list> argument macro parameter_list
|
||||
%type <argument_list> argument_list
|
||||
|
||||
|
|
@ -165,18 +165,14 @@ argument_list:
|
|||
;
|
||||
|
||||
argument:
|
||||
word {
|
||||
argument_word {
|
||||
$$ = _string_list_create (parser);
|
||||
_string_list_append_item ($$, $1);
|
||||
}
|
||||
| macro {
|
||||
$$ = _string_list_create (parser);
|
||||
}
|
||||
| FUNC_MACRO {
|
||||
$$ = _string_list_create (parser);
|
||||
_string_list_append_item ($$, $1);
|
||||
}
|
||||
| argument word {
|
||||
| argument argument_word {
|
||||
_string_list_append_item ($1, $2);
|
||||
talloc_free ($2);
|
||||
$$ = $1;
|
||||
|
|
@ -189,6 +185,13 @@ argument:
|
|||
}
|
||||
;
|
||||
|
||||
argument_word:
|
||||
IDENTIFIER { $$ = $1; }
|
||||
| TOKEN { $$ = $1; }
|
||||
| FUNC_MACRO { $$ = $1; }
|
||||
;
|
||||
|
||||
|
||||
directive:
|
||||
DEFINE IDENTIFIER REPLACEMENT {
|
||||
_define_object_macro (parser, $2, $3);
|
||||
|
|
@ -225,11 +228,6 @@ parameter_list:
|
|||
}
|
||||
;
|
||||
|
||||
word:
|
||||
IDENTIFIER { $$ = $1; }
|
||||
| TOKEN { $$ = $1; }
|
||||
;
|
||||
|
||||
%%
|
||||
|
||||
string_list_t *
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
#define foo(bar) bar
|
||||
foo(1 + foo)
|
||||
Loading…
Add table
Reference in a new issue