package java_cup; /** * This class represents a part of a production which contains an action. These * are eventually eliminated from productions and converted to trailing actions * by factoring out with a production that derives the empty string (and ends * with this action). * * @see java_cup.production * @version last update: 11/25/95 * @author Scott Hudson */ @SuppressWarnings ( { "all" } ) public class action_part extends production_part { /*-----------------------------------------------------------*/ /*--- Constructors ------------------------------------------*/ /*-----------------------------------------------------------*/ /** * Simple constructor. * * @param code_str string containing the actual user code. */ public action_part ( String code_str ) { super ( /* never have a label on code */null ); _code_string = code_str; } /*-----------------------------------------------------------*/ /*--- (Access to) Instance Variables ------------------------*/ /*-----------------------------------------------------------*/ /** String containing code for the action in question. */ protected String _code_string; /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ /** String containing code for the action in question. */ public String code_string () { return _code_string; } /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ /** Set the code string. */ public void set_code_string ( String new_str ) { _code_string = new_str; } /*-----------------------------------------------------------*/ /*--- General Methods ---------------------------------------*/ /*-----------------------------------------------------------*/ /** Override to report this object as an action. */ public boolean is_action () { return true; } /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ /** Equality comparison for properly typed object. */ public boolean equals ( action_part other ) { /* compare the strings */ return other != null && super.equals ( other ) && other.code_string ().equals ( code_string () ); } /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ /** Generic equality comparison. */ public boolean equals ( Object other ) { if ( ! ( other instanceof action_part ) ) return false; else return equals ( ( action_part ) other ); } /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ /** Produce a hash code. */ public int hashCode () { return super.hashCode () ^ ( code_string () == null ? 0 : code_string ().hashCode () ); } /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ /** Convert to a string. */ public String toString () { return super.toString () + "{" + code_string () + "}"; } /*-----------------------------------------------------------*/ }