stage4/generate_c/generate_var_list.cc
changeset 1088 9cb7c8bf7dbc
parent 1041 56ebe2a31b5b
child 1097 520a4b937f13
equal deleted inserted replaced
1087:d9e47e018320 1088:9cb7c8bf7dbc
   343       s4o.print(";");
   343       s4o.print(";");
   344       switch (search_type_symbol->current_var_type_category) {
   344       switch (search_type_symbol->current_var_type_category) {
   345         case search_type_symbol_c::structure_vtc:
   345         case search_type_symbol_c::structure_vtc:
   346         case search_type_symbol_c::function_block_vtc:
   346         case search_type_symbol_c::function_block_vtc:
   347           this->current_var_type_name->accept(*this);
   347           this->current_var_type_name->accept(*this);
   348           s4o.print(";\n");
   348           s4o.print(";;\n");
   349           if (this->current_var_class_category != external_vcc) {
   349           if (this->current_var_class_category != external_vcc) {
   350               SYMBOL *current_name;
   350               SYMBOL *current_name;
   351               symbol_c *tmp_var_type;
   351               symbol_c *tmp_var_type;
   352               current_name = new SYMBOL;
   352               current_name = new SYMBOL;
   353               current_name->symbol = symbol;
   353               current_name->symbol = symbol;
   358               this->current_var_type_symbol = tmp_var_type;
   358               this->current_var_type_symbol = tmp_var_type;
   359           }
   359           }
   360           break;
   360           break;
   361         case search_type_symbol_c::array_vtc:
   361         case search_type_symbol_c::array_vtc:
   362           this->current_var_type_name->accept(*this);
   362           this->current_var_type_name->accept(*this);
   363           s4o.print(";\n");
   363           s4o.print(";;\n");
   364           break;
   364           break;
   365         default:
   365         default:
       
   366           // base type name
   366           this->current_var_type_symbol->accept(*this);
   367           this->current_var_type_symbol->accept(*this);
       
   368           s4o.print(";");
       
   369           // type name (eventualy derived)
       
   370           this->current_var_type_name->accept(*this);
   367           s4o.print(";\n");
   371           s4o.print(";\n");
   368           break;
   372           break;
   369       }
   373       }
   370     }
   374     }
   371 
   375 
   874       symbol->step_name->accept(*this);
   878       symbol->step_name->accept(*this);
   875       s4o.print(".X;");
   879       s4o.print(".X;");
   876       print_symbol_list();
   880       print_symbol_list();
   877       s4o.print("__step_list[");
   881       s4o.print("__step_list[");
   878       print_step_number();
   882       print_step_number();
   879       s4o.print("].X;BOOL;\n");
   883       s4o.print("].X;BOOL;BOOL;\n");
   880       step_number++;
   884       step_number++;
   881       return NULL;
   885       return NULL;
   882     }
   886     }
   883     
   887     
   884     /* STEP step_name ':' action_association_list END_STEP */
   888     /* STEP step_name ':' action_association_list END_STEP */
   890       symbol->step_name->accept(*this);
   894       symbol->step_name->accept(*this);
   891       s4o.print(".X;");
   895       s4o.print(".X;");
   892       print_symbol_list();
   896       print_symbol_list();
   893       s4o.print("__step_list[");
   897       s4o.print("__step_list[");
   894       print_step_number();
   898       print_step_number();
   895       s4o.print("].X;BOOL;\n");
   899       s4o.print("].X;BOOL;BOOL;\n");
   896       step_number++;
   900       step_number++;
   897       return NULL;
   901       return NULL;
   898     }
   902     }
   899     
   903     
   900     /* TRANSITION [transition_name] ['(' PRIORITY ASSIGN integer ')'] 
   904     /* TRANSITION [transition_name] ['(' PRIORITY ASSIGN integer ')'] 
   914       symbol->to_steps->accept(*this);
   918       symbol->to_steps->accept(*this);
   915       s4o.print(";");
   919       s4o.print(";");
   916       print_symbol_list();
   920       print_symbol_list();
   917       s4o.print("__debug_transition_list[");
   921       s4o.print("__debug_transition_list[");
   918       print_transition_number();
   922       print_transition_number();
   919       s4o.print("];BOOL;\n");
   923       s4o.print("];BOOL;BOOL;\n");
   920       transition_number++;
   924       transition_number++;
   921       return NULL;
   925       return NULL;
   922     }
   926     }
   923     
   927     
   924     /* step_name | '(' step_name_list ')' */
   928     /* step_name | '(' step_name_list ')' */
   953       symbol->action_name->accept(*this);
   957       symbol->action_name->accept(*this);
   954       s4o.print(".Q;");
   958       s4o.print(".Q;");
   955       print_symbol_list();
   959       print_symbol_list();
   956       s4o.print("__action_list[");
   960       s4o.print("__action_list[");
   957       print_action_number();
   961       print_action_number();
   958       s4o.print("].state;BOOL;\n");
   962       s4o.print("].state;BOOL;BOOL;\n");
   959       action_number++;
   963       action_number++;
   960       return NULL;
   964       return NULL;
   961     }
   965     }
   962 
   966 
   963 
   967