stage1_2/stage1_2.cc
changeset 881 e05d69c1ccb3
parent 873 dea39ef02847
parent 870 9c6c588fd708
child 924 9e824bb0c3d4
equal deleted inserted replaced
880:599e88d12f9a 881:e05d69c1ccb3
    42 /* file with declaration of absyntax classes... */
    42 /* file with declaration of absyntax classes... */
    43 #include "../absyntax/absyntax.hh"
    43 #include "../absyntax/absyntax.hh"
    44 
    44 
    45 
    45 
    46 #include "stage1_2.hh"
    46 #include "stage1_2.hh"
    47 #include "iec_bison.h"
    47 #include "iec_bison.hh"
    48 #include "stage1_2_priv.hh"
    48 #include "stage1_2_priv.hh"
    49 #include "create_enumtype_conversion_functions.hh"
    49 #include "create_enumtype_conversion_functions.hh"
    50 
    50 
    51 
    51 
    52 
    52 
   133 /* The global symbol tables...   */
   133 /* The global symbol tables...   */
   134 /*********************************/
   134 /*********************************/
   135 /* NOTE: only accessed indirectly by the lexical parser (flex)
   135 /* NOTE: only accessed indirectly by the lexical parser (flex)
   136  *       through the function get_identifier_token()
   136  *       through the function get_identifier_token()
   137  */
   137  */
   138 /* NOTE: BOGUS_TOKEN_ID is defined in the bison generated file iec_bison.h.
   138 /* NOTE: BOGUS_TOKEN_ID is defined in the bison generated file iec_bison.hh.
   139  *       We need this constant defined before we can declare the symbol tables.
   139  *       We need this constant defined before we can declare the symbol tables.
   140  *       However, we cannot #include "iec_bison.h" in this file (stage1_2_priv.hh) directly
   140  *       However, we cannot #include "iec_bison.hh" in this file (stage1_2_priv.hh) directly
   141  *       because of the way bison ver. 3.2 is copying all declarations in the prologue
   141  *       because of the way bison ver. 3.2 is copying all declarations in the prologue
   142  *       of iec.y to the iec_bison.h file (including an #include stage1_2_priv.hh).
   142  *       of iec.y to the iec_bison.hh file (including an #include stage1_2_priv.hh).
   143  *       So, if we were to include "iec_bison.h" here, we would get a circular include.
   143  *       So, if we were to include "iec_bison.hh" here, we would get a circular include.
   144  *       All this means that whoever includes this file (stage1_2_priv.hh) will need
   144  *       All this means that whoever includes this file (stage1_2_priv.hh) will need
   145  *       to take care to first inlcude iec_bison.h !!
   145  *       to take care to first inlcude iec_bison.hh !!
   146  */ 
   146  */ 
   147 /* A symbol table to store all the library elements */
   147 /* A symbol table to store all the library elements */
   148 /* e.g.: <function_name , function_decl>
   148 /* e.g.: <function_name , function_decl>
   149  *       <fb_name , fb_decl>
   149  *       <fb_name , fb_decl>
   150  *       <type_name , type_decl>
   150  *       <type_name , type_decl>