

import java.util.Hashtable;
import java.util.Vector;
import Jakarta.util.FixDosOutputStream;
import java.io.*;

public class PrepareDecl {
    public void reduce2java( AstProperties props ) {
        String    stateName;
        stateInfo s;

        stateName = arg[0].tok[0].tokenName();
        s =  stateInfo.verifyStateName( stateName, "Prepare method", tok[0] );

        AST_Stmt code = ( AST_Stmt ) arg[1].arg[0].arg[0];

        // now do the refinement -- there can be multiple Prepare declarations
        // in an SM specification.  This wierdness arises because of JamPack
        // compositions of SM specs.

        s.prepare_action_ast = ( AST_Stmt )
          kernelConstants.globals().sm4vars.refineMethod( s.prepare_action_ast, code, "Prepare " + 
               stateName, s.name + "_prepare", true, tok[0] );
    }
}
