00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 #ifndef VCSN_ALGEBRA_IMPLEMENTATION_SERIES_KRAT_EXP_PARSER_PRIVATE_HH
00019 # define VCSN_ALGEBRA_IMPLEMENTATION_SERIES_KRAT_EXP_PARSER_PRIVATE_HH
00020 
00021 # include <vaucanson/algebra/implementation/series/krat_exp_proxy.hh>
00022 
00023 
00024 
00025 namespace vcsnyy
00026 {
00027   struct token_queue;
00028 
00029   struct krat_exp_parser
00030   {
00031     krat_exp_parser();
00032     ~krat_exp_parser();
00033     void insert_word(vcsn::algebra::krat_exp_virtual* rexp);
00034     void insert_weight(vcsn::algebra::semiring_virtual* sem);
00035     void insert_zero(vcsn::algebra::krat_exp_virtual* rexp);
00036     void insert_token(int i, std::string* str);
00037     int parse(vcsn::algebra::krat_exp_virtual& rexp, std::string& error);
00038 
00039     token_queue* tok_q_;
00040    };
00041 } 
00042 
00043 #endif // VCSN_ALGEBRA_IMPLEMENTATION_SERIES_KRAT_EXP_PARSER_PRIVATE_HH