Ptidej-v5.2-master/PADL Creator AOL/src/padl/creator/aolfile/javacup/parser.java
//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Sun Jul 25 13:35:26 EDT 1999
//----------------------------------------------------

package padl.creator.aolfile.javacup;

import java.util.Hashtable;
import padl.creator.aolfile.javacup.runtime.lr_parser;

/** Cup generated class to encapsulate user supplied action code.*/
class CUP$parser$actions {

	/** max size of right hand side we will support */
	protected final int MAX_RHS = 200;

	/** array for accumulating right hand side parts */
	protected production_part[] rhs_parts = new production_part[this.MAX_RHS];

	/** where we are currently in building a right hand side */
	protected int rhs_pos = 0;

	/** string to build up multiple part names */
	protected String multipart_name = new String();

	/** table of declared symbols -- contains production parts indexed by name */
	protected Hashtable symbols = new Hashtable();

	/** table of just non terminals -- contains non_terminals indexed by name */
	protected Hashtable non_terms = new Hashtable();

	/** declared start non_terminal */
	protected non_terminal start_nt = null;

	/** left hand side non terminal of the current production */
	protected non_terminal lhs_nt;

	/** Current precedence number */
	int _cur_prec = 0;

	/** Current precedence side */
	int _cur_side = assoc.no_prec;

	/** Constructor */
	CUP$parser$actions(final parser parser) {
	}

	/** helper routine to clone a new production part adding a given label */
	protected production_part add_lab(
		final production_part part,
		final String lab) throws internal_error {
		/* if there is no label, or this is an action, just return the original */
		if (lab == null || part.is_action()) {
			return part;
		}

		/* otherwise build a new one with the given label attached */
		return new symbol_part(((symbol_part) part).the_symbol(), lab);
	}

	/** add relevant data to terminals */
	protected void add_precedence(final String term) {
		if (term == null) {
			System.err
				.println("Unable to add precedence to nonexistent terminal");
		}
		else {
			final symbol_part sp = (symbol_part) this.symbols.get(term);
			if (sp == null) {
				System.err.println("Could find terminal " + term
						+ " while declaring precedence");
			}
			else {
				final padl.creator.aolfile.javacup.symbol sym = sp.the_symbol();
				if (sym instanceof terminal) {
					((terminal) sym).set_precedence(
						this._cur_side,
						this._cur_prec);
				}
				else {
					System.err
						.println("Precedence declaration: Can't find terminal "
								+ term);
				}
			}
		}
	}

	/** add a new right hand side part */
	protected void add_rhs_part(final production_part part)
			throws java.lang.Exception {
		if (this.rhs_pos >= this.MAX_RHS) {
			throw new Exception("Internal Error: Productions limited to "
					+ this.MAX_RHS + " symbols and actions");
		}

		this.rhs_parts[this.rhs_pos] = part;
		this.rhs_pos++;
	}
	/** append a new name segment to the accumulated multipart name */
	protected void append_multipart(final String name) {
		String dot = "";

		/* if we aren't just starting out, put on a dot */
		if (this.multipart_name.length() != 0) {
			dot = ".";
		}

		this.multipart_name = this.multipart_name.concat(dot + name);
	}

