import java.util.Hashtable;
import java.util.Vector;
import Jakarta.util.FixDosOutputStream;
import java.io.*;
public class StatesClause {
// call this method to define a state
public static stateInfo defineState( String stateName, boolean nested, AstTokenInterface t ) {
stateInfo s;
// Step 1: create a stateInfo object for this state
// and make sure it is unique. If so, add it
s = new stateInfo( stateName, nested );
if ( kernelConstants.globals().sm4vars.Sm.StateCont.find( s ) != null )
AstNode.fatalError( t, Utility.SourceName()+
"duplicate state name " + stateName );
kernelConstants.globals().sm4vars.Sm.StateCont.add( s );
// Step 2: assign state a number
kernelConstants.globals().sm4vars.Sm.state_constants = kernelConstants.globals().sm4vars.Sm.state_constants +
" final static int " + s.name + " = stateNumGenerator++; \n";
return s;
}
}