Methods Summary |
---|
public boolean | add(com.sun.java_cup.internal.terminal_set other)Add (union) in a complete set.
not_null(other);
/* make a copy */
BitSet copy = (BitSet)_elements.clone();
/* or in the other set */
_elements.or(other._elements);
/* changed if we are not the same as the copy */
return !_elements.equals(copy);
|
public boolean | add(terminal sym)Add a single terminal to the set.
boolean result;
not_null(sym);
/* see if we already have this */
result = _elements.get(sym.index());
/* if not we add it */
if (!result)
_elements.set(sym.index());
return result;
|
public boolean | contains(terminal sym)Determine if the set contains a particular terminal.
not_null(sym);
return _elements.get(sym.index());
|
public boolean | contains(int indx)Given its index determine if the set contains a particular terminal.
return _elements.get(indx);
|
public boolean | empty()Determine if the set is empty.
return equals(EMPTY);
|
public boolean | equals(com.sun.java_cup.internal.terminal_set other)Equality comparison.
if (other == null)
return false;
else
return _elements.equals(other._elements);
|
public boolean | equals(java.lang.Object other)Generic equality comparison.
if (!(other instanceof terminal_set))
return false;
else
return equals((terminal_set)other);
|
public boolean | intersects(com.sun.java_cup.internal.terminal_set other)Determine if this set intersects another.
not_null(other);
/* make a copy of the other set */
BitSet copy = (BitSet)other._elements.clone();
/* xor out our values */
copy.xor(this._elements);
/* see if its different */
return !copy.equals(other._elements);
|
public boolean | is_subset_of(com.sun.java_cup.internal.terminal_set other)Determine if this set is an (improper) subset of another.
not_null(other);
/* make a copy of the other set */
BitSet copy_other = (BitSet)other._elements.clone();
/* and or in */
copy_other.or(_elements);
/* if it hasn't changed, we were a subset */
return copy_other.equals(other._elements);
|
public boolean | is_superset_of(com.sun.java_cup.internal.terminal_set other)Determine if this set is an (improper) superset of another.
not_null(other);
return other.is_subset_of(this);
|
protected void | not_null(java.lang.Object obj)Helper function to test for a null object and throw an exception if
one is found.
/*-----------------------------------------------------------*/
/*--- General Methods ----------------------------------------*/
/*-----------------------------------------------------------*/
if (obj == null)
throw new internal_error("Null object used in set operation");
|
public void | remove(terminal sym)Remove a terminal if it is in the set.
not_null(sym);
_elements.clear(sym.index());
|
public java.lang.String | toString()Convert to string.
String result;
boolean comma_flag;
result = "{";
comma_flag = false;
for (int t = 0; t < terminal.number(); t++)
{
if (_elements.get(t))
{
if (comma_flag)
result += ", ";
else
comma_flag = true;
result += terminal.find(t).name();
}
}
result += "}";
return result;
|