stage1_2/stage1_2.cc
changeset 822 a7d9e0b8636b
parent 757 f1fc4aa6f0e3
child 870 9c6c588fd708
equal deleted inserted replaced
821:fa4569bf1538 822:a7d9e0b8636b
    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 
   120 /* The global symbol tables...   */
   120 /* The global symbol tables...   */
   121 /*********************************/
   121 /*********************************/
   122 /* NOTE: only accessed indirectly by the lexical parser (flex)
   122 /* NOTE: only accessed indirectly by the lexical parser (flex)
   123  *       through the function get_identifier_token()
   123  *       through the function get_identifier_token()
   124  */
   124  */
   125 /* NOTE: BOGUS_TOKEN_ID is defined in the bison generated file iec_bison.h.
   125 /* NOTE: BOGUS_TOKEN_ID is defined in the bison generated file iec_bison.hh.
   126  *       We need this constant defined before we can declare the symbol tables.
   126  *       We need this constant defined before we can declare the symbol tables.
   127  *       However, we cannot #include "iec_bison.h" in this file (stage1_2_priv.hh) directly
   127  *       However, we cannot #include "iec_bison.hh" in this file (stage1_2_priv.hh) directly
   128  *       because of the way bison ver. 3.2 is copying all declarations in the prologue
   128  *       because of the way bison ver. 3.2 is copying all declarations in the prologue
   129  *       of iec.y to the iec_bison.h file (including an #include stage1_2_priv.hh).
   129  *       of iec.y to the iec_bison.hh file (including an #include stage1_2_priv.hh).
   130  *       So, if we were to include "iec_bison.h" here, we would get a circular include.
   130  *       So, if we were to include "iec_bison.hh" here, we would get a circular include.
   131  *       All this means that whoever includes this file (stage1_2_priv.hh) will need
   131  *       All this means that whoever includes this file (stage1_2_priv.hh) will need
   132  *       to take care to first inlcude iec_bison.h !!
   132  *       to take care to first inlcude iec_bison.hh !!
   133  */ 
   133  */ 
   134 /* A symbol table to store all the library elements */
   134 /* A symbol table to store all the library elements */
   135 /* e.g.: <function_name , function_decl>
   135 /* e.g.: <function_name , function_decl>
   136  *       <fb_name , fb_decl>
   136  *       <fb_name , fb_decl>
   137  *       <type_name , type_decl>
   137  *       <type_name , type_decl>