1 2 package java_cup; 3 4 /** This class serves as the base class for entries in a parse action table. 5 * Full entries will either be SHIFT(state_num), REDUCE(production), or ERROR. 6 * Objects of this base class will default to ERROR, while the other two 7 * types will be represented by subclasses. 8 * 9 * @see java_cup.reduce_action 10 * @see java_cup.shift_action 11 * @version last updated: 11/25/95 12 * @author Scott Hudson 13 */ 14 15 public class parse_action { 16 17 /*-----------------------------------------------------------*/ 18 /*--- Constructor(s) ----------------------------------------*/ 19 /*-----------------------------------------------------------*/ 20 21 /** Simple constructor. */ parse_action()22 public parse_action() 23 { 24 /* nothing to do in the base class */ 25 } 26 27 28 /*-----------------------------------------------------------*/ 29 /*--- (Access to) Static (Class) Variables ------------------*/ 30 /*-----------------------------------------------------------*/ 31 32 /** Constant for action type -- error action. */ 33 public static final int ERROR = 0; 34 35 /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ 36 37 /** Constant for action type -- shift action. */ 38 public static final int SHIFT = 1; 39 40 /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ 41 42 /** Constants for action type -- reduce action. */ 43 public static final int REDUCE = 2; 44 45 /*-----------------------------------------------------------*/ 46 /*--- General Methods ---------------------------------------*/ 47 /*-----------------------------------------------------------*/ 48 49 /** Quick access to the type -- base class defaults to error. */ kind()50 public int kind() {return ERROR;} 51 52 /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ 53 54 /** Equality test. */ equals(parse_action other)55 public boolean equals(parse_action other) 56 { 57 /* we match all error actions */ 58 return other != null && other.kind() == ERROR; 59 } 60 61 /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ 62 63 /** Generic equality test. */ equals(Object other)64 public boolean equals(Object other) 65 { 66 if (other instanceof parse_action) 67 return equals((parse_action)other); 68 else 69 return false; 70 } 71 /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ 72 73 /** Compute a hash code. */ hashCode()74 public int hashCode() 75 { 76 /* all objects of this class hash together */ 77 return 0xCafe123; 78 } 79 80 /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ 81 82 /** Convert to string. */ toString()83 public String toString() {return "ERROR";} 84 85 /*-----------------------------------------------------------*/ 86 }; 87 88