stage3/narrow_candidate_datatypes.hh
changeset 870 9c6c588fd708
parent 843 f9a059c24aea
child 873 dea39ef02847
--- a/stage3/narrow_candidate_datatypes.hh	Wed Feb 19 22:25:10 2014 +0100
+++ b/stage3/narrow_candidate_datatypes.hh	Wed Feb 19 22:27:11 2014 +0100
@@ -71,20 +71,21 @@
 
     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);
 
-    void  narrow_function_invocation(symbol_c *f_call, generic_function_call_t fcall_data);
-    void  narrow_nonformal_call(symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
-    void  narrow_formal_call(symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
-    void *narrow_implicit_il_fb_call(symbol_c *il_instruction, const char *param_name, symbol_c *&called_fb_declaration);
-
-    void *handle_il_instruction(symbol_c *symbol);
+    void *narrow_spec_init           (symbol_c *symbol, symbol_c *type_decl, symbol_c *init_value);
+    void *narrow_type_decl           (symbol_c *symbol, symbol_c *type_name, symbol_c *spec_init);
+    void  narrow_function_invocation (symbol_c *f_call, generic_function_call_t fcall_data);
+    void  narrow_nonformal_call      (symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
+    void  narrow_formal_call         (symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
+    void *narrow_implicit_il_fb_call (symbol_c *symbol, const char *param_name, symbol_c *&called_fb_declaration);
+    void *narrow_S_and_R_operator    (symbol_c *symbol, const char *param_name, symbol_c * called_fb_declaration);
+    void *narrow_store_operator      (symbol_c *symbol);
+    void *narrow_conditional_operator(symbol_c *symbol);
     void *narrow_binary_operator    (const struct widen_entry widen_table[], symbol_c *symbol,                                     bool *deprecated_operation = NULL);
     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);
     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);
 
-    void *narrow_spec_init(symbol_c *symbol, symbol_c *type_decl, symbol_c *init_value);
-    void *narrow_type_decl(symbol_c *symbol, symbol_c *type_name, symbol_c *spec_init);
-
-    void *narrow_conditional_flow_control_IL_instruction(symbol_c *symbol);
+    void *set_il_operand_datatype    (symbol_c *il_operand, symbol_c *datatype);
+
 
 
   public:
@@ -181,6 +182,7 @@
     /*********************/
     /* B 1.4 - Variables */
     /*********************/
+    void *visit(symbolic_variable_c *symbol);
     /********************************************/
     /* B 1.4.1 - Directly Represented Variables */
     /********************************************/
@@ -189,6 +191,7 @@
     /*************************************/
     void *visit(array_variable_c *symbol);
     void *visit(subscript_list_c *symbol);
+    void *visit(structured_variable_c *symbol);
 
     /******************************************/
     /* B 1.4.3 - Declaration & Initialisation */