1
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
3
* Copyright (C) 1998-2004 Gerwin Klein <lsf@jflex.de> *
4
* All rights reserved. *
6
* This program is free software; you can redistribute it and/or modify *
7
* it under the terms of the GNU General Public License. See the file *
8
* COPYRIGHT for more information. *
10
* This program is distributed in the hope that it will be useful, *
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13
* GNU General Public License for more details. *
15
* You should have received a copy of the GNU General Public License along *
16
* with this program; if not, write to the Free Software Foundation, Inc., *
17
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
19
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
21
package weka.core.parser.JFlex;
27
* A simple table to store EOF actions for each lexical state.
29
* @author Gerwin Klein
30
* @version JFlex 1.4.1, $Revision: 1.1 $, $Date: 2008/05/09 09:14:11 $
32
public class EOFActions {
34
/** maps lexical states to actions */
35
private Hashtable /* Integer -> Action */ actions = new Hashtable();
36
private Action defaultAction;
37
private int numLexStates;
39
public void setNumLexStates(int num) {
43
public void add(Vector stateList, Action action) {
45
if (stateList != null && stateList.size() > 0) {
46
Enumeration states = stateList.elements();
48
while (states.hasMoreElements())
49
add( (Integer) states.nextElement(), action );
52
defaultAction = action.getHigherPriority(defaultAction);
54
for (int i = 0; i < numLexStates; i++) {
55
Integer state = new Integer(i);
56
if ( actions.get(state) != null ) {
57
Action oldAction = (Action) actions.get(state);
58
actions.put(state, oldAction.getHigherPriority(action));
64
public void add(Integer state, Action action) {
65
if ( actions.get(state) == null )
66
actions.put(state, action);
68
Action oldAction = (Action) actions.get(state);
69
actions.put(state, oldAction.getHigherPriority(action));
73
public boolean isEOFAction(Object a) {
74
if (a == defaultAction) return true;
76
Enumeration e = actions.elements();
77
while ( e.hasMoreElements() )
78
if (a == e.nextElement()) return true;
83
public Action getAction(int state) {
84
return (Action) actions.get(new Integer(state));
87
public Action getDefault() {
91
public int numActions() {
92
return actions.size();