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