mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-23 19:23:02 +00:00
parser: factor the handling of code_props
* src/parse-gram.y: Now that %printer and %destructor are treated equally, let... (code_props_type): handle them.
This commit is contained in:
@@ -30,6 +30,7 @@
|
|||||||
#include "quotearg.h"
|
#include "quotearg.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "symlist.h"
|
#include "symlist.h"
|
||||||
|
#include "symtab.h"
|
||||||
#include "scan-gram.h"
|
#include "scan-gram.h"
|
||||||
#include "scan-code.h"
|
#include "scan-code.h"
|
||||||
#include "xmemdup0.h"
|
#include "xmemdup0.h"
|
||||||
@@ -386,20 +387,13 @@ grammar_declaration:
|
|||||||
{
|
{
|
||||||
grammar_start_symbol_set ($2, @2);
|
grammar_start_symbol_set ($2, @2);
|
||||||
}
|
}
|
||||||
| "%destructor" "{...}" generic_symlist
|
| code_props_type "{...}" generic_symlist
|
||||||
{
|
{
|
||||||
symbol_list *list;
|
symbol_list *list;
|
||||||
for (list = $3; list; list = list->next)
|
for (list = $3; list; list = list->next)
|
||||||
symbol_list_code_props_set (list, $1, @2, $2);
|
symbol_list_code_props_set (list, $1, @2, $2);
|
||||||
symbol_list_free ($3);
|
symbol_list_free ($3);
|
||||||
}
|
}
|
||||||
| "%printer" "{...}" generic_symlist
|
|
||||||
{
|
|
||||||
symbol_list *list;
|
|
||||||
for (list = $3; list; list = list->next)
|
|
||||||
symbol_list_code_props_set (list, printer, @2, $2);
|
|
||||||
symbol_list_free ($3);
|
|
||||||
}
|
|
||||||
| "%default-prec"
|
| "%default-prec"
|
||||||
{
|
{
|
||||||
default_prec = true;
|
default_prec = true;
|
||||||
@@ -422,6 +416,13 @@ grammar_declaration:
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
%type <code_type> code_props_type;
|
||||||
|
%union {code_props_type code_type;};
|
||||||
|
%printer { fprintf (stderr, "%s", code_props_type_string ($$)); } <code_type>;
|
||||||
|
code_props_type:
|
||||||
|
"%destructor" { $$ = destructor; }
|
||||||
|
| "%printer" { $$ = printer; }
|
||||||
|
;
|
||||||
|
|
||||||
/*---------.
|
/*---------.
|
||||||
| %union. |
|
| %union. |
|
||||||
|
|||||||
Reference in New Issue
Block a user