stage4/generate_c/generate_c_vardecl.cc
changeset 958 7474d2cd1d6e
parent 945 477393b00f95
child 971 8aee27d46208
equal deleted inserted replaced
957:4489afa5b1c5 958:7474d2cd1d6e
    57       return NULL;
    57       return NULL;
    58     }
    58     }
    59 };
    59 };
    60 
    60 
    61 
    61 
    62 // Does this class really need to derive from generate_c_typedecl_c ???
    62 
    63 class generate_c_array_initialization_c: public generate_c_base_and_typeid_c {
    63 class generate_c_array_initialization_c: public generate_c_base_and_typeid_c {
    64 
    64 
    65   public:
    65   public:
    66     typedef enum {
    66     typedef enum {
    67       none_am,
    67       none_am,
   192       return NULL;
   192       return NULL;
   193     }
   193     }
   194     
   194     
   195     /* ARRAY '[' array_subrange_list ']' OF non_generic_type_name */
   195     /* ARRAY '[' array_subrange_list ']' OF non_generic_type_name */
   196     void *visit(array_specification_c *symbol) {
   196     void *visit(array_specification_c *symbol) {
   197       identifier_c* type_name;
       
   198       switch (current_mode) {
   197       switch (current_mode) {
   199         case arraysize_am:
   198         case arraysize_am:
   200           symbol->array_subrange_list->accept(*this);
   199           symbol->array_subrange_list->accept(*this);
   201           array_base_type = symbol->non_generic_type_name;
   200           array_base_type = symbol->non_generic_type_name;
   202           array_default_value = type_initial_value_c::get(symbol->non_generic_type_name);
   201           array_default_value = type_initial_value_c::get(symbol->non_generic_type_name);