equal
deleted
inserted
replaced
190 return handle_type_spec(symbol->subrange_specification, symbol->signed_integer); |
190 return handle_type_spec(symbol->subrange_specification, symbol->signed_integer); |
191 } |
191 } |
192 /* integer_type_name '(' subrange')' */ |
192 /* integer_type_name '(' subrange')' */ |
193 void *visit(subrange_specification_c *symbol) { |
193 void *visit(subrange_specification_c *symbol) { |
194 /* if no initial value explicitly given, then use the lowest value of the subrange */ |
194 /* if no initial value explicitly given, then use the lowest value of the subrange */ |
195 return symbol->subrange->accept(*this); |
195 if (symbol->subrange != NULL) |
|
196 return symbol->subrange->accept(*this); |
|
197 else |
|
198 return symbol->integer_type_name->accept(*this); |
196 } |
199 } |
197 /* signed_integer DOTDOT signed_integer */ |
200 /* signed_integer DOTDOT signed_integer */ |
198 void *visit(subrange_c *symbol) {return symbol->lower_limit;} |
201 void *visit(subrange_c *symbol) {return symbol->lower_limit;} |
199 /* enumerated_type_name ':' enumerated_spec_init */ |
202 /* enumerated_type_name ':' enumerated_spec_init */ |
200 void *visit(enumerated_type_declaration_c *symbol) { |
203 void *visit(enumerated_type_declaration_c *symbol) { |
251 // NOTE: We are leaking memory, as the array_initial_elements will never get free'd!! |
254 // NOTE: We are leaking memory, as the array_initial_elements will never get free'd!! |
252 array_initial_elements_c *array_initial_elements = new array_initial_elements_c(integer, init_value); |
255 array_initial_elements_c *array_initial_elements = new array_initial_elements_c(integer, init_value); |
253 // NOTE: We are leaking memory, as the array_initial_elements_list will never get free'd!! |
256 // NOTE: We are leaking memory, as the array_initial_elements_list will never get free'd!! |
254 array_initial_elements_list_c *array_initial_elements_list = new array_initial_elements_list_c(); |
257 array_initial_elements_list_c *array_initial_elements_list = new array_initial_elements_list_c(); |
255 array_initial_elements_list->add_element(array_initial_elements); |
258 array_initial_elements_list->add_element(array_initial_elements); |
256 return (void *)array_initial_elements_list; |
259 return array_initial_elements_list; |
257 } |
260 } |
258 /* helper symbol for array_specification */ |
261 /* helper symbol for array_specification */ |
259 /* array_subrange_list ',' subrange */ |
262 /* array_subrange_list ',' subrange */ |
260 void *visit(array_subrange_list_c *symbol) {ERROR; return NULL;} |
263 void *visit(array_subrange_list_c *symbol) {ERROR; return NULL;} |
261 /* array_initialization: '[' array_initial_elements_list ']' */ |
264 /* array_initialization: '[' array_initial_elements_list ']' */ |