82 |
location_t current_lhs_location; |
location_t current_lhs_location; |
83 |
associativity current_assoc; |
associativity current_assoc; |
84 |
int current_prec = 0; |
int current_prec = 0; |
85 |
|
braced_code_t current_braced_code = action_braced_code; |
86 |
%} |
%} |
87 |
|
|
88 |
|
|
101 |
%token STRING CHARACTER |
%token STRING CHARACTER |
102 |
%token INT |
%token INT |
103 |
|
|
104 |
%token PERCENT_TOKEN "%token" |
%token PERCENT_TOKEN "%token" |
105 |
%token PERCENT_NTERM "%nterm" |
%token PERCENT_NTERM "%nterm" |
106 |
%token PERCENT_TYPE "%type" |
%token PERCENT_TYPE "%type" |
107 |
%token PERCENT_UNION "%union" |
%token PERCENT_DESTRUCTOR "%destructor" |
108 |
%token PERCENT_LEFT "%left" |
%token PERCENT_UNION "%union" |
109 |
%token PERCENT_RIGHT "%right" |
%token PERCENT_LEFT "%left" |
110 |
%token PERCENT_NONASSOC "%nonassoc" |
%token PERCENT_RIGHT "%right" |
111 |
|
%token PERCENT_NONASSOC "%nonassoc" |
112 |
|
|
113 |
%token PERCENT_EXPECT "%expect" |
%token PERCENT_EXPECT "%expect" |
114 |
%token PERCENT_START "%start" |
%token PERCENT_START "%start" |
202 |
MUSCLE_INSERT_INT ("stype_line", @2.first_line); |
MUSCLE_INSERT_INT ("stype_line", @2.first_line); |
203 |
muscle_insert ("stype", $2); |
muscle_insert ("stype", $2); |
204 |
} |
} |
205 |
|
| "%destructor" |
206 |
|
{ current_braced_code = destructor_braced_code; } |
207 |
|
BRACED_CODE symbols.1 |
208 |
|
{ |
209 |
|
symbol_list_t *list; |
210 |
|
for (list = $4; list; list = list->next) |
211 |
|
symbol_destructor_set (list->sym, list->location, $3); |
212 |
|
symbol_list_free ($4); |
213 |
|
current_braced_code = action_braced_code; |
214 |
|
} |
215 |
; |
; |
216 |
|
|
217 |
symbol_declaration: |
symbol_declaration: |