equal
deleted
inserted
replaced
33 |
33 |
34 #include <vector> |
34 #include <vector> |
35 #include "../absyntax_utils/absyntax_utils.hh" |
35 #include "../absyntax_utils/absyntax_utils.hh" |
36 #include "datatype_functions.hh" |
36 #include "datatype_functions.hh" |
37 |
37 |
38 /* |
38 |
39 * In this class we implemented all lvalue check. |
39 /* Expressions on the left hand side of assignment statements have aditional restrictions on their datatype. |
40 * With lvalue check we mean all semantic error about |
40 * For example, they cannot be literals, CONSTANT type variables, function invocations, etc... |
41 * assignment with wrong access |
41 * This class wil do those checks. |
|
42 * |
|
43 * Note that assignment may also be done when passing variables to OUTPUT or IN_OUT function parameters,so we check those too. |
42 */ |
44 */ |
|
45 |
|
46 |
43 |
47 |
44 class lvalue_check_c: public iterator_visitor_c { |
48 class lvalue_check_c: public iterator_visitor_c { |
45 |
49 |
46 private: |
50 private: |
47 search_varfb_instance_type_c *search_varfb_instance_type; |
51 search_varfb_instance_type_c *search_varfb_instance_type; |