summaryrefslogtreecommitdiffstats
path: root/src/syntaxParser/java_cup/symbol_part.java
diff options
context:
space:
mode:
authorConstantin Jucovschi <cj@ubuntu.localdomain>2009-03-31 06:18:54 -0400
committerConstantin Jucovschi <cj@ubuntu.localdomain>2009-03-31 06:18:54 -0400
commit0f1055b8d7f97d86c66fa602c17666bc2ff9c437 (patch)
tree9c68fa99a97063bbe4a4231e04fc09329541ac71 /src/syntaxParser/java_cup/symbol_part.java
Initial commit
Diffstat (limited to 'src/syntaxParser/java_cup/symbol_part.java')
-rw-r--r--src/syntaxParser/java_cup/symbol_part.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/syntaxParser/java_cup/symbol_part.java b/src/syntaxParser/java_cup/symbol_part.java
new file mode 100644
index 0000000..9142b5f
--- /dev/null
+++ b/src/syntaxParser/java_cup/symbol_part.java
@@ -0,0 +1,100 @@
+package java_cup;
+
+/** This class represents a part of a production which is a symbol (terminal
+ * or non terminal). This simply maintains a reference to the symbol in
+ * question.
+ *
+ * @see java_cup.production
+ * @version last updated: 11/25/95
+ * @author Scott Hudson
+ */
+public class symbol_part extends production_part {
+
+ /*-----------------------------------------------------------*/
+ /*--- Constructor(s) ----------------------------------------*/
+ /*-----------------------------------------------------------*/
+
+ /** Full constructor.
+ * @param sym the symbol that this part is made up of.
+ * @param lab an optional label string for the part.
+ */
+ public symbol_part(symbol sym, String lab) throws internal_error
+ {
+ super(lab);
+
+ if (sym == null)
+ throw new internal_error(
+ "Attempt to construct a symbol_part with a null symbol");
+ _the_symbol = sym;
+ }
+
+ /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+
+ /** Constructor with no label.
+ * @param sym the symbol that this part is made up of.
+ */
+ public symbol_part(symbol sym) throws internal_error
+ {
+ this(sym,null);
+ }
+
+ /*-----------------------------------------------------------*/
+ /*--- (Access to) Instance Variables ------------------------*/
+ /*-----------------------------------------------------------*/
+
+ /** The symbol that this part is made up of. */
+ protected symbol _the_symbol;
+
+ /** The symbol that this part is made up of. */
+ public symbol the_symbol() {return _the_symbol;}
+
+ /*-----------------------------------------------------------*/
+ /*--- General Methods ---------------------------------------*/
+ /*-----------------------------------------------------------*/
+
+ /** Respond that we are not an action part. */
+ public boolean is_action() { return false; }
+
+ /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+
+ /** Equality comparison. */
+ public boolean equals(symbol_part other)
+ {
+ return other != null && super.equals(other) &&
+ the_symbol().equals(other.the_symbol());
+ }
+
+ /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+
+ /** Generic equality comparison. */
+ public boolean equals(Object other)
+ {
+ if (!(other instanceof symbol_part))
+ return false;
+ else
+ return equals((symbol_part)other);
+ }
+
+ /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+
+ /** Produce a hash code. */
+ public int hashCode()
+ {
+ return super.hashCode() ^
+ (the_symbol()==null ? 0 : the_symbol().hashCode());
+ }
+
+ /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
+
+ /** Convert to a string. */
+ public String toString()
+ {
+ if (the_symbol() != null)
+ return super.toString() + the_symbol();
+ else
+ return super.toString() + "$$MISSING-SYMBOL$$";
+ }
+
+ /*-----------------------------------------------------------*/
+
+}