stage4/generate_c/generate_var_list.cc
changeset 726 9b61eb4f00dc
parent 718 a9f8cc778444
child 793 268bf4ca5fa1
equal deleted inserted replaced
725:bfbe4aca6b77 726:9b61eb4f00dc
   380         pt->symbol->accept(*this);
   380         pt->symbol->accept(*this);
   381         s4o.print(".");
   381         s4o.print(".");
   382       }
   382       }
   383     }
   383     }
   384 
   384 
       
   385 
       
   386 /********************************/
       
   387 /* B 1.3.3 - Derived data types */
       
   388 /********************************/
       
   389     /*  enumerated_type_name ':' enumerated_spec_init */
       
   390     void *visit(enumerated_type_declaration_c *symbol) {
       
   391       this->current_var_type_name->accept(*this);
       
   392       return NULL;
       
   393     }
       
   394 
       
   395     /* enumerated_specification ASSIGN enumerated_value */
       
   396     void *visit(enumerated_spec_init_c *symbol) {
       
   397       /* search_base_type_c now returns an enumerated_type_declaration_c as the base type of a non-anonymous enumerated type
       
   398        * (non-anonymous means it is declared inside a TYPE ... END_TYPE declaration, with a given name/identifier
       
   399        *  unlike implicitly defined anonymous datatypes declared inside VAR ... END_VAR declarations!).
       
   400        * This means that this method should not get called.
       
   401        */
       
   402       ERROR;  
       
   403       this->current_var_type_name->accept(*this);
       
   404       return NULL;
       
   405     }
       
   406 
       
   407     /* enumerated_value_list ',' enumerated_value */
       
   408     void *visit(enumerated_value_list_c *symbol) {
       
   409       /* search_base_type_c now returns an enumerated_type_declaration_c as the base type of a non-anonymous enumerated type
       
   410        * (non-anonymous means it is declared inside a TYPE ... END_TYPE declaration, with a given name/identifier
       
   411        *  unlike implicitly defined anonymous datatypes declared inside VAR ... END_VAR declarations!).
       
   412        * This means that this method should not get called.
       
   413        */
       
   414       ERROR;
       
   415       this->current_var_type_name->accept(*this);
       
   416       return NULL;
       
   417     }
       
   418 
   385 /********************************************/
   419 /********************************************/
   386 /* B.1.4.3 - Declaration and initialization */
   420 /* B.1.4.3 - Declaration and initialization */
   387 /********************************************/
   421 /********************************************/
   388     
   422     
   389     /*  [variable_name] location ':' located_var_spec_init */
   423     /*  [variable_name] location ':' located_var_spec_init */
   554       reset_var_type_symbol();
   588       reset_var_type_symbol();
   555 
   589 
   556       return NULL;
   590       return NULL;
   557     }
   591     }
   558 
   592 
   559     /* enumerated_value_list ',' enumerated_value */
   593 
   560     void *visit(enumerated_value_list_c *symbol) {
       
   561       this->current_var_type_name->accept(*this);
       
   562       return NULL;
       
   563     }
       
   564     
       
   565     /* fb_name_list ':' function_block_type_name ASSIGN structure_initialization */
   594     /* fb_name_list ':' function_block_type_name ASSIGN structure_initialization */
   566     /* structure_initialization -> may be NULL ! */
   595     /* structure_initialization -> may be NULL ! */
   567     void *visit(fb_name_decl_c *symbol) {
   596     void *visit(fb_name_decl_c *symbol) {
   568       TRACE("fb_name_decl_c");
   597       TRACE("fb_name_decl_c");
   569       /* Please read the comments inside the var1_init_decl_c
   598       /* Please read the comments inside the var1_init_decl_c