mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-16 07:43:03 +00:00
grammar: preserve token declaration order
In a declaration %token A B, the token A is declared before B, but in %left A B (or with %precedence or %nonassoc or %right), the token B was declared before A (tokens were declared in reverse order). * src/symlist.h, src/symlist.c (symbol_list_append): New. * src/parse-gram.y: Use it instead of symbol_list_prepend. * tests/input.at: Adjust expectations.
This commit is contained in:
committed by
Akim Demaille
parent
9b3bb25885
commit
93561c21e8
@@ -107,6 +107,23 @@ symbol_list_prepend (symbol_list *list, symbol_list *node)
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------.
|
||||
| Append NODE to the LIST. |
|
||||
`-------------------------*/
|
||||
|
||||
symbol_list *
|
||||
symbol_list_append (symbol_list *list, symbol_list *node)
|
||||
{
|
||||
if (!list)
|
||||
return node;
|
||||
symbol_list *next = list;
|
||||
while (next->next)
|
||||
next = next->next;
|
||||
next->next = node;
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
/*-----------------------------------------------.
|
||||
| Free the LIST, but not the items it contains. |
|
||||
`-----------------------------------------------*/
|
||||
|
||||
Reference in New Issue
Block a user