2 * Copyright (C) 2005 Universitat d'Alacant / Universidad de Alicante
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
27 #include <lttoolbox/MatchNode.H>
32 * Class to represent the current state of transducer processing
37 static int const BUF_LIMIT;
43 * The current state of transducer processing
45 // slist<MatchNode *> state;
49 * @param s the state to be copied
51 void copy(MatchState const &s);
59 void applySymbol(MatchNode *pnode, int const symbol);
73 * @param s the state to be copied
75 MatchState(MatchState const &s);
79 * @param s the state to be assigned
80 * @return the object that results from the assignation
82 MatchState & operator =(MatchState const &s);
85 * Number of alive transductions
91 * step = apply + epsilonClosure
92 * @param input the input symbol
94 void step(int const input);
97 * step = apply + epsilonClosure
98 * @param input the input symbol
99 * @param alt the alternative input symbol
101 void step(int const input, int const alt);
104 * Init the state with the initial node and empty output
105 * @param initial the initial node of the transducer
107 void init(MatchNode *initial);
109 int classifyFinals(map<MatchNode *, int> const &final_class) const;