| |
|
| java.lang.Object java_cup.lr_item_core
All known Subclasses: java_cup.lalr_item,
lr_item_core | public class lr_item_core (Code) | | The "core" of an LR item. This includes a production and the position
of a marker (the "dot") within the production. Typically item cores
are written using a production with an embedded "dot" to indicate their
position. For example:
A ::= B * C d E
This represents a point in a parse where the parser is trying to match
the given production, and has succeeded in matching everything before the
"dot" (and hence is expecting to see the symbols after the dot next). See
lalr_item, lalr_item_set, and lalr_start for full details on the meaning
and use of items.
See Also: java_cup.lalr_item See Also: java_cup.lalr_item_set See Also: java_cup.lalr_state version: last updated: 11/25/95 author: Scott Hudson |
Field Summary | |
protected int | _core_hash_cache Cache of the hash code. | protected int | _dot_pos The position of the "dot" -- this indicates the part of the production
that the marker is before, so 0 indicates a dot at the beginning of
the RHS. | protected symbol | _symbol_after_dot Cache of symbol after the dot. | protected production | _the_production The production for the item. |
Method Summary | |
public boolean | core_equals(lr_item_core other) Equality comparison for the core only. | public int | core_hashCode() Hash code for the core (separated so we keep non overridden version). | public boolean | dot_at_end() | public non_terminal | dot_before_nt() Determine if we have a dot before a non terminal, and if so which one
(return null or the non terminal). | public int | dot_pos() The position of the "dot" -- this indicates the part of the production
that the marker is before, so 0 indicates a dot at the beginning of
the RHS. | public boolean | equals(lr_item_core other) Equality comparison. | public boolean | equals(Object other) Generic equality comparison. | public int | hashCode() Hash code for the item. | protected int | obj_hash() Return the hash code that object would have provided for us so we have
a (nearly) unique id for debugging. | public lr_item_core | shift_core() Produce a new lr_item_core that results from shifting the dot one
position to the right. | public symbol | symbol_after_dot() Return the symbol after the dot. | public production | the_production() The production for the item. | public String | toString() | public String | to_simple_string() Convert to a string (separated out from toString() so we can call it
from subclass that overrides toString()). |
_core_hash_cache | protected int _core_hash_cache(Code) | | Cache of the hash code.
|
_dot_pos | protected int _dot_pos(Code) | | The position of the "dot" -- this indicates the part of the production
that the marker is before, so 0 indicates a dot at the beginning of
the RHS.
|
_symbol_after_dot | protected symbol _symbol_after_dot(Code) | | Cache of symbol after the dot.
|
_the_production | protected production _the_production(Code) | | The production for the item.
|
lr_item_core | public lr_item_core(production prod, int pos) throws internal_error(Code) | | Full constructor.
Parameters: prod - production this item uses. Parameters: pos - position of the "dot" within the item. |
lr_item_core | public lr_item_core(production prod) throws internal_error(Code) | | Constructor for dot at start of right hand side.
Parameters: prod - production this item uses. |
core_equals | public boolean core_equals(lr_item_core other)(Code) | | Equality comparison for the core only. This is separate out because we
need separate access in a super class.
|
core_hashCode | public int core_hashCode()(Code) | | Hash code for the core (separated so we keep non overridden version).
|
dot_at_end | public boolean dot_at_end()(Code) | | Is the dot at the end of the production?
|
dot_before_nt | public non_terminal dot_before_nt()(Code) | | Determine if we have a dot before a non terminal, and if so which one
(return null or the non terminal).
|
dot_pos | public int dot_pos()(Code) | | The position of the "dot" -- this indicates the part of the production
that the marker is before, so 0 indicates a dot at the beginning of
the RHS.
|
equals | public boolean equals(Object other)(Code) | | Generic equality comparison.
|
hashCode | public int hashCode()(Code) | | Hash code for the item.
|
obj_hash | protected int obj_hash()(Code) | | Return the hash code that object would have provided for us so we have
a (nearly) unique id for debugging.
|
symbol_after_dot | public symbol symbol_after_dot()(Code) | | Return the symbol after the dot. If there is no symbol after the dot
we return null.
|
the_production | public production the_production()(Code) | | The production for the item.
|
to_simple_string | public String to_simple_string() throws internal_error(Code) | | Convert to a string (separated out from toString() so we can call it
from subclass that overrides toString()).
|
|
|
|