stage3/fill_candidate_datatypes.cc
changeset 552 3c39d80fdede
parent 541 f6208d457722
child 558 9273dfc5fa7c
equal deleted inserted replaced
551:a75e3aea98ff 552:3c39d80fdede
    40  * - check SFC code
    40  * - check SFC code
    41  * - must fix S and R IL functions (includes potientialy fixing stage4 code!) 
    41  * - must fix S and R IL functions (includes potientialy fixing stage4 code!) 
    42  */
    42  */
    43 
    43 
    44 
    44 
       
    45 /* NOTE: The algorithm implemented here assumes that flow control analysis has already been completed!
       
    46  *       BEFORE running this visitor, be sure to CALL the flow_control_analysis_c visitor!
       
    47  */
       
    48 
       
    49 
    45 /*
    50 /*
    46  *  Fill candidate list of data types for all symbols
    51  *  Fill the candidate datatype list for all symbols that may legally 'have' a data type (e.g. variables, literals, function calls, expressions, etc.)
       
    52  * 
       
    53  *  The candidate datatype list will be filled with a list of all the data types that expression may legally take.
       
    54  *  For example, the very simple literal '0' (as in foo := 0), may represent a:
       
    55  *    BOOL, BYTE, WORD, DWORD, LWORD, USINT, SINT, UINT, INT, UDINT, DINT, ULINT, LINT (as well as the SAFE versions of these data tyes too!)
    47  */
    56  */
    48 
    57 
    49 #include "fill_candidate_datatypes.hh"
    58 #include "fill_candidate_datatypes.hh"
    50 #include "datatype_functions.hh"
    59 #include "datatype_functions.hh"
    51 #include <typeinfo>
    60 #include <typeinfo>