|
||||||||||
| 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_errorpublic java.util.Enumeration productions()
public int num_productions()
public void add_production(production prod)
throws internal_error
internal_errorpublic 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_errorpublic java.lang.String toString()
toString in class symbol
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||