00001 /* 00002 00003 DU6.H 00004 00005 JY 00006 00007 Main interface for DU4 00008 00009 */ 00010 00011 #ifndef DU4_H_ 00012 #define DU4_H_ 00013 00014 #include "dutables.h" 00015 #include "abstract_ic.hpp" 00016 00017 namespace mlc { 00018 00019 /***************** THE BISON CONTEXT ***************************/ 00020 00022 struct MlaskalCtx { 00023 mlaskal::abstract_ic *aic; 00024 mlc::symbol_tables *tab; 00025 }; 00026 00028 00032 int symtab_preprocess(struct MlaskalCtx *ctx, bool debug); 00033 00035 00039 int symtab_postprocess(struct MlaskalCtx *ctx, const std::string & dump_fname); 00040 00042 inline ic_label new_label( MlaskalCtx *) 00043 { 00044 return mlaskal::uid_all.get_UID(); 00045 } 00046 }; 00047 00048 // parser interface 00049 int yyparse(mlc::MlaskalCtx *ctx); 00050 00051 #endif