stage3/lvalue_check.hh
changeset 553 b654ca7a031a
parent 535 70140bd7fe67
child 718 a9f8cc778444
equal deleted inserted replaced
552:3c39d80fdede 553:b654ca7a031a
    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;