equal
deleted
inserted
replaced
29 stage4out_c &s4o_incl; |
29 stage4out_c &s4o_incl; |
30 |
30 |
31 private: |
31 private: |
32 symbol_c* current_type_name; |
32 symbol_c* current_type_name; |
33 bool array_is_derived; |
33 bool array_is_derived; |
34 search_base_type_c search_base_type; |
|
35 |
34 |
36 generate_c_base_c *basedecl; |
35 generate_c_base_c *basedecl; |
37 |
36 |
38 public: |
37 public: |
39 generate_c_typedecl_c(stage4out_c *s4o_ptr, stage4out_c *s4o_incl_ptr): generate_c_base_c(s4o_ptr), s4o_incl(*s4o_incl_ptr) { |
38 generate_c_typedecl_c(stage4out_c *s4o_ptr, stage4out_c *s4o_incl_ptr): generate_c_base_c(s4o_ptr), s4o_incl(*s4o_incl_ptr) { |
204 s4o.print("("); |
203 s4o.print("("); |
205 current_type_name->accept(*this); |
204 current_type_name->accept(*this); |
206 s4o.print(" value) {\n"); |
205 s4o.print(" value) {\n"); |
207 s4o.indent_right(); |
206 s4o.indent_right(); |
208 |
207 |
209 if (search_base_type.type_is_subrange(symbol->integer_type_name)) { |
208 if (search_base_type_c::type_is_subrange(symbol->integer_type_name)) { |
210 s4o.print(s4o.indent_spaces + "value = __CHECK_"); |
209 s4o.print(s4o.indent_spaces + "value = __CHECK_"); |
211 symbol->integer_type_name->accept(*this); |
210 symbol->integer_type_name->accept(*this); |
212 s4o.print("(value);\n"); |
211 s4o.print("(value);\n"); |
213 } |
212 } |
214 |
213 |
432 symbol->simple_type_name->accept(*basedecl); |
431 symbol->simple_type_name->accept(*basedecl); |
433 s4o_incl.print(","); |
432 s4o_incl.print(","); |
434 symbol->simple_spec_init->accept(*this); |
433 symbol->simple_spec_init->accept(*this); |
435 s4o_incl.print(")\n"); |
434 s4o_incl.print(")\n"); |
436 |
435 |
437 if (search_base_type.type_is_subrange(symbol->simple_type_name)) { |
436 if (search_base_type_c::type_is_subrange(symbol->simple_type_name)) { |
438 s4o.print("#define __CHECK_"); |
437 s4o.print("#define __CHECK_"); |
439 current_type_name->accept(*this); |
438 current_type_name->accept(*this); |
440 s4o.print(" __CHECK_"); |
439 s4o.print(" __CHECK_"); |
441 symbol->simple_spec_init->accept(*this); |
440 symbol->simple_spec_init->accept(*this); |
442 s4o.print("\n"); |
441 s4o.print("\n"); |