181 /********************************/ |
181 /********************************/ |
182 /* B 1.3.3 - Derived data types */ |
182 /* B 1.3.3 - Derived data types */ |
183 /********************************/ |
183 /********************************/ |
184 |
184 |
185 /* subrange_type_name ':' subrange_spec_init */ |
185 /* subrange_type_name ':' subrange_spec_init */ |
186 void *visit(subrange_type_declaration_c *symbol) { |
186 void *visit(subrange_type_declaration_c *symbol) {type_symtable.insert(symbol->subrange_type_name, symbol->subrange_spec_init); return NULL;} |
187 TRACE("subrange_type_declaration_c"); |
|
188 type_symtable.insert(symbol->subrange_type_name, symbol->subrange_spec_init); |
|
189 return NULL; |
|
190 } |
|
191 |
|
192 |
187 |
193 /* enumerated_type_name ':' enumerated_spec_init */ |
188 /* enumerated_type_name ':' enumerated_spec_init */ |
194 void *visit(enumerated_type_declaration_c *symbol) { |
189 void *visit(enumerated_type_declaration_c *symbol) { |
195 TRACE("enumerated_type_declaration_c"); |
|
196 type_symtable.insert(symbol->enumerated_type_name, symbol); |
190 type_symtable.insert(symbol->enumerated_type_name, symbol); |
197 current_enumerated_type = symbol->enumerated_type_name; |
191 current_enumerated_type = symbol->enumerated_type_name; |
198 symbol->enumerated_spec_init->accept(*this); |
192 symbol->enumerated_spec_init->accept(*this); |
199 current_enumerated_type = NULL; |
193 current_enumerated_type = NULL; |
200 return NULL; |
194 return NULL; |
201 } |
195 } |
202 |
196 |
203 /* enumerated_specification ASSIGN enumerated_value */ |
197 /* enumerated_specification ASSIGN enumerated_value */ |
204 void *visit(enumerated_spec_init_c *symbol) { |
198 void *visit(enumerated_spec_init_c *symbol) {return symbol->enumerated_specification->accept(*this);} |
205 return symbol->enumerated_specification->accept(*this); |
|
206 } |
|
207 |
|
208 |
|
209 /* identifier ':' array_spec_init */ |
199 /* identifier ':' array_spec_init */ |
210 void *visit(array_type_declaration_c *symbol) { |
200 void *visit(array_type_declaration_c *symbol) {type_symtable.insert(symbol->identifier, symbol->array_spec_init); return NULL;} |
211 TRACE("array_type_declaration_c"); |
|
212 type_symtable.insert(symbol->identifier, symbol->array_spec_init); |
|
213 return NULL; |
|
214 } |
|
215 |
|
216 |
|
217 /* simple_type_name ':' simple_spec_init */ |
201 /* simple_type_name ':' simple_spec_init */ |
218 void *visit(simple_type_declaration_c *symbol) { |
202 void *visit(simple_type_declaration_c *symbol) {type_symtable.insert(symbol->simple_type_name, symbol->simple_spec_init); return NULL;} |
219 TRACE("simple_type_declaration_c"); |
|
220 type_symtable.insert(symbol->simple_type_name, symbol->simple_spec_init); |
|
221 return NULL; |
|
222 } |
|
223 |
|
224 |
|
225 /* structure_type_name ':' structure_specification */ |
203 /* structure_type_name ':' structure_specification */ |
226 void *visit(structure_type_declaration_c *symbol) { |
204 void *visit(structure_type_declaration_c *symbol) {type_symtable.insert(symbol->structure_type_name, symbol->structure_specification); return NULL;} |
227 TRACE("structure_type_declaration_c"); |
|
228 type_symtable.insert(symbol->structure_type_name, symbol->structure_specification); |
|
229 return NULL; |
|
230 } |
|
231 |
|
232 |
|
233 /* string_type_name ':' elementary_string_type_name string_type_declaration_size string_type_declaration_init */ |
205 /* string_type_name ':' elementary_string_type_name string_type_declaration_size string_type_declaration_init */ |
234 // SYM_REF4(string_type_declaration_c, string_type_name, |
206 void *visit(string_type_declaration_c *symbol) {type_symtable.insert(symbol->string_type_name, symbol); return NULL;} |
235 // elementary_string_type_name, |
207 /* identifier ':' ref_spec_init */ |
236 // string_type_declaration_size, |
208 void *visit(ref_type_decl_c *symbol) {type_symtable.insert(symbol->ref_type_name, symbol); return NULL;} |
237 // string_type_declaration_init) /* may be == NULL! */ |
|
238 void *visit(string_type_declaration_c *symbol) { |
|
239 TRACE("string_type_declaration_c"); |
|
240 type_symtable.insert(symbol->string_type_name, symbol); |
|
241 return NULL; |
|
242 } |
|
243 |
209 |
244 /*********************/ |
210 /*********************/ |
245 /* B 1.4 - Variables */ |
211 /* B 1.4 - Variables */ |
246 /*********************/ |
212 /*********************/ |
247 /********************************************/ |
213 /********************************************/ |