Home | History | Annotate | Download | only in runtime
      1 
      2 package java_cup.runtime;
      3 
      4 /** This class represents a (terminal or non-terminal) symbol that, among
      5  *  other things can be placed on the parse stack.  Symbols are used to
      6  *  keep track of state on the parse stack.  The symbol currently on top
      7  *  of the stack contains the current state in the parse_state field.
      8  *  In addition to the parse_state field, symbols also maintain a record
      9  *  of the symbol number that they represent in the sym field.  Finally,
     10  *  symbols are used contain to any attributes used by semantic action (this
     11  *  is done via fields added in subclasses -- see for example, int_token and
     12  *  str_token).
     13  *
     14  * @see java_cup.runtime.token
     15  * @see java_cup.runtime.int_token
     16  * @see java_cup.runtime.str_token
     17  * @version last updated: 11/25/95
     18  * @author  Scott Hudson
     19  */
     20 
     21 public class symbol {
     22 
     23   /** Full constructor. */
     24   public symbol(int sym_num, int state)
     25     {
     26       sym = sym_num;
     27       parse_state = state;
     28     }
     29 
     30   /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
     31 
     32   /** Constructor without a known state. */
     33   public symbol(int sym_num)
     34     {
     35       this(sym_num, -1);
     36     }
     37 
     38   /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
     39 
     40   /** The symbol number of the terminal or non terminal being represented */
     41   public int sym;
     42 
     43   /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
     44 
     45   /** The parse state to be recorded on the parse stack with this symbol.
     46    *  This field is for the convenience of the parser and shouldn't be
     47    *  modified except by the parser.
     48    */
     49   public int parse_state;
     50 };
     51