
java_cup.reduce_action Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javacup Show documentation
Show all versions of javacup Show documentation
A fork of the Java Cup parser generator with some bug fixes and enhancements. (Forked at version 11b)
The newest version!
package java_cup;
/**
* This class represents a reduce action within the parse table.
* The action simply stores the production that it reduces with and
* responds to queries about its type.
*
* @author Scott Hudson
* @version last updated: 11/25/95
*/
public class reduce_action extends parse_action {
/*-----------------------------------------------------------*/
/*--- Constructor(s) ----------------------------------------*/
/*-----------------------------------------------------------*/
/**
* Simple constructor.
*
* @param prod the production this action reduces with.
*/
public reduce_action(production prod) throws internal_error {
/* sanity check */
if (prod == null)
throw new internal_error(
"Attempt to create a reduce_action with a null production");
_reduce_with = prod;
}
/*-----------------------------------------------------------*/
/*--- (Access to) Instance Variables ------------------------*/
/*-----------------------------------------------------------*/
/**
* The production we reduce with.
*/
protected production _reduce_with;
/**
* The production we reduce with.
*/
public production reduce_with() {
return _reduce_with;
}
/*-----------------------------------------------------------*/
/*--- General Methods ---------------------------------------*/
/*-----------------------------------------------------------*/
/**
* Quick access to type of action.
*/
public int kind() {
return REDUCE;
}
/*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
/**
* Equality test.
*/
public boolean equals(reduce_action other) {
return other != null && other.reduce_with() == reduce_with();
}
/*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
/**
* Generic equality test.
*/
public boolean equals(Object other) {
if (other instanceof reduce_action)
return equals((reduce_action) other);
else
return false;
}
/*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
/**
* Compute a hash code.
*/
public int hashCode() {
/* use the hash code of the production we are reducing with */
return reduce_with().hashCode();
}
/**
* Convert to string.
*/
public String toString() {
return "REDUCE(with prod " + reduce_with().index() + ")";
}
/*-----------------------------------------------------------*/
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy