|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava_cup.symbol
java_cup.non_terminal
This class represents a non-terminal symbol in the grammar. Each non terminal has a textual name, an index, and a string which indicates the type of object it will be implemented with at runtime (i.e. the class of object that will be pushed on the parse stack to represent it).
Field Summary | |
protected static java.util.Hashtable |
_all
Table of all non-terminals -- elements are stored using name strings as the key |
protected static java.util.Hashtable |
_all_by_index
Table of all non terminals indexed by their index number. |
protected terminal_set |
_first_set
First set for this non-terminal. |
protected boolean |
_nullable
Nullability of this non terminal. |
protected java.util.Hashtable |
_productions
Table of all productions with this non terminal on the LHS. |
boolean |
is_embedded_action
flag non-terminals created to embed action productions |
protected static int |
next_index
Static counter to assign unique indexes. |
protected static int |
next_nt
Static counter for creating unique non-terminal names |
static non_terminal |
START_nt
special non-terminal for start symbol |
Fields inherited from class java_cup.symbol |
_index, _name, _stack_type, _use_count |
Constructor Summary | |
non_terminal(java.lang.String nm)
Constructor with default type. |
|
non_terminal(java.lang.String nm,
java.lang.String tp)
Full constructor. |
Method Summary | |
void |
add_production(production prod)
Add a production to our set of productions. |
static java.util.Enumeration |
all()
Access to all non-terminals. |
static void |
compute_first_sets()
Compute first sets for all non-terminals. |
static void |
compute_nullability()
Compute nullability of all non-terminals. |
(package private) static non_terminal |
create_new()
static routine for creating a new uniquely named hidden non-terminal |
(package private) static non_terminal |
create_new(java.lang.String prefix)
Method for creating a new uniquely named hidden non-terminal using the given string as a base for the name (or "NT$" if null is passed). |
static non_terminal |
find(int indx)
Lookup a non terminal by index. |
static non_terminal |
find(java.lang.String with_name)
lookup a non terminal by name string |
terminal_set |
first_set()
First set for this non-terminal. |
boolean |
is_non_term()
Indicate that this symbol is a non-terminal. |
protected boolean |
looks_nullable()
Test to see if this non terminal currently looks nullable. |
boolean |
nullable()
Nullability of this non terminal. |
int |
num_productions()
Total number of productions with this non terminal on the LHS. |
static int |
number()
Total number of non-terminals. |
java.util.Enumeration |
productions()
Access to productions with this non terminal on the LHS. |
java.lang.String |
toString()
convert to string |
Methods inherited from class java_cup.symbol |
index, name, note_use, stack_type, use_count |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected static java.util.Hashtable _all
protected static java.util.Hashtable _all_by_index
protected static int next_index
protected static int next_nt
public static final non_terminal START_nt
public boolean is_embedded_action
protected java.util.Hashtable _productions
protected boolean _nullable
protected terminal_set _first_set
Constructor Detail |
public non_terminal(java.lang.String nm, java.lang.String tp)
nm
- the name of the non terminal.tp
- the type string for the non terminal.public non_terminal(java.lang.String nm)
nm
- the name of the non terminal.Method Detail |
public static java.util.Enumeration all()
public static non_terminal find(java.lang.String with_name)
public static non_terminal find(int indx)
public static int number()
static non_terminal create_new(java.lang.String prefix) throws internal_error
prefix
- base name to construct unique name from.
internal_error
static non_terminal create_new() throws internal_error
internal_error
public static void compute_nullability() throws internal_error
internal_error
public static void compute_first_sets() throws internal_error
internal_error
public java.util.Enumeration productions()
public int num_productions()
public void add_production(production prod) throws internal_error
internal_error
public boolean nullable()
public terminal_set first_set()
public boolean is_non_term()
is_non_term
in class symbol
protected boolean looks_nullable() throws internal_error
internal_error
public java.lang.String toString()
toString
in class symbol
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |