java_cup
Class terminal

java.lang.Object
  extended byjava_cup.symbol
      extended byjava_cup.terminal

public class terminal
extends symbol

This class represents a terminal symbol in the grammar. Each 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 returned by the scanner and pushed on the parse stack to represent it).


Field Summary
protected static java.util.Hashtable _all
          Table of all terminals.
protected static java.util.Hashtable _all_by_index
          Table of all terminals indexed by their index number.
private  int _precedence_num
           
private  int _precedence_side
           
static terminal EOF
          Special terminal for end of input.
static terminal error
          special terminal used for error recovery
protected static int next_index
          Static counter to assign unique index.
 
Fields inherited from class java_cup.symbol
_index, _name, _stack_type, _use_count
 
Constructor Summary
terminal(java.lang.String nm)
          Constructor with default type.
terminal(java.lang.String nm, java.lang.String tp)
          Constructor for non-precedented terminal
terminal(java.lang.String nm, java.lang.String tp, int precedence_side, int precedence_num)
          Full constructor.
 
Method Summary
static java.util.Enumeration all()
          Access to all terminals.
static terminal find(int indx)
          Lookup a terminal by index.
static terminal find(java.lang.String with_name)
          Lookup a terminal by name string.
 boolean is_non_term()
          Report this symbol as not being a non-terminal.
static int number()
          Total number of terminals.
 int precedence_num()
          get the precedence of a terminal
 int precedence_side()
           
 void set_precedence(int p, int new_prec)
          set the precedence of a terminal
 java.lang.String toString()
          Convert to a 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

_precedence_num

private int _precedence_num

_precedence_side

private int _precedence_side

_all

protected static java.util.Hashtable _all
Table of all terminals. Elements are stored using name strings as the key


_all_by_index

protected static java.util.Hashtable _all_by_index
Table of all terminals indexed by their index number.


next_index

protected static int next_index
Static counter to assign unique index.


EOF

public static final terminal EOF
Special terminal for end of input.


error

public static final terminal error
special terminal used for error recovery

Constructor Detail

terminal

public terminal(java.lang.String nm,
                java.lang.String tp,
                int precedence_side,
                int precedence_num)
Full constructor.

Parameters:
nm - the name of the terminal.
tp - the type of the terminal.

terminal

public terminal(java.lang.String nm,
                java.lang.String tp)
Constructor for non-precedented terminal


terminal

public terminal(java.lang.String nm)
Constructor with default type.

Parameters:
nm - the name of the terminal.
Method Detail

all

public static java.util.Enumeration all()
Access to all terminals.


find

public static terminal find(java.lang.String with_name)
Lookup a terminal by name string.


find

public static terminal find(int indx)
Lookup a terminal by index.


number

public static int number()
Total number of terminals.


is_non_term

public boolean is_non_term()
Report this symbol as not being a non-terminal.

Specified by:
is_non_term in class symbol

toString

public java.lang.String toString()
Convert to a string.

Overrides:
toString in class symbol

precedence_num

public int precedence_num()
get the precedence of a terminal


precedence_side

public int precedence_side()

set_precedence

public void set_precedence(int p,
                           int new_prec)
set the precedence of a terminal