stage3/narrow_candidate_datatypes.hh
changeset 849 1f8885ae539a
parent 843 f9a059c24aea
child 873 dea39ef02847
equal deleted inserted replaced
823:c95f42f28b69 849:1f8885ae539a
    69     il_instruction_c *fake_prev_il_instruction;
    69     il_instruction_c *fake_prev_il_instruction;
    70     il_instruction_c   *current_il_instruction;
    70     il_instruction_c   *current_il_instruction;
    71 
    71 
    72     bool is_widening_compatible(const struct widen_entry widen_table[], symbol_c *left_type, symbol_c *right_type, symbol_c *result_type, bool *deprecated_status = NULL);
    72     bool is_widening_compatible(const struct widen_entry widen_table[], symbol_c *left_type, symbol_c *right_type, symbol_c *result_type, bool *deprecated_status = NULL);
    73 
    73 
    74     void  narrow_function_invocation(symbol_c *f_call, generic_function_call_t fcall_data);
    74     void *narrow_spec_init           (symbol_c *symbol, symbol_c *type_decl, symbol_c *init_value);
    75     void  narrow_nonformal_call(symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
    75     void *narrow_type_decl           (symbol_c *symbol, symbol_c *type_name, symbol_c *spec_init);
    76     void  narrow_formal_call(symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
    76     void  narrow_function_invocation (symbol_c *f_call, generic_function_call_t fcall_data);
    77     void *narrow_implicit_il_fb_call(symbol_c *il_instruction, const char *param_name, symbol_c *&called_fb_declaration);
    77     void  narrow_nonformal_call      (symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
    78 
    78     void  narrow_formal_call         (symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
    79     void *handle_il_instruction(symbol_c *symbol);
    79     void *narrow_implicit_il_fb_call (symbol_c *symbol, const char *param_name, symbol_c *&called_fb_declaration);
       
    80     void *narrow_S_and_R_operator    (symbol_c *symbol, const char *param_name, symbol_c * called_fb_declaration);
       
    81     void *narrow_store_operator      (symbol_c *symbol);
       
    82     void *narrow_conditional_operator(symbol_c *symbol);
    80     void *narrow_binary_operator    (const struct widen_entry widen_table[], symbol_c *symbol,                                     bool *deprecated_operation = NULL);
    83     void *narrow_binary_operator    (const struct widen_entry widen_table[], symbol_c *symbol,                                     bool *deprecated_operation = NULL);
    81     void *narrow_binary_expression  (const struct widen_entry widen_table[], symbol_c *symbol, symbol_c *l_expr, symbol_c *r_expr, bool *deprecated_operation = NULL, bool allow_enums = false);
    84     void *narrow_binary_expression  (const struct widen_entry widen_table[], symbol_c *symbol, symbol_c *l_expr, symbol_c *r_expr, bool *deprecated_operation = NULL, bool allow_enums = false);
    82     void *narrow_equality_comparison(const struct widen_entry widen_table[], symbol_c *symbol, symbol_c *l_expr, symbol_c *r_expr, bool *deprecated_operation = NULL);
    85     void *narrow_equality_comparison(const struct widen_entry widen_table[], symbol_c *symbol, symbol_c *l_expr, symbol_c *r_expr, bool *deprecated_operation = NULL);
    83 
    86 
    84     void *narrow_spec_init(symbol_c *symbol, symbol_c *type_decl, symbol_c *init_value);
    87     void *set_il_operand_datatype    (symbol_c *il_operand, symbol_c *datatype);
    85     void *narrow_type_decl(symbol_c *symbol, symbol_c *type_name, symbol_c *spec_init);
    88 
    86 
       
    87     void *narrow_conditional_flow_control_IL_instruction(symbol_c *symbol);
       
    88 
    89 
    89 
    90 
    90   public:
    91   public:
    91     narrow_candidate_datatypes_c(symbol_c *ignore);
    92     narrow_candidate_datatypes_c(symbol_c *ignore);
    92     virtual ~narrow_candidate_datatypes_c(void);
    93     virtual ~narrow_candidate_datatypes_c(void);
   179     void *visit(fb_spec_init_c *symbol);
   180     void *visit(fb_spec_init_c *symbol);
   180 
   181 
   181     /*********************/
   182     /*********************/
   182     /* B 1.4 - Variables */
   183     /* B 1.4 - Variables */
   183     /*********************/
   184     /*********************/
       
   185     void *visit(symbolic_variable_c *symbol);
   184     /********************************************/
   186     /********************************************/
   185     /* B 1.4.1 - Directly Represented Variables */
   187     /* B 1.4.1 - Directly Represented Variables */
   186     /********************************************/
   188     /********************************************/
   187     /*************************************/
   189     /*************************************/
   188     /* B 1.4.2 - Multi-element variables */
   190     /* B 1.4.2 - Multi-element variables */
   189     /*************************************/
   191     /*************************************/
   190     void *visit(array_variable_c *symbol);
   192     void *visit(array_variable_c *symbol);
   191     void *visit(subscript_list_c *symbol);
   193     void *visit(subscript_list_c *symbol);
       
   194     void *visit(structured_variable_c *symbol);
   192 
   195 
   193     /******************************************/
   196     /******************************************/
   194     /* B 1.4.3 - Declaration & Initialisation */
   197     /* B 1.4.3 - Declaration & Initialisation */
   195     /******************************************/
   198     /******************************************/
   196     void *visit(var1_list_c *symbol);
   199     void *visit(var1_list_c *symbol);
   212 
   215 
   213     /**********************/
   216     /**********************/
   214     /* B 1.5.3 - Programs */
   217     /* B 1.5.3 - Programs */
   215     /**********************/
   218     /**********************/
   216     void *visit(program_declaration_c *symbol);
   219     void *visit(program_declaration_c *symbol);
       
   220 
       
   221     /********************************************/
       
   222     /* B 1.6 Sequential function chart elements */
       
   223     /********************************************/
       
   224 
       
   225     void *visit(transition_condition_c *symbol);
   217 
   226 
   218     /********************************/
   227     /********************************/
   219     /* B 1.7 Configuration elements */
   228     /* B 1.7 Configuration elements */
   220     /********************************/
   229     /********************************/
   221     void *visit(configuration_declaration_c *symbol);
   230     void *visit(configuration_declaration_c *symbol);