/**
 * A collection of constants that define the nonterminals in Pascal.
 *
 * @author Samuel A. Rebelsky
 * @version 1.0 of October 2002
 */

public class PascalSymbols
{
  // +---------+-----------------------------------------------------------
  // | Internal Fields  |
  // +------------------+
  
  private static int NUM_SYMBOLS = 0;


  // +---------+-----------------------------------------------------------
  // | Symbols |
  // +---------+

  public static final int ADDING_OPERATOR	= NUM_SYMBOLS++;
  public static final int ASSIGNMENT		= NUM_SYMBOLS++;
  public static final int ASSIGNMENT_LIST	= NUM_SYMBOLS++;
  public static final int BLOCK			= NUM_SYMBOLS++;
  public static final int CONSTANT		= NUM_SYMBOLS++;
  public static final int CONSTANT_DEFINITION	= NUM_SYMBOLS++;
  public static final int CONSTANT_DEFINITIONS	= NUM_SYMBOLS++;
  public static final int DECLARATION		= NUM_SYMBOLS++;
  public static final int DECLARATION_LIST	= NUM_SYMBOLS++;
  public static final int EXPRESSION 		= NUM_SYMBOLS++;
  public static final int FACTOR		= NUM_SYMBOLS++;
  public static final int FILE_IDENTIFIER 	= NUM_SYMBOLS++;
  public static final int IDENTIFIER_LIST	= NUM_SYMBOLS++;
  public static final int LABEL			= NUM_SYMBOLS++;
  public static final int LABEL_DECLARATION	= NUM_SYMBOLS++;
  public static final int MULTIPLYING_OPERATOR	= NUM_SYMBOLS++;
  public static final int PROGRAM_HEADING	= NUM_SYMBOLS++;
  public static final int TERM			= NUM_SYMBOLS++;
  public static final int TYPE_IDENTIFIER	= NUM_SYMBOLS++;
  public static final int UNSIGNED_INTEGER	= NUM_SYMBOLS++;
  public static final int UNSIGNED_NUMBER	= NUM_SYMBOLS++;
  public static final int UNSIGNED_REAL		= NUM_SYMBOLS++;
  public static final int VARIABLE		= NUM_SYMBOLS++;


  // +---------+-----------------------------------------------------------
  // | Methods |
  // +---------+

  /**
   * Get the number of symbols.
   */
  public static int numSymbols() {
    return NUM_SYMBOLS;
  } // numSymbols()

} // class PascalSymbols

