stage1_2/stage1_2_priv.hh
changeset 354 0f24db96b519
parent 279 c0453b7f99df
child 756 634f476cb60f
equal deleted inserted replaced
353:17bffb57a8c5 354:0f24db96b519
    38 
    38 
    39 
    39 
    40 /* !!! WARNING !!!
    40 /* !!! WARNING !!!
    41  *
    41  *
    42  *       Whoever includes this file (stage1_2_priv.hh) will need
    42  *       Whoever includes this file (stage1_2_priv.hh) will need
    43  *       to first inlcude iec.y.hh !!
    43  *       to first inlcude iec_bison.h !!
    44  *
    44  *
    45  *       Read other comments further down to understand why we don't
    45  *       Read other comments further down to understand why we don't
    46  *       include iec.y.hh in this file.
    46  *       include iec_bison.h in this file.
    47  */
    47  */
    48 
    48 
    49 
    49 
    50 
    50 
    51 /* file with the declarations of symbol tables... */
    51 /* file with the declarations of symbol tables... */
   184  *
   184  *
   185  *       Bison accesses these data structures directly.
   185  *       Bison accesses these data structures directly.
   186  *
   186  *
   187  *       In essence, they are a data passing mechanism between Bison and Flex.
   187  *       In essence, they are a data passing mechanism between Bison and Flex.
   188  */
   188  */
   189 /* NOTE: BOGUS_TOKEN_ID is defined in the bison generated file iec.y.hh.
   189 /* NOTE: BOGUS_TOKEN_ID is defined in the bison generated file iec_bison.h.
   190  *       We need this constant defined before we can declare the symbol tables.
   190  *       We need this constant defined before we can declare the symbol tables.
   191  *       However, we cannot #include "iec.y.hh" in this file (stage1_2_priv.hh) directly
   191  *       However, we cannot #include "iec_bison.h" in this file (stage1_2_priv.hh) directly
   192  *       because of the way bison ver. 2.3 is copying all declarations in the prologue
   192  *       because of the way bison ver. 2.3 is copying all declarations in the prologue
   193  *       of iec.y to the iec.y.hh file (including an #include stage1_2_priv.hh).
   193  *       of iec.y to the iec_bison.h file (including an #include stage1_2_priv.hh).
   194  *       So, if we were to include "iec.y.hh" here, we would get a circular include.
   194  *       So, if we were to include "iec_bison.h" here, we would get a circular include.
   195  *       All this means that whoever includes this file (stage1_2_priv.hh) will need
   195  *       All this means that whoever includes this file (stage1_2_priv.hh) will need
   196  *       to take care to first inlcude iec.y.hh !!
   196  *       to take care to first inlcude iec_bison.h !!
   197  */ 
   197  */ 
   198 /* A symbol table to store all the library elements */
   198 /* A symbol table to store all the library elements */
   199 /* e.g.: <function_name , function_decl>
   199 /* e.g.: <function_name , function_decl>
   200  *       <fb_name , fb_decl>
   200  *       <fb_name , fb_decl>
   201  *       <type_name , type_decl>
   201  *       <type_name , type_decl>