stage4/generate_c/generate_c_typedecl.cc
changeset 854 13d0b67de111
parent 793 268bf4ca5fa1
child 857 70c4c259bc3e
equal deleted inserted replaced
853:818c4ac5d64d 854:13d0b67de111
    96         s4o_incl.print(post_elem_str);
    96         s4o_incl.print(post_elem_str);
    97 
    97 
    98       return NULL;
    98       return NULL;
    99     }
    99     }
   100 
   100 
   101     bool type_is_fb(symbol_c* type_decl) {
       
   102       return search_base_type_c::type_is_fb(type_decl);
       
   103     }
       
   104 
   101 
   105 /***************************/
   102 /***************************/
   106 /* B 0 - Programming Model */
   103 /* B 0 - Programming Model */
   107 /***************************/
   104 /***************************/
   108   /* leave for derived classes... */
   105   /* leave for derived classes... */
   206           s4o.print("(");
   203           s4o.print("(");
   207           current_type_name->accept(*this);
   204           current_type_name->accept(*this);
   208           s4o.print(" value) {\n");
   205           s4o.print(" value) {\n");
   209           s4o.indent_right();
   206           s4o.indent_right();
   210 
   207 
   211           if (search_base_type_c::type_is_subrange(symbol->integer_type_name)) {
   208           if (get_datatype_info_c::is_subrange(symbol->integer_type_name)) {
   212             s4o.print(s4o.indent_spaces + "value = __CHECK_");
   209             s4o.print(s4o.indent_spaces + "value = __CHECK_");
   213             symbol->integer_type_name->accept(*this);
   210             symbol->integer_type_name->accept(*this);
   214             s4o.print("(value);\n");
   211             s4o.print("(value);\n");
   215           }
   212           }
   216 
   213 
   441   symbol->simple_type_name->accept(*basedecl);
   438   symbol->simple_type_name->accept(*basedecl);
   442   s4o_incl.print(",");
   439   s4o_incl.print(",");
   443   symbol->simple_spec_init->accept(*this);
   440   symbol->simple_spec_init->accept(*this);
   444   s4o_incl.print(")\n");
   441   s4o_incl.print(")\n");
   445 
   442 
   446   if (search_base_type_c::type_is_subrange(symbol->simple_type_name)) {
   443   if (get_datatype_info_c::is_subrange(symbol->simple_type_name)) {
   447     s4o.print("#define __CHECK_");
   444     s4o.print("#define __CHECK_");
   448     current_type_name->accept(*this);
   445     current_type_name->accept(*this);
   449     s4o.print(" __CHECK_");
   446     s4o.print(" __CHECK_");
   450     symbol->simple_spec_init->accept(*this);
   447     symbol->simple_spec_init->accept(*this);
   451     s4o.print("\n");
   448     s4o.print("\n");