	/** Method with the actual generated action code. */
	public final padl.creator.aolfile.javacup.runtime.Symbol CUP$parser$do_action(
		final int CUP$parser$act_num,
		final padl.creator.aolfile.javacup.runtime.lr_parser CUP$parser$parser,
		final java.util.Stack CUP$parser$stack,
		final int CUP$parser$top) throws java.lang.Exception {
		/* Symbol object for return from actions */
		padl.creator.aolfile.javacup.runtime.Symbol CUP$parser$result;

		/* select the action based on the action number */
		switch (CUP$parser$act_num) {
			/*. . . . . . . . . . . . . . . . . . . .*/
			case 106 : // empty ::= 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							29/*empty*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 105 : // opt_semi ::= SEMI 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							7/*opt_semi*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 104 : // opt_semi ::= 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							7/*opt_semi*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 103 : // non_terminal ::= NONTERMINAL 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							8/*non_terminal*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 102 : // non_terminal ::= NON TERMINAL 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							8/*non_terminal*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 101 : // robust_id ::= error 
				{
					String RESULT = null;

					lexer.emit_error("Illegal use of reserved word");
					RESULT = "ILLEGAL";

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 100 : // robust_id ::= NONASSOC 
				{
					String RESULT = null;
					RESULT = "nonassoc";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 99 : // robust_id ::= RIGHT 
				{
					String RESULT = null;
					RESULT = "right";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 98 : // robust_id ::= LEFT 
				{
					String RESULT = null;
					RESULT = "left";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 97 : // robust_id ::= PRECEDENCE 
				{
					String RESULT = null;
					RESULT = "precedence";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 96 : // robust_id ::= START 
				{
					String RESULT = null;
					RESULT = "start";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 95 : // robust_id ::= WITH 
				{
					String RESULT = null;
					RESULT = "with";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 94 : // robust_id ::= SCAN 
				{
					String RESULT = null;
					RESULT = "scan";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 93 : // robust_id ::= INIT 
				{
					String RESULT = null;
					RESULT = "init";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 92 : // robust_id ::= NONTERMINAL 
				{
					String RESULT = null;
					RESULT = "nonterminal";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 91 : // robust_id ::= NON 
				{
					String RESULT = null;
					RESULT = "non";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 90 : // robust_id ::= TERMINAL 
				{
					String RESULT = null;
					RESULT = "terminal";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 89 : // robust_id ::= PARSER 
				{
					String RESULT = null;
					RESULT = "parser";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 88 : // robust_id ::= ACTION 
				{
					String RESULT = null;
					RESULT = "action";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 87 : // robust_id ::= CODE 
				{
					String RESULT = null;
					RESULT = "code";
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 86 : // robust_id ::= ID 
				{
					String RESULT = null;
					final int the_idleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int the_idright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String the_id =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;
					RESULT = the_id;
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							42/*robust_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 85 : // label_id ::= robust_id 
				{
					String RESULT = null;
					final int the_idleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int the_idright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String the_id =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;
					RESULT = the_id;
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							38/*label_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 84 : // symbol_id ::= error 
				{
					String RESULT = null;

					lexer.emit_error("Illegal use of reserved word");
					RESULT = "ILLEGAL";

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							37/*symbol_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 83 : // symbol_id ::= ID 
				{
					String RESULT = null;
					final int the_idleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int the_idright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String the_id =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;
					RESULT = the_id;
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							37/*symbol_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 82 : // nt_id ::= error 
				{
					String RESULT = null;

					lexer.emit_error("Illegal use of reserved word");
					RESULT = "ILLEGAL";

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							36/*nt_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 81 : // nt_id ::= ID 
				{
					String RESULT = null;
					final int the_idleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int the_idright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String the_id =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;
					RESULT = the_id;
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							36/*nt_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 80 : // new_non_term_id ::= ID 
				{
					final Object RESULT = null;
					final int non_term_idleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int non_term_idright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String non_term_id =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;

					/* see if this non terminal has been declared before */
					if (this.symbols.get(non_term_id) != null) {
						/* issue a message */
						lexer.emit_error("java_cup.runtime.Symbol \""
								+ non_term_id + "\" has already been declared");
					}
					else {
						if (this.multipart_name.equals("")) {
							this.append_multipart("Object");
						}
						/* build the non terminal object */
						final non_terminal this_nt =
							new non_terminal(non_term_id, this.multipart_name);

						/* put it in the non_terms table */
						this.non_terms.put(non_term_id, this_nt);

						/* build a production_part and put it in the symbols table */
						this.symbols.put(non_term_id, new symbol_part(this_nt));
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							26/*new_non_term_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 79 : // new_term_id ::= ID 
				{
					final Object RESULT = null;
					final int term_idleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int term_idright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String term_id =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;

					/* see if this terminal has been declared before */
					if (this.symbols.get(term_id) != null) {
						/* issue a message */
						lexer.emit_error("java_cup.runtime.Symbol \"" + term_id
								+ "\" has already been declared");
					}
					else {
						/* if no type declared, declare one */
						if (this.multipart_name.equals("")) {
							this.append_multipart("Object");
						}
						/* build a production_part and put it in the table */
						this.symbols.put(term_id, new symbol_part(new terminal(
							term_id,
							this.multipart_name)));
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							25/*new_term_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 78 : // type_id ::= type_id LBRACK RBRACK 
				{
					final Object RESULT = null;
					this.multipart_name = this.multipart_name.concat("[]");
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							19/*type_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 77 : // type_id ::= multipart_id 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							19/*type_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 76 : // import_id ::= multipart_id 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							15/*import_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 75 : // import_id ::= multipart_id DOT STAR 
				{
					final Object RESULT = null;
					this.append_multipart("*");
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							15/*import_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 74 : // multipart_id ::= robust_id 
				{
					final Object RESULT = null;
					final int an_idleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int an_idright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String an_id =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;
					this.append_multipart(an_id);
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							13/*multipart_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 73 : // multipart_id ::= multipart_id DOT robust_id 
				{
					final Object RESULT = null;
					final int another_idleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int another_idright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String another_id =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;
					this.append_multipart(another_id);
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							13/*multipart_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 72 : // opt_label ::= empty 
				{
					String RESULT = null;
					RESULT = null;
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							39/*opt_label*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 71 : // opt_label ::= COLON label_id 
				{
					String RESULT = null;
					final int labidleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int labidright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String labid =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;
					RESULT = labid;
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							39/*opt_label*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 70 : // prod_part ::= CODE_STRING 
				{
					final Object RESULT = null;
					final int code_strleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int code_strright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String code_str =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;

					/* add a new production part */
					this.add_rhs_part(new action_part(code_str));

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							24/*prod_part*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 69 : // prod_part ::= symbol_id opt_label 
				{
					final Object RESULT = null;
					final int symidleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).left;
					final int symidright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).right;
					final String symid =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).value;
					final int labidleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int labidright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String labid =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;

					/* try to look up the id */
					final production_part symb =
						(production_part) this.symbols.get(symid);

					/* if that fails, symbol is undeclared */
					if (symb == null) {
						if (lexer.error_count == 0) {
							lexer.emit_error("java_cup.runtime.Symbol \""
									+ symid + "\" has not been declared");
						}
					}
					else {
						/* add a labeled production part */
						this.add_rhs_part(this.add_lab(symb, labid));
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							24/*prod_part*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 68 : // prod_part_list ::= empty 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							23/*prod_part_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 67 : // prod_part_list ::= prod_part_list prod_part 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							23/*prod_part_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 66 : // rhs ::= prod_part_list 
				{
					final Object RESULT = null;

					if (this.lhs_nt != null) {
						/* build the production */
						final production p =
							new production(
								this.lhs_nt,
								this.rhs_parts,
								this.rhs_pos);

						/* if we have no start non-terminal declared and this is 
						the first production, make its lhs nt the start_nt 
						and build a special start production for it. */
						if (this.start_nt == null) {
							this.start_nt = this.lhs_nt;

							/* build a special start production */
							this.new_rhs();
							this.add_rhs_part(this.add_lab(new symbol_part(
								this.start_nt), "start_val"));
							this.add_rhs_part(new symbol_part(terminal.EOF));
							this.add_rhs_part(new action_part(
								"RESULT = start_val;"));
							emit.start_production =
								new production(
									non_terminal.START_nt,
									this.rhs_parts,
									this.rhs_pos);

							this.new_rhs();
						}
					}

					/* reset the rhs accumulation in any case */
					this.new_rhs();

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							28/*rhs*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 65 : // rhs ::= prod_part_list PERCENT_PREC term_id 
				{
					final Object RESULT = null;
					final int term_nameleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int term_nameright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String term_name =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;

					padl.creator.aolfile.javacup.symbol sym = null;
					if (this.lhs_nt != null) {
						/* Find the precedence symbol */
						if (term_name == null) {
							System.err
								.println("No terminal for contextual precedence");
							sym = null;
						}
						else {
							sym =
								((symbol_part) this.symbols.get(term_name))
									.the_symbol();
						}
						/* build the production */
						production p;
						if (sym != null && sym instanceof terminal) {
							p =
								new production(
									this.lhs_nt,
									this.rhs_parts,
									this.rhs_pos,
									((terminal) sym).precedence_num(),
									((terminal) sym).precedence_side());
							((symbol_part) this.symbols.get(term_name))
								.the_symbol()
								.note_use();
						}
						else {
							System.err.println("Invalid terminal " + term_name
									+ " for contextual precedence assignment");
							p =
								new production(
									this.lhs_nt,
									this.rhs_parts,
									this.rhs_pos);
						}

						/* if we have no start non-terminal declared and this is 
						the first production, make its lhs nt the start_nt 
						and build a special start production for it. */
						if (this.start_nt == null) {
							this.start_nt = this.lhs_nt;

							/* build a special start production */
							this.new_rhs();
							this.add_rhs_part(this.add_lab(new symbol_part(
								this.start_nt), "start_val"));
							this.add_rhs_part(new symbol_part(terminal.EOF));
							this.add_rhs_part(new action_part(
								"RESULT = start_val;"));
							if (sym != null && sym instanceof terminal) {
								emit.start_production =
									new production(
										non_terminal.START_nt,
										this.rhs_parts,
										this.rhs_pos,
										((terminal) sym).precedence_num(),
										((terminal) sym).precedence_side());
							}
							else {
								emit.start_production =
									new production(
										non_terminal.START_nt,
										this.rhs_parts,
										this.rhs_pos);
							}
							this.new_rhs();
						}
					}

					/* reset the rhs accumulation in any case */
					this.new_rhs();

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							28/*rhs*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 64 : // rhs_list ::= rhs 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							27/*rhs_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 63 : // rhs_list ::= rhs_list BAR rhs 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							27/*rhs_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 62 : // production ::= error NT$13 SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$13
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 1)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).value;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							22/*production*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 61 : // NT$13 ::= 
				{
					final Object RESULT = null;
					lexer.emit_error("Syntax Error");
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							56/*NT$13*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 60 : // production ::= nt_id NT$11 COLON_COLON_EQUALS NT$12 rhs_list SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$11
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 4)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 4)).value;
					}
					// propagate RESULT from NT$12
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 2)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).value;
					}
					final int lhs_idleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 5)).left;
					final int lhs_idright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 5)).right;
					final String lhs_id =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 5)).value;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							22/*production*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 5)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 59 : // NT$12 ::= 
				{
					final Object RESULT = null;
					final int lhs_idleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 2)).left;
					final int lhs_idright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 2)).right;
					final String lhs_id =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 2)).value;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							55/*NT$12*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 58 : // NT$11 ::= 
				{
					final Object RESULT = null;
					final int lhs_idleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int lhs_idright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String lhs_id =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;

					/* lookup the lhs nt */
					this.lhs_nt = (non_terminal) this.non_terms.get(lhs_id);

					/* if it wasn't declared, emit a message */
					if (this.lhs_nt == null) {
						if (lexer.error_count == 0) {
							lexer.emit_error("LHS non terminal \"" + lhs_id
									+ "\" has not been declared");
						}
					}

					/* reset the rhs accumulation */
					this.new_rhs();

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							54/*NT$11*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 57 : // production_list ::= production 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							12/*production_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 56 : // production_list ::= production_list production 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							12/*production_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 55 : // start_spec ::= empty 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							11/*start_spec*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 54 : // start_spec ::= START WITH nt_id NT$10 SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$10
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 1)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).value;
					}
					final int start_nameleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 2)).left;
					final int start_nameright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 2)).right;
					final String start_name =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 2)).value;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							11/*start_spec*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 4)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 53 : // NT$10 ::= 
				{
					final Object RESULT = null;
					final int start_nameleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int start_nameright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String start_name =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;

					/* verify that the name has been declared as a non terminal */
					final non_terminal nt =
						(non_terminal) this.non_terms.get(start_name);
					if (nt == null) {
						lexer.emit_error("Start non terminal \"" + start_name
								+ "\" has not been declared");
					}
					else {
						/* remember the non-terminal for later */
						this.start_nt = nt;

						/* build a special start production */
						this.new_rhs();
						this.add_rhs_part(this.add_lab(new symbol_part(
							this.start_nt), "start_val"));
						this.add_rhs_part(new symbol_part(terminal.EOF));
						this
							.add_rhs_part(new action_part("RESULT = start_val;"));
						emit.start_production =
							new production(
								non_terminal.START_nt,
								this.rhs_parts,
								this.rhs_pos);
						this.new_rhs();
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							53/*NT$10*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 52 : // term_id ::= symbol_id 
				{
					String RESULT = null;
					final int symleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int symright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String sym =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;

					/* check that the symbol_id is a terminal */
					if (this.symbols.get(sym) == null) {
						/* issue a message */
						lexer.emit_error("Terminal \"" + sym
								+ "\" has not been declared");
					}
					RESULT = sym;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							41/*term_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 51 : // terminal_id ::= term_id 
				{
					String RESULT = null;
					final int symleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).left;
					final int symright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).right;
					final String sym =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 0)).value;

					this.add_precedence(sym);
					RESULT = sym;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							40/*terminal_id*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 50 : // terminal_list ::= terminal_id 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							32/*terminal_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 49 : // terminal_list ::= terminal_list COMMA terminal_id 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							32/*terminal_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 48 : // preced ::= PRECEDENCE NONASSOC NT$9 terminal_list SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$9
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 2)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).value;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							31/*preced*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 4)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 47 : // NT$9 ::= 
				{
					final Object RESULT = null;

					this.update_precedence(assoc.nonassoc);

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							52/*NT$9*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 46 : // preced ::= PRECEDENCE RIGHT NT$8 terminal_list SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$8
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 2)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).value;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							31/*preced*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 4)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 45 : // NT$8 ::= 
				{
					final Object RESULT = null;

					this.update_precedence(assoc.right);

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							51/*NT$8*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 44 : // preced ::= PRECEDENCE LEFT NT$7 terminal_list SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$7
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 2)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).value;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							31/*preced*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 4)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 43 : // NT$7 ::= 
				{
					final Object RESULT = null;

					this.update_precedence(assoc.left);

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							50/*NT$7*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 42 : // precedence_l ::= preced 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							33/*precedence_l*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 41 : // precedence_l ::= precedence_l preced 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							33/*precedence_l*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 40 : // precedence_list ::= empty 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							30/*precedence_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 39 : // precedence_list ::= precedence_l 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							30/*precedence_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 38 : // non_term_name_list ::= new_non_term_id 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							21/*non_term_name_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 37 : // non_term_name_list ::= non_term_name_list COMMA new_non_term_id 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							21/*non_term_name_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 36 : // term_name_list ::= new_term_id 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							20/*term_name_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 35 : // term_name_list ::= term_name_list COMMA new_term_id 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							20/*term_name_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 34 : // declares_non_term ::= non_term_name_list NT$6 SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$6
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 1)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).value;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							35/*declares_non_term*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 33 : // NT$6 ::= 
				{
					final Object RESULT = null;

					/* reset the accumulated multipart name */
					this.multipart_name = new String();

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							49/*NT$6*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 32 : // declares_term ::= term_name_list NT$5 SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$5
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 1)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).value;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							34/*declares_term*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 31 : // NT$5 ::= 
				{
					final Object RESULT = null;

					/* reset the accumulated multipart name */
					this.multipart_name = new String();

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							48/*NT$5*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 30 : // symbol ::= non_terminal error NT$4 SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$4
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 1)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).value;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							18/*symbol*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 3)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 29 : // NT$4 ::= 
				{
					final Object RESULT = null;

					/* reset the accumulated multipart name */
					this.multipart_name = new String();

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							47/*NT$4*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 28 : // symbol ::= TERMINAL error NT$3 SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$3
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 1)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).value;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							18/*symbol*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 3)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 27 : // NT$3 ::= 
				{
					final Object RESULT = null;

					/* reset the accumulated multipart name */
					this.multipart_name = new String();

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							46/*NT$3*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 26 : // symbol ::= non_terminal declares_non_term 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							18/*symbol*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 25 : // symbol ::= non_terminal type_id declares_non_term 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							18/*symbol*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 24 : // symbol ::= TERMINAL declares_term 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							18/*symbol*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 23 : // symbol ::= TERMINAL type_id declares_term 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							18/*symbol*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 2)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 22 : // symbol_list ::= symbol 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							10/*symbol_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 21 : // symbol_list ::= symbol_list symbol 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							10/*symbol_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 20 : // scan_code ::= SCAN WITH CODE_STRING opt_semi 
				{
					final Object RESULT = null;
					final int user_codeleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).left;
					final int user_coderight =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).right;
					final String user_code =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).value;

					if (emit.scan_code != null) {
						lexer.emit_error("Redundant scan code (skipping)");
					}
					else {
						emit.scan_code = user_code;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							17/*scan_code*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 3)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 19 : // init_code ::= INIT WITH CODE_STRING opt_semi 
				{
					final Object RESULT = null;
					final int user_codeleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).left;
					final int user_coderight =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).right;
					final String user_code =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).value;

					if (emit.init_code != null) {
						lexer.emit_error("Redundant init code (skipping)");
					}
					else {
						emit.init_code = user_code;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							16/*init_code*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 3)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 18 : // parser_code_part ::= PARSER CODE CODE_STRING opt_semi 
				{
					final Object RESULT = null;
					final int user_codeleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).left;
					final int user_coderight =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).right;
					final String user_code =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).value;

					if (emit.parser_code != null) {
						lexer.emit_error("Redundant parser code (skipping)");
					}
					else {
						emit.parser_code = user_code;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							9/*parser_code_part*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 3)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 17 : // action_code_part ::= ACTION CODE CODE_STRING opt_semi 
				{
					final Object RESULT = null;
					final int user_codeleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).left;
					final int user_coderight =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).right;
					final String user_code =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).value;

					if (emit.action_code != null) {
						lexer.emit_error("Redundant action code (skipping)");
					}
					else {
						emit.action_code = user_code;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							4/*action_code_part*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 3)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 16 : // code_parts ::= code_parts code_part 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							5/*code_parts*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 15 : // code_parts ::= 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							5/*code_parts*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 14 : // code_part ::= scan_code 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							6/*code_part*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 13 : // code_part ::= init_code 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							6/*code_part*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 12 : // code_part ::= parser_code_part 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							6/*code_part*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 11 : // code_part ::= action_code_part 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							6/*code_part*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 10 : // import_spec ::= IMPORT import_id NT$2 SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$2
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 1)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).value;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							14/*import_spec*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 3)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 9 : // NT$2 ::= 
				{
					final Object RESULT = null;

					/* save this import on the imports list */
					emit.import_list.push(this.multipart_name);

					/* reset the accumulated multipart name */
					this.multipart_name = new String();

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							45/*NT$2*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 8 : // import_list ::= empty 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							3/*import_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 7 : // import_list ::= import_list import_spec 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							3/*import_list*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 6 : // package_spec ::= empty 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							2/*package_spec*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 5 : // package_spec ::= PACKAGE multipart_id NT$1 SEMI 
				{
					Object RESULT = null;
					// propagate RESULT from NT$1
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 1)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).value;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							2/*package_spec*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 3)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 4 : // NT$1 ::= 
				{
					final Object RESULT = null;

					/* save the package name */
					emit.package_name = this.multipart_name;

					/* reset the accumulated multipart name */
					this.multipart_name = new String();

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							44/*NT$1*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 3 : // spec ::= error symbol_list precedence_list start_spec production_list 
				{
					final Object RESULT = null;

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							1/*spec*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 4)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 2 : // spec ::= NT$0 package_spec import_list code_parts symbol_list precedence_list start_spec production_list 
				{
					Object RESULT = null;
					// propagate RESULT from NT$0
					if (((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
						.elementAt(CUP$parser$top - 7)).value != null) {
						RESULT =
							(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 7)).value;
					}

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							1/*spec*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 7)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 1 : // NT$0 ::= 
				{
					final Object RESULT = null;

					/* declare "error" as a terminal */
					this.symbols.put("error", new symbol_part(terminal.error));

					/* declare start non terminal */
					this.non_terms.put("$START", non_terminal.START_nt);

					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							43/*NT$0*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				return CUP$parser$result;

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 0 : // $START ::= spec EOF 
				{
					Object RESULT = null;
					final int start_valleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).left;
					final int start_valright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).right;
					final Object start_val =
						(Object) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
							.elementAt(CUP$parser$top - 1)).value;
					RESULT = start_val;
					CUP$parser$result =
						new padl.creator.aolfile.javacup.runtime.Symbol(
							0/*$START*/,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 1)).left,
							((padl.creator.aolfile.javacup.runtime.Symbol) CUP$parser$stack
								.elementAt(CUP$parser$top - 0)).right,
							RESULT);
				}
				/* ACCEPT */
				CUP$parser$parser.done_parsing();
				return CUP$parser$result;

				/* . . . . . .*/
			default :
				throw new Exception(
					"Invalid action number found in internal parse table");

		}
	}

	/** start a new right hand side */
	protected void new_rhs() {
		this.rhs_pos = 0;
	}

	/** update the precedences we are declaring */
	protected void update_precedence(final int p) {
		this._cur_side = p;
		this._cur_prec++;
	}
}

/** CUP v0.10k generated parser.
  * @version Sun Jul 25 13:35:26 EDT 1999
  */
public class parser extends padl.creator.aolfile.javacup.runtime.lr_parser {

	/** Production table. */
	protected static final short _production_table[][] =
		lr_parser
			.unpackFromStrings(new String[] { "\000\153\000\002\002\004\000\002\055\002\000\002\003"
					+ "\012\000\002\003\007\000\002\056\002\000\002\004\006"
					+ "\000\002\004\003\000\002\005\004\000\002\005\003\000"
					+ "\002\057\002\000\002\020\006\000\002\010\003\000\002"
					+ "\010\003\000\002\010\003\000\002\010\003\000\002\007"
					+ "\002\000\002\007\004\000\002\006\006\000\002\013\006"
					+ "\000\002\022\006\000\002\023\006\000\002\014\004\000"
					+ "\002\014\003\000\002\024\005\000\002\024\004\000\002"
					+ "\024\005\000\002\024\004\000\002\060\002\000\002\024"
					+ "\006\000\002\061\002\000\002\024\006\000\002\062\002"
					+ "\000\002\044\005\000\002\063\002\000\002\045\005\000"
					+ "\002\026\005\000\002\026\003\000\002\027\005\000\002"
					+ "\027\003\000\002\040\003\000\002\040\003\000\002\043"
					+ "\004\000\002\043\003\000\002\064\002\000\002\041\007"
					+ "\000\002\065\002\000\002\041\007\000\002\066\002\000"
					+ "\002\041\007\000\002\042\005\000\002\042\003\000\002"
					+ "\052\003\000\002\053\003\000\002\067\002\000\002\015"
					+ "\007\000\002\015\003\000\002\016\004\000\002\016\003"
					+ "\000\002\070\002\000\002\071\002\000\002\030\010\000"
					+ "\002\072\002\000\002\030\005\000\002\035\005\000\002"
					+ "\035\003\000\002\036\005\000\002\036\003\000\002\031"
					+ "\004\000\002\031\003\000\002\032\004\000\002\032\003"
					+ "\000\002\051\004\000\002\051\003\000\002\017\005\000"
					+ "\002\017\003\000\002\021\005\000\002\021\003\000\002"
					+ "\025\003\000\002\025\005\000\002\033\003\000\002\034"
					+ "\003\000\002\046\003\000\002\046\003\000\002\047\003"
					+ "\000\002\047\003\000\002\050\003\000\002\054\003\000"
					+ "\002\054\003\000\002\054\003\000\002\054\003\000\002"
					+ "\054\003\000\002\054\003\000\002\054\003\000\002\054"
					+ "\003\000\002\054\003\000\002\054\003\000\002\054\003"
					+ "\000\002\054\003\000\002\054\003\000\002\054\003\000"
					+ "\002\054\003\000\002\054\003\000\002\012\004\000\002"
					+ "\012\003\000\002\011\002\000\002\011\003\000\002\037"
					+ "\002" });

	/** Parse-action table. */
	protected static final short[][] _action_table =
		lr_parser
			.unpackFromStrings(new String[] { "\000\247\000\026\003\006\004\000\005\000\007\000\010"
					+ "\000\011\000\012\000\013\000\014\000\035\000\001\002"
					+ "\000\004\002\251\001\002\000\024\004\200\005\uff97\007"
					+ "\uff97\010\uff97\011\uff97\012\uff97\013\uff97\014\uff97\035\uff97"
					+ "\001\002\000\010\011\007\012\012\035\014\001\002\000"
					+ "\042\003\163\006\026\007\027\010\040\011\036\012\022"
					+ "\013\042\014\030\015\017\016\015\026\033\027\023\030"
					+ "\035\031\041\035\025\036\160\001\002\000\020\003\uffeb"
					+ "\011\uffeb\012\uffeb\016\uffeb\026\uffeb\035\uffeb\036\uffeb\001"
					+ "\002\000\020\003\uff97\011\007\012\012\016\uff97\026\065"
					+ "\035\014\036\uff97\001\002\000\004\011\061\001\002\000"
					+ "\042\003\034\006\026\007\027\010\040\011\036\012\022"
					+ "\013\042\014\030\015\017\016\015\026\033\027\023\030"
					+ "\035\031\041\035\025\036\016\001\002\000\042\003\uff9a"
					+ "\006\uff9a\007\uff9a\010\uff9a\011\uff9a\012\uff9a\013\uff9a\014"
					+ "\uff9a\015\uff9a\016\uff9a\026\uff9a\027\uff9a\030\uff9a\031\uff9a"
					+ "\035\uff9a\036\uff9a\001\002\000\022\003\uffa1\017\uffa1\022"
					+ "\uffa1\025\uffa1\032\uffa1\033\uffa1\036\uffa1\037\uffa1\001\002"
					+ "\000\014\017\uffb1\020\uffb1\022\uffab\033\uffab\036\uffab\001"
					+ "\002\000\022\003\uffa2\017\uffa2\022\uffa2\025\uffa2\032\uffa2"
					+ "\033\uffa2\036\uffa2\037\uffa2\001\002\000\006\017\uffe0\020"
					+ "\055\001\002\000\010\022\051\033\uffb4\036\uffb4\001\002"
					+ "\000\022\003\uffa6\017\uffa6\022\uffa6\025\uffa6\032\uffa6\033"
					+ "\uffa6\036\uffa6\037\uffa6\001\002\000\022\003\uff9f\017\uff9f"
					+ "\022\uff9f\025\uff9f\032\uff9f\033\uff9f\036\uff9f\037\uff9f\001"
					+ "\002\000\006\033\047\036\045\001\002\000\022\003\uffa5"
					+ "\017\uffa5\022\uffa5\025\uffa5\032\uffa5\033\uffa5\036\uffa5\037"
					+ "\uffa5\001\002\000\022\003\uffaa\017\uffaa\022\uffaa\025\uffaa"
					+ "\032\uffaa\033\uffaa\036\uffaa\037\uffaa\001\002\000\022\003"
					+ "\uffa9\017\uffa9\022\uffa9\025\uffa9\032\uffa9\033\uffa9\036\uffa9"
					+ "\037\uffa9\001\002\000\022\003\uffa3\017\uffa3\022\uffa3\025"
					+ "\uffa3\032\uffa3\033\uffa3\036\uffa3\037\uffa3\001\002\000\012"
					+ "\017\uffb7\022\uffb7\033\uffb7\036\uffb7\001\002\000\020\003"
					+ "\uffe7\011\uffe7\012\uffe7\016\uffe7\026\uffe7\035\uffe7\036\uffe7"
					+ "\001\002\000\022\003\uffa0\017\uffa0\022\uffa0\025\uffa0\032"
					+ "\uffa0\033\uffa0\036\uffa0\037\uffa0\001\002\000\012\017\uffe4"
					+ "\022\uff9c\033\uff9c\036\uff9c\001\002\000\022\003\uff9e\017"
					+ "\uff9e\022\uff9e\025\uff9e\032\uff9e\033\uff9e\036\uff9e\037\uff9e"
					+ "\001\002\000\022\003\uffa7\017\uffa7\022\uffa7\025\uffa7\032"
					+ "\uffa7\033\uffa7\036\uffa7\037\uffa7\001\002\000\006\017\uffdb"
					+ "\020\uffdb\001\002\000\022\003\uffa8\017\uffa8\022\uffa8\025"
					+ "\uffa8\032\uffa8\033\uffa8\036\uffa8\037\uffa8\001\002\000\022"
					+ "\003\uff9d\017\uff9d\022\uff9d\025\uff9d\032\uff9d\033\uff9d\036"
					+ "\uff9d\037\uff9d\001\002\000\022\003\uffa4\017\uffa4\022\uffa4"
					+ "\025\uffa4\032\uffa4\033\uffa4\036\uffa4\037\uffa4\001\002\000"
					+ "\004\017\044\001\002\000\020\003\uffe3\011\uffe3\012\uffe3"
					+ "\016\uffe3\026\uffe3\035\uffe3\036\uffe3\001\002\000\006\017"
					+ "\uffb1\020\uffb1\001\002\000\020\003\uffe8\011\uffe8\012\uffe8"
					+ "\016\uffe8\026\uffe8\035\uffe8\036\uffe8\001\002\000\004\034"
					+ "\050\001\002\000\006\033\uffb3\036\uffb3\001\002\000\042"
					+ "\003\054\006\026\007\027\010\040\011\036\012\022\013"
					+ "\042\014\030\015\017\016\015\026\033\027\023\030\035"
					+ "\031\041\035\025\036\053\001\002\000\012\017\uffb8\022"
					+ "\uffb8\033\uffb8\036\uffb8\001\002\000\022\003\uffab\017\uffab"
					+ "\022\uffab\025\uffab\032\uffab\033\uffab\036\uffab\037\uffab\001"
					+ "\002\000\022\003\uff9c\017\uff9c\022\uff9c\025\uff9c\032\uff9c"
					+ "\033\uff9c\036\uff9c\037\uff9c\001\002\000\004\036\045\001"
					+ "\002\000\004\017\057\001\002\000\020\003\uffdf\011\uffdf"
					+ "\012\uffdf\016\uffdf\026\uffdf\035\uffdf\036\uffdf\001\002\000"
					+ "\006\017\uffdc\020\uffdc\001\002\000\042\003\uff9b\006\uff9b"
					+ "\007\uff9b\010\uff9b\011\uff9b\012\uff9b\013\uff9b\014\uff9b\015"
					+ "\uff9b\016\uff9b\026\uff9b\027\uff9b\030\uff9b\031\uff9b\035\uff9b"
					+ "\036\uff9b\001\002\000\010\003\uff97\016\116\036\uff97\001"
					+ "\002\000\012\003\uffda\016\uffda\026\065\036\uffda\001\002"
					+ "\000\010\003\uffd9\016\uffd9\036\uffd9\001\002\000\010\027"
					+ "\071\030\072\031\070\001\002\000\020\003\uffec\011\uffec"
					+ "\012\uffec\016\uffec\026\uffec\035\uffec\036\uffec\001\002\000"
					+ "\012\003\uffd7\016\uffd7\026\uffd7\036\uffd7\001\002\000\006"
					+ "\003\uffd2\036\uffd2\001\002\000\006\003\uffd6\036\uffd6\001"
					+ "\002\000\006\003\uffd4\036\uffd4\001\002\000\006\003\077"
					+ "\036\074\001\002\000\022\003\uffae\017\uffae\020\uffae\023"
					+ "\uffae\025\uffae\032\uffae\036\uffae\037\uffae\001\002\000\010"
					+ "\017\uffcd\020\uffcd\025\uffcd\001\002\000\006\017\uffce\020"
					+ "\uffce\001\002\000\022\003\uffad\017\uffad\020\uffad\023\uffad"
					+ "\025\uffad\032\uffad\036\uffad\037\uffad\001\002\000\006\017"
					+ "\102\020\103\001\002\000\006\017\uffcf\020\uffcf\001\002"
					+ "\000\012\003\uffd3\016\uffd3\026\uffd3\036\uffd3\001\002\000"
					+ "\006\003\077\036\074\001\002\000\006\017\uffd0\020\uffd0"
					+ "\001\002\000\006\003\077\036\074\001\002\000\006\017"
					+ "\107\020\103\001\002\000\012\003\uffd5\016\uffd5\026\uffd5"
					+ "\036\uffd5\001\002\000\006\003\077\036\074\001\002\000"
					+ "\006\017\112\020\103\001\002\000\012\003\uffd1\016\uffd1"
					+ "\026\uffd1\036\uffd1\001\002\000\012\003\uffd8\016\uffd8\026"
					+ "\uffd8\036\uffd8\001\002\000\006\003\uffca\036\uffca\001\002"
					+ "\000\006\003\126\036\120\001\002\000\004\015\117\001"
					+ "\002\000\006\003\122\036\120\001\002\000\006\017\uffb0"
					+ "\024\uffb0\001\002\000\004\017\uffcc\001\002\000\004\017"
					+ "\uffaf\001\002\000\004\017\124\001\002\000\006\003\uffcb"
					+ "\036\uffcb\001\002\000\004\024\uffc7\001\002\000\006\017"
					+ "\uffc4\024\uffaf\001\002\000\010\002\ufffe\003\126\036\120"
					+ "\001\002\000\010\002\uffc8\003\uffc8\036\uffc8\001\002\000"
					+ "\010\002\uffc9\003\uffc9\036\uffc9\001\002\000\004\017\133"
					+ "\001\002\000\010\002\uffc3\003\uffc3\036\uffc3\001\002\000"
					+ "\004\024\135\001\002\000\016\003\uffc6\017\uffc6\025\uffc6"
					+ "\032\uffc6\036\uffc6\037\uffc6\001\002\000\016\003\uff97\017"
					+ "\uff97\025\uff97\032\uff97\036\uff97\037\uff97\001\002\000\016"
					+ "\003\uffbd\017\uffbd\025\uffbd\032\uffbd\036\uffbd\037\uffbd\001"
					+ "\002\000\016\003\077\017\uffbf\025\uffbf\032\147\036\074"
					+ "\037\146\001\002\000\006\017\uffc1\025\uffc1\001\002\000"
					+ "\006\017\143\025\144\001\002\000\010\002\uffc5\003\uffc5"
					+ "\036\uffc5\001\002\000\016\003\uff97\017\uff97\025\uff97\032"
					+ "\uff97\036\uff97\037\uff97\001\002\000\006\017\uffc2\025\uffc2"
					+ "\001\002\000\016\003\uffbb\017\uffbb\025\uffbb\032\uffbb\036"
					+ "\uffbb\037\uffbb\001\002\000\006\003\077\036\074\001\002"
					+ "\000\020\003\uff97\017\uff97\023\154\025\uff97\032\uff97\036"
					+ "\uff97\037\uff97\001\002\000\016\003\uffbe\017\uffbe\025\uffbe"
					+ "\032\uffbe\036\uffbe\037\uffbe\001\002\000\016\003\uffb9\017"
					+ "\uffb9\025\uffb9\032\uffb9\036\uffb9\037\uffb9\001\002\000\016"
					+ "\003\uffbc\017\uffbc\025\uffbc\032\uffbc\036\uffbc\037\uffbc\001"
					+ "\002\000\042\003\054\006\026\007\027\010\040\011\036"
					+ "\012\022\013\042\014\030\015\017\016\015\026\033\027"
					+ "\023\030\035\031\041\035\025\036\053\001\002\000\016"
					+ "\003\uffba\017\uffba\025\uffba\032\uffba\036\uffba\037\uffba\001"
					+ "\002\000\016\003\uffac\017\uffac\025\uffac\032\uffac\036\uffac"
					+ "\037\uffac\001\002\000\006\017\uffc0\025\uffc0\001\002\000"
					+ "\014\017\uffb2\020\uffb2\022\uffab\033\uffab\036\uffab\001\002"
					+ "\000\006\033\047\036\170\001\002\000\006\017\uffdd\020"
					+ "\uffdd\001\002\000\012\017\uffe6\022\uff9c\033\uff9c\036\uff9c"
					+ "\001\002\000\020\003\uffe9\011\uffe9\012\uffe9\016\uffe9\026"
					+ "\uffe9\035\uffe9\036\uffe9\001\002\000\006\017\uffe2\020\167"
					+ "\001\002\000\004\017\172\001\002\000\004\036\170\001"
					+ "\002\000\006\017\uffb2\020\uffb2\001\002\000\006\017\uffde"
					+ "\020\uffde\001\002\000\020\003\uffe1\011\uffe1\012\uffe1\016"
					+ "\uffe1\026\uffe1\035\uffe1\036\uffe1\001\002\000\004\017\174"
					+ "\001\002\000\020\003\uffe5\011\uffe5\012\uffe5\016\uffe5\026"
					+ "\uffe5\035\uffe5\036\uffe5\001\002\000\020\003\uffea\011\uffea"
					+ "\012\uffea\016\uffea\026\uffea\035\uffea\036\uffea\001\002\000"
					+ "\022\005\ufffb\007\ufffb\010\ufffb\011\ufffb\012\ufffb\013\ufffb"
					+ "\014\ufffb\035\ufffb\001\002\000\022\005\uff97\007\uff97\010"
					+ "\uff97\011\uff97\012\uff97\013\uff97\014\uff97\035\uff97\001\002"
					+ "\000\042\003\054\006\026\007\027\010\040\011\036\012"
					+ "\022\013\042\014\030\015\017\016\015\026\033\027\023"
					+ "\030\035\031\041\035\025\036\053\001\002\000\006\017"
					+ "\ufffd\022\051\001\002\000\004\017\203\001\002\000\022"
					+ "\005\ufffc\007\ufffc\010\ufffc\011\ufffc\012\ufffc\013\ufffc\014"
					+ "\ufffc\035\ufffc\001\002\000\022\005\210\007\ufff2\010\ufff2"
					+ "\011\ufff2\012\ufff2\013\ufff2\014\ufff2\035\ufff2\001\002\000"
					+ "\022\005\ufff9\007\ufff9\010\ufff9\011\ufff9\012\ufff9\013\ufff9"
					+ "\014\ufff9\035\ufff9\001\002\000\020\007\223\010\224\011"
					+ "\007\012\012\013\227\014\225\035\014\001\002\000\022"
					+ "\005\ufffa\007\ufffa\010\ufffa\011\ufffa\012\ufffa\013\ufffa\014"
					+ "\ufffa\035\ufffa\001\002\000\042\003\054\006\026\007\027"
					+ "\010\040\011\036\012\022\013\042\014\030\015\017\016"
					+ "\015\026\033\027\023\030\035\031\041\035\025\036\053"
					+ "\001\002\000\006\017\uffb5\022\215\001\002\000\004\017"
					+ "\ufff8\001\002\000\004\017\214\001\002\000\022\005\ufff7"
					+ "\007\ufff7\010\ufff7\011\ufff7\012\ufff7\013\ufff7\014\ufff7\035"
					+ "\ufff7\001\002\000\044\003\054\006\026\007\027\010\040"
					+ "\011\036\012\022\013\042\014\030\015\017\016\015\021"
					+ "\216\026\033\027\023\030\035\031\041\035\025\036\053"
					+ "\001\002\000\004\017\uffb6\001\002\000\020\007\ufff3\010"
					+ "\ufff3\011\ufff3\012\ufff3\013\ufff3\014\ufff3\035\ufff3\001\002"
					+ "\000\020\007\ufff5\010\ufff5\011\ufff5\012\ufff5\013\ufff5\014"
					+ "\ufff5\035\ufff5\001\002\000\020\007\ufff1\010\ufff1\011\ufff1"
					+ "\012\ufff1\013\ufff1\014\ufff1\035\ufff1\001\002\000\020\007"
					+ "\ufff4\010\ufff4\011\ufff4\012\ufff4\013\ufff4\014\ufff4\035\ufff4"
					+ "\001\002\000\004\006\246\001\002\000\004\006\243\001"
					+ "\002\000\004\015\240\001\002\000\020\007\ufff6\010\ufff6"
					+ "\011\ufff6\012\ufff6\013\ufff6\014\ufff6\035\ufff6\001\002\000"
					+ "\004\015\234\001\002\000\020\003\uff97\011\007\012\012"
					+ "\016\uff97\026\065\035\014\036\uff97\001\002\000\010\003"
					+ "\uff97\016\116\036\uff97\001\002\000\006\003\126\036\120"
					+ "\001\002\000\010\002\uffff\003\126\036\120\001\002\000"
					+ "\004\037\235\001\002\000\022\007\uff99\010\uff99\011\uff99"
					+ "\012\uff99\013\uff99\014\uff99\017\236\035\uff99\001\002\000"
					+ "\020\007\uff98\010\uff98\011\uff98\012\uff98\013\uff98\014\uff98"
					+ "\035\uff98\001\002\000\020\007\uffee\010\uffee\011\uffee\012"
					+ "\uffee\013\uffee\014\uffee\035\uffee\001\002\000\004\037\241"
					+ "\001\002\000\022\007\uff99\010\uff99\011\uff99\012\uff99\013"
					+ "\uff99\014\uff99\017\236\035\uff99\001\002\000\020\007\uffed"
					+ "\010\uffed\011\uffed\012\uffed\013\uffed\014\uffed\035\uffed\001"
					+ "\002\000\004\037\244\001\002\000\022\007\uff99\010\uff99"
					+ "\011\uff99\012\uff99\013\uff99\014\uff99\017\236\035\uff99\001"
					+ "\002\000\020\007\uffef\010\uffef\011\uffef\012\uffef\013\uffef"
					+ "\014\uffef\035\uffef\001\002\000\004\037\247\001\002\000"
					+ "\022\007\uff99\010\uff99\011\uff99\012\uff99\013\uff99\014\uff99"
					+ "\017\236\035\uff99\001\002\000\020\007\ufff0\010\ufff0\011"
					+ "\ufff0\012\ufff0\013\ufff0\014\ufff0\035\ufff0\001\002\000\004"
					+ "\002\001\001\002" });

	/** <code>reduce_goto</code> table. */
	protected static final short[][] _reduce_table =
		lr_parser
			.unpackFromStrings(new String[] { "\000\247\000\006\003\003\055\004\001\001\000\002\001"
					+ "\001\000\006\004\176\037\175\001\001\000\010\012\012"
					+ "\014\010\024\007\001\001\000\016\017\020\025\160\026"
					+ "\164\033\161\044\163\054\030\001\001\000\002\001\001"
					+ "\000\016\012\012\024\065\037\063\040\061\041\066\043"
					+ "\062\001\001\000\002\001\001\000\016\017\020\025\023"
					+ "\027\017\034\036\045\031\054\030\001\001\000\002\001"
					+ "\001\000\002\001\001\000\002\001\001\000\002\001\001"
					+ "\000\004\063\055\001\001\000\002\001\001\000\002\001"
					+ "\001\000\002\001\001\000\010\027\017\034\036\045\045"
					+ "\001\001\000\002\001\001\000\002\001\001\000\002\001"
					+ "\001\000\002\001\001\000\002\001\001\000\002\001\001"
					+ "\000\002\001\001\000\004\061\042\001\001\000\002\001"
					+ "\001\000\002\001\001\000\002\001\001\000\002\001\001"
					+ "\000\002\001\001\000\002\001\001\000\002\001\001\000"
					+ "\002\001\001\000\002\001\001\000\002\001\001\000\002"
					+ "\001\001\000\002\001\001\000\004\054\051\001\001\000"
					+ "\002\001\001\000\002\001\001\000\002\001\001\000\004"
					+ "\034\057\001\001\000\002\001\001\000\002\001\001\000"
					+ "\002\001\001\000\002\001\001\000\006\015\114\037\113"
					+ "\001\001\000\004\041\112\001\001\000\002\001\001\000"
					+ "\002\001\001\000\002\001\001\000\002\001\001\000\004"
					+ "\066\107\001\001\000\004\064\104\001\001\000\004\065"
					+ "\072\001\001\000\012\042\077\047\074\052\100\053\075"
					+ "\001\001\000\002\001\001\000\002\001\001\000\002\001"
					+ "\001\000\002\001\001\000\002\001\001\000\002\001\001"
					+ "\000\002\001\001\000\010\047\074\052\103\053\075\001"
					+ "\001\000\002\001\001\000\012\042\105\047\074\052\100"
					+ "\053\075\001\001\000\002\001\001\000\002\001\001\000"
					+ "\012\042\110\047\074\052\100\053\075\001\001\000\002"
					+ "\001\001\000\002\001\001\000\002\001\001\000\002\001"
					+ "\001\000\010\016\126\030\127\046\124\001\001\000\002"
					+ "\001\001\000\004\046\120\001\001\000\002\001\001\000"
					+ "\004\067\122\001\001\000\002\001\001\000\002\001\001"
					+ "\000\002\001\001\000\004\070\133\001\001\000\004\072"
					+ "\131\001\001\000\006\030\130\046\124\001\001\000\002"
					+ "\001\001\000\002\001\001\000\002\001\001\000\002\001"
					+ "\001\000\002\001\001\000\004\071\135\001\001\000\012"
					+ "\031\137\035\141\036\140\037\136\001\001\000\002\001"
					+ "\001\000\006\032\150\047\147\001\001\000\002\001\001"
					+ "\000\002\001\001\000\002\001\001\000\010\031\137\036"
					+ "\144\037\136\001\001\000\002\001\001\000\002\001\001"
					+ "\000\006\047\074\053\156\001\001\000\006\037\151\051"
					+ "\152\001\001\000\002\001\001\000\002\001\001\000\002"
					+ "\001\001\000\006\050\154\054\155\001\001\000\002\001"
					+ "\001\000\002\001\001\000\002\001\001\000\002\001\001"
					+ "\000\010\026\164\033\161\044\174\001\001\000\002\001"
					+ "\001\000\004\060\172\001\001\000\002\001\001\000\004"
					+ "\062\165\001\001\000\002\001\001\000\004\033\170\001"
					+ "\001\000\002\001\001\000\002\001\001\000\002\001\001"
					+ "\000\002\001\001\000\002\001\001\000\002\001\001\000"
					+ "\002\001\001\000\006\005\203\037\204\001\001\000\006"
					+ "\017\200\054\030\001\001\000\004\056\201\001\001\000"
					+ "\002\001\001\000\002\001\001\000\006\007\205\020\206"
					+ "\001\001\000\002\001\001\000\022\006\225\010\220\012"
					+ "\012\013\217\014\227\022\221\023\216\024\007\001\001"
					+ "\000\002\001\001\000\010\017\210\021\211\054\030\001"
					+ "\001\000\002\001\001\000\004\057\212\001\001\000\002"
					+ "\001\001\000\002\001\001\000\004\054\051\001\001\000"
					+ "\002\001\001\000\002\001\001\000\002\001\001\000\002"
					+ "\001\001\000\002\001\001\000\002\001\001\000\002\001"
					+ "\001\000\002\001\001\000\002\001\001\000\002\001\001"
					+ "\000\016\012\012\024\065\037\063\040\230\041\066\043"
					+ "\062\001\001\000\006\015\231\037\113\001\001\000\010"
					+ "\016\232\030\127\046\124\001\001\000\006\030\130\046"
					+ "\124\001\001\000\002\001\001\000\004\011\236\001\001"
					+ "\000\002\001\001\000\002\001\001\000\002\001\001\000"
					+ "\004\011\241\001\001\000\002\001\001\000\002\001\001"
					+ "\000\004\011\244\001\001\000\002\001\001\000\002\001"
					+ "\001\000\004\011\247\001\001\000\002\001\001\000\002"
					+ "\001\001" });

	/** Instance of action encapsulation class. */
	protected CUP$parser$actions action_obj;

	/** Default constructor. */
	public parser() {
	}

	/** Constructor which sets the default scanner. */
	public parser(final padl.creator.aolfile.javacup.runtime.Scanner s) {
		super(s);
	}

	/** Access to parse-action table. */
	public short[][] action_table() {
		return parser._action_table;
	}

	/** Invoke a user supplied parse action. */
	public padl.creator.aolfile.javacup.runtime.Symbol do_action(
		final int act_num,
		final padl.creator.aolfile.javacup.runtime.lr_parser parser,
		final java.util.Stack stack,
		final int top) throws java.lang.Exception {
		/* call code in generated class */
		return this.action_obj
			.CUP$parser$do_action(act_num, parser, stack, top);
	}

	/** <code>EOF</code> Symbol index. */
	public int EOF_sym() {
		return 0;
	}

	/** <code>error</code> Symbol index. */
	public int error_sym() {
		return 1;
	}

	/** Action encapsulation object initializer. */
	protected void init_actions() {
		this.action_obj = new CUP$parser$actions(this);
	}

	/** Access to production table. */
	public short[][] production_table() {
		return parser._production_table;
	}
	/** Access to <code>reduce_goto</code> table. */
	public short[][] reduce_table() {
		return parser._reduce_table;
	}

	public void report_error(final String message, final Object info) {
		lexer.emit_error(message);
	}

	public void report_fatal_error(final String message, final Object info) {
		this.done_parsing();
		lexer.emit_error(message);
		System.err.println("Can't recover from previous error(s), giving up.");
		System.exit(1);
	}

	/** Scan to get the next Symbol. */
	public padl.creator.aolfile.javacup.runtime.Symbol scan()
			throws java.lang.Exception {
		return lexer.next_token();
	}

	/** Indicates start production. */
	public int start_production() {
		return 0;
	}

	/* override error routines */

	/** Indicates start state. */
	public int start_state() {
		return 0;
	}

	/** User initialization code. */
	public void user_init() throws java.lang.Exception {
		lexer.init();
	}

}
