package java_cup; /** * A specialized version of a production used when we split an existing * production in order to remove an embedded action. Here we keep a bit of extra * bookkeeping so that we know where we came from. * * @version last updated: 11/25/95 * @author Scott Hudson */ @SuppressWarnings ( { "all" } ) public class action_production extends production { /** * Constructor. * * @param base the production we are being factored out of. * @param lhs_sym the LHS symbol for this production. * @param rhs_parts array of production parts for the RHS. * @param rhs_len how much of the rhs_parts array is valid. * @param action_str the trailing reduce action for this production. * @param indexOfIntermediateResult the index of the result of the previous * intermediate action on the stack relative to top, -1 if no * previous action */ public action_production ( production base, non_terminal lhs_sym, production_part rhs_parts[], int rhs_len, String action_str, int indexOfIntermediateResult ) throws internal_error { super ( lhs_sym, rhs_parts, rhs_len, action_str ); _base_production = base; this.indexOfIntermediateResult = indexOfIntermediateResult; } private int indexOfIntermediateResult; /** * @return the index of the result of the previous intermediate action on the * stack relative to top, -1 if no previous action */ public int getIndexOfIntermediateResult () { return indexOfIntermediateResult; } /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ /** The production we were taken out of. */ protected production _base_production; /** The production we were taken out of. */ public production base_production () { return _base_production; } }