#ifndef __NASAL_VAR_INRUN_LIST_H__ #define __NASAL_VAR_INRUN_LIST_H__ struct var_list_unit { std::string var_name; int num_place; }; class nasal_var_map { private: std::list var_list; int var_number; public: nasal_var_map() { var_list.clear(); var_number=0; } void add_var(std::string& __str) { var_list_unit t; t.var_name=__str; for(std::list::iterator i=var_list.begin();i!=var_list.end();++i) { if(i->var_name==__str) return; } ++var_number; t.num_place=var_number; var_list.push_back(t); return; } int return_last_var_num_place() { std::list::iterator i=var_list.end(); --i; return i->num_place; } void print_all_var() { for(std::list::iterator i=var_list.begin();i!=var_list.end();++i) std::cout<var_name<<": "<num_place< var_list; bool global; public: block_list(const bool is_global) { var_list.clear(); global=is_global; } block_list(const block_list& temp) { var_list=temp.var_list; global=temp.global; } ~block_list() { var_list.clear(); } void block_add_var(var& varia,int number) { block_list_unit t; t.variable=varia; t.num_place=number; var_list.push_back(t); return; } }; class general_in_run_list { private: std::list var_block_list; public: general_in_run_list() { var_block_list.clear(); } ~general_in_run_list() { var_block_list.clear(); } void add_block(block_list temp) { var_block_list.push_back(temp); return; } void delete_last_block() { var_block_list.pop_back(); return; } }; #endif