equal
deleted
inserted
replaced
28 stage4out_c &s4o; |
28 stage4out_c &s4o; |
29 |
29 |
30 private: |
30 private: |
31 symbol_c *current_var_type_symbol; |
31 symbol_c *current_var_type_symbol; |
32 generate_c_base_c *generate_c_base; |
32 generate_c_base_c *generate_c_base; |
33 search_base_type_c search_base_type; |
|
34 |
33 |
35 public: |
34 public: |
36 generate_location_list_c(stage4out_c *s4o_ptr): s4o(*s4o_ptr) { |
35 generate_location_list_c(stage4out_c *s4o_ptr): s4o(*s4o_ptr) { |
37 generate_c_base = new generate_c_base_c(s4o_ptr); |
36 generate_c_base = new generate_c_base_c(s4o_ptr); |
38 current_var_type_symbol = NULL; |
37 current_var_type_symbol = NULL; |
112 void *visit(located_var_decl_c *symbol) { |
111 void *visit(located_var_decl_c *symbol) { |
113 current_var_type_symbol = spec_init_sperator_c::get_spec(symbol->located_var_spec_init); |
112 current_var_type_symbol = spec_init_sperator_c::get_spec(symbol->located_var_spec_init); |
114 if (current_var_type_symbol == NULL) |
113 if (current_var_type_symbol == NULL) |
115 ERROR; |
114 ERROR; |
116 |
115 |
117 current_var_type_symbol = (symbol_c *)(current_var_type_symbol->accept(search_base_type)); |
116 current_var_type_symbol = search_base_type_c::get_basetype_decl(current_var_type_symbol); |
118 if (current_var_type_symbol == NULL) |
117 if (current_var_type_symbol == NULL) |
119 ERROR; |
118 ERROR; |
120 |
119 |
121 symbol->location->accept(*this); |
120 symbol->location->accept(*this); |
122 |
121 |
130 void *visit(global_var_decl_c *symbol) { |
129 void *visit(global_var_decl_c *symbol) { |
131 current_var_type_symbol = spec_init_sperator_c::get_spec(symbol->type_specification); |
130 current_var_type_symbol = spec_init_sperator_c::get_spec(symbol->type_specification); |
132 if (current_var_type_symbol == NULL) |
131 if (current_var_type_symbol == NULL) |
133 ERROR; |
132 ERROR; |
134 |
133 |
135 current_var_type_symbol = (symbol_c *)(current_var_type_symbol->accept(search_base_type)); |
134 current_var_type_symbol = search_base_type_c::get_basetype_decl(current_var_type_symbol); |
136 if (current_var_type_symbol == NULL) |
135 if (current_var_type_symbol == NULL) |
137 ERROR; |
136 ERROR; |
138 |
137 |
139 symbol->global_var_spec->accept(*this); |
138 symbol->global_var_spec->accept(*this); |
140 |
139 |