42 */ |
42 */ |
43 |
43 |
44 class lvalue_check_c: public iterator_visitor_c { |
44 class lvalue_check_c: public iterator_visitor_c { |
45 |
45 |
46 private: |
46 private: |
47 search_varfb_instance_type_c *search_varfb_instance_type; |
47 search_varfb_instance_type_c *search_varfb_instance_type; |
48 search_var_instance_decl_c *search_var_instance_decl; |
48 search_var_instance_decl_c *search_var_instance_decl; |
49 search_base_type_c search_base_type; |
49 search_base_type_c search_base_type; |
50 int error_found; |
50 int error_found; |
51 int current_display_error_level; |
51 int current_display_error_level; |
52 std::vector <symbol_c *> control_variables; |
52 std::vector <symbol_c *> control_variables; |
53 symbol_c *base_type(symbol_c *symbol); |
53 |
54 void check_for_controlvar_assignment(symbolic_variable_c *lvalue); |
54 void verify_is_lvalue (symbol_c *lvalue); |
55 void check_output_assignment(symbolic_variable_c *lvalue); |
55 void check_assignment_to_controlvar(symbol_c *lvalue); |
56 void check_constant_assignment(symbolic_variable_c *lvalue); |
56 void check_assignment_to_output (symbol_c *lvalue); |
57 void check_function_call_parameter(function_invocation_c *f_call); |
57 void check_assignment_to_constant (symbol_c *lvalue); |
|
58 void check_assignment_to_expression(symbol_c *lvalue); |
|
59 void check_formal_call (symbol_c *f_call, symbol_c *f_decl); |
|
60 void check_nonformal_call(symbol_c *f_call, symbol_c *f_decl); |
58 |
61 |
59 |
62 |
60 public: |
63 public: |
61 lvalue_check_c(symbol_c *ignore); |
64 lvalue_check_c(symbol_c *ignore); |
62 virtual ~lvalue_check_c(void); |
65 virtual ~lvalue_check_c(void); |