Ptidej-v5.2-master/PADL Creator AOL/src/padl/creator/aolfile/parser/AOLIdiomParser.java
/*******************************************************************************
 * Copyright (c) 2001-2014 Yann-Gal Guhneuc and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v2.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 * 
 * Contributors:
 *     Yann-Gal Guhneuc and others, see in file; API and its implementation
 ******************************************************************************/
//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Wed Sep 07 19:06:31 EDT 2011
//----------------------------------------------------

package padl.creator.aolfile.parser;

import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import padl.creator.aolfile.AOLCreator;
import padl.creator.aolfile.misc.Utils;
import padl.kernel.Constants;
import padl.kernel.IAssociation;
import padl.kernel.IContainerAggregation;
import padl.kernel.IElement;
import padl.kernel.IEntity;
import padl.kernel.IField;
import padl.kernel.IFirstClassEntity;
import padl.kernel.IIdiomLevelModel;
import padl.kernel.IMethod;
import padl.kernel.IPackage;
import padl.kernel.IParameter;
import padl.kernel.impl.Factory;
import padl.util.Util;
import util.lang.Modifier;
import util.multilingual.MultilingualManager;

/** CUP v0.10k generated parser.
  * @version Wed Sep 07 19:06:31 EDT 2011
  */
public class AOLIdiomParser extends
		padl.creator.aolfile.javacup.runtime.lr_parser {

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

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

	/** Production table. */
	protected static final short _production_table[][] =
		unpackFromStrings(new String[] { "\000\136\000\002\003\003\000\002\002\004\000\002\004"
				+ "\004\000\002\004\003\000\002\005\004\000\002\005\004"
				+ "\000\002\005\004\000\002\005\004\000\002\006\004\000"
				+ "\002\006\005\000\002\007\006\000\002\007\004\000\002"
				+ "\007\005\000\002\007\004\000\002\007\005\000\002\007"
				+ "\004\000\002\010\005\000\002\010\003\000\002\012\004"
				+ "\000\002\012\006\000\002\012\004\000\002\012\004\000"
				+ "\002\012\004\000\002\012\003\000\002\011\007\000\002"
				+ "\011\006\000\002\011\005\000\002\011\006\000\002\013"
				+ "\005\000\002\013\004\000\002\013\003\000\002\014\006"
				+ "\000\002\014\005\000\002\016\011\000\002\016\006\000"
				+ "\002\016\005\000\002\016\003\000\002\016\003\000\002"
				+ "\016\003\000\002\017\007\000\002\017\006\000\002\017"
				+ "\005\000\002\017\006\000\002\017\005\000\002\017\004"
				+ "\000\002\020\005\000\002\020\003\000\002\021\004\000"
				+ "\002\021\003\000\002\021\003\000\002\022\004\000\002"
				+ "\022\006\000\002\022\004\000\002\022\004\000\002\022"
				+ "\003\000\002\022\003\000\002\022\003\000\002\015\003"
				+ "\000\002\015\003\000\002\015\003\000\002\015\003\000"
				+ "\002\015\003\000\002\023\006\000\002\023\005\000\002"
				+ "\025\005\000\002\025\004\000\002\025\003\000\002\026"
				+ "\006\000\002\026\011\000\002\026\010\000\002\026\010"
				+ "\000\002\027\004\000\002\027\006\000\002\027\003\000"
				+ "\002\030\010\000\002\030\005\000\002\030\003\000\002"
				+ "\031\003\000\002\031\003\000\002\031\003\000\002\031"
				+ "\003\000\002\031\003\000\002\032\011\000\002\032\007"
				+ "\000\002\033\005\000\002\033\006\000\002\034\005\000"
				+ "\002\034\003\000\002\036\003\000\002\035\004\000\002"
				+ "\035\004\000\002\035\004\000\002\035\004\000\002\035"
				+ "\003" });

	/** Access to production table. */
	public short[][] production_table() {
		return _production_table;
	}

	/** Parse-action table. */
	protected static final short[][] _action_table =
		unpackFromStrings(new String[] { "\000\250\000\012\005\014\007\016\014\012\032\013\001"
				+ "\002\000\014\002\001\005\014\007\016\014\012\032\013"
				+ "\001\002\000\004\035\251\001\002\000\014\002\ufffe\005"
				+ "\ufffe\007\ufffe\014\ufffe\032\ufffe\001\002\000\004\035\250"
				+ "\001\002\000\004\035\247\001\002\000\004\002\246\001"
				+ "\002\000\006\015\020\037\237\001\002\000\006\015\020"
				+ "\033\232\001\002\000\006\013\152\021\151\001\002\000"
				+ "\004\035\150\001\002\000\004\015\020\001\002\000\010"
				+ "\006\022\024\023\035\ufff9\001\002\000\040\006\uffa9\010"
				+ "\uffa9\011\uffa9\012\uffa9\013\uffa9\015\uffa9\016\uffa9\020\uffa9"
				+ "\024\uffa9\033\uffa9\034\uffa9\035\uffa9\037\uffa9\042\uffa9\043"
				+ "\uffa9\001\002\000\004\035\ufff8\001\002\000\006\024\117"
				+ "\040\121\001\002\000\004\040\026\001\002\000\006\012"
				+ "\114\035\uffe3\001\002\000\004\035\ufff4\001\002\000\024"
				+ "\011\040\015\020\016\037\042\036\044\041\045\032\046"
				+ "\033\047\034\050\027\001\002\000\012\011\uffc4\015\uffc4"
				+ "\016\uffc4\042\uffc4\001\002\000\012\011\040\015\020\016"
				+ "\037\042\036\001\002\000\004\016\052\001\002\000\012"
				+ "\011\uffc7\015\uffc7\016\uffc7\042\uffc7\001\002\000\012\011"
				+ "\uffc6\015\uffc6\016\uffc6\042\uffc6\001\002\000\012\011\uffc5"
				+ "\015\uffc5\016\uffc5\042\uffc5\001\002\000\004\016\uffdd\001"
				+ "\002\000\004\016\uffdc\001\002\000\004\015\020\001\002"
				+ "\000\004\016\uffdb\001\002\000\012\011\uffc8\015\uffc8\016"
				+ "\uffc8\042\uffc8\001\002\000\006\015\020\034\043\001\002"
				+ "\000\004\016\uffde\001\002\000\006\012\045\034\046\001"
				+ "\002\000\004\015\020\001\002\000\004\016\uffdf\001\002"
				+ "\000\004\015\020\001\002\000\004\034\051\001\002\000"
				+ "\004\016\uffe0\001\002\000\014\011\063\015\020\034\062"
				+ "\042\060\043\057\001\002\000\006\012\uffe1\035\uffe1\001"
				+ "\002\000\004\034\107\001\002\000\012\012\uffa4\015\uffa4"
				+ "\034\uffa4\042\106\001\002\000\006\012\104\034\uffd3\001"
				+ "\002\000\004\015\020\001\002\000\010\012\uffd0\015\020"
				+ "\034\uffd0\001\002\000\010\012\uffd1\015\020\034\uffd1\001"
				+ "\002\000\010\010\065\012\uffd5\035\uffd5\001\002\000\004"
				+ "\015\020\001\002\000\010\012\uffa8\015\uffa8\034\uffa8\001"
				+ "\002\000\016\010\072\011\066\012\uffd6\015\020\035\uffd6"
				+ "\042\070\001\002\000\006\012\uffca\035\uffca\001\002\000"
				+ "\006\012\uffd7\035\uffd7\001\002\000\010\012\uffcb\015\020"
				+ "\035\uffcb\001\002\000\016\010\075\011\066\012\uffc9\015"
				+ "\020\035\uffc9\042\070\001\002\000\004\015\020\001\002"
				+ "\000\006\012\uffcd\035\uffcd\001\002\000\006\012\uffcf\035"
				+ "\uffcf\001\002\000\006\010\076\015\020\001\002\000\004"
				+ "\015\020\001\002\000\006\012\uffce\035\uffce\001\002\000"
				+ "\006\012\uffcc\035\uffcc\001\002\000\006\012\uffd2\034\uffd2"
				+ "\001\002\000\010\012\uffa7\015\uffa7\034\uffa7\001\002\000"
				+ "\010\012\uffa6\015\uffa6\034\uffa6\001\002\000\012\011\063"
				+ "\015\020\042\060\043\057\001\002\000\004\034\uffd4\001"
				+ "\002\000\010\012\uffa5\015\uffa5\034\uffa5\001\002\000\010"
				+ "\010\110\012\uffd8\035\uffd8\001\002\000\016\010\072\011"
				+ "\066\012\uffd9\015\020\035\uffd9\042\070\001\002\000\006"
				+ "\012\uffda\035\uffda\001\002\000\004\016\052\001\002\000"
				+ "\006\012\uffe2\035\uffe2\001\002\000\006\035\uffe4\040\026"
				+ "\001\002\000\004\035\uffe5\001\002\000\010\012\146\024"
				+ "\ufff0\035\ufff0\001\002\000\006\035\ufff2\040\026\001\002"
				+ "\000\006\024\143\035\ufff6\001\002\000\016\015\020\044"
				+ "\041\045\032\046\033\047\034\050\027\001\002\000\004"
				+ "\015\020\001\002\000\004\010\124\001\002\000\016\012"
				+ "\uffe7\015\020\024\uffe7\035\uffe7\042\126\043\125\001\002"
				+ "\000\004\015\020\001\002\000\004\015\020\001\002\000"
				+ "\020\010\133\012\uffea\015\020\024\uffea\035\uffea\042\131"
				+ "\043\125\001\002\000\010\012\uffe6\024\uffe6\035\uffe6\001"
				+ "\002\000\012\012\uffeb\015\020\024\uffeb\035\uffeb\001\002"
				+ "\000\010\012\uffef\024\uffef\035\uffef\001\002\000\004\010"
				+ "\134\001\002\000\004\015\020\001\002\000\010\012\uffee"
				+ "\024\uffee\035\uffee\001\002\000\010\012\uffed\024\uffed\035"
				+ "\uffed\001\002\000\010\012\uffec\024\uffec\035\uffec\001\002"
				+ "\000\004\010\141\001\002\000\016\012\uffe8\015\020\024"
				+ "\uffe8\035\uffe8\042\126\043\125\001\002\000\010\012\uffe9"
				+ "\024\uffe9\035\uffe9\001\002\000\006\035\ufff5\040\026\001"
				+ "\002\000\004\035\ufff7\001\002\000\004\035\ufff3\001\002"
				+ "\000\004\040\121\001\002\000\006\024\ufff1\035\ufff1\001"
				+ "\002\000\014\002\ufffd\005\ufffd\007\ufffd\014\ufffd\032\ufffd"
				+ "\001\002\000\004\015\020\001\002\000\004\007\153\001"
				+ "\002\000\004\015\020\001\002\000\004\026\155\001\002"
				+ "\000\004\007\153\001\002\000\006\012\161\035\uffae\001"
				+ "\002\000\010\007\153\012\uffbf\035\uffbf\001\002\000\006"
				+ "\012\uffc0\035\uffc0\001\002\000\004\007\153\001\002\000"
				+ "\006\012\uffc1\035\uffc1\001\002\000\004\020\222\001\002"
				+ "\000\010\010\166\012\165\020\uffb5\001\002\000\004\015"
				+ "\020\001\002\000\006\010\170\015\020\001\002\000\004"
				+ "\020\217\001\002\000\006\015\020\020\171\001\002\000"
				+ "\014\017\200\022\175\023\177\025\176\041\201\001\002"
				+ "\000\012\010\205\012\203\015\020\020\uffb8\001\002\000"
				+ "\004\020\174\001\002\000\014\017\200\022\175\023\177"
				+ "\025\176\041\201\001\002\000\012\007\uffb4\012\uffb4\026"
				+ "\uffb4\035\uffb4\001\002\000\012\007\uffb1\012\uffb1\026\uffb1"
				+ "\035\uffb1\001\002\000\012\007\uffb2\012\uffb2\026\uffb2\035"
				+ "\uffb2\001\002\000\012\007\uffb3\012\uffb3\026\uffb3\035\uffb3"
				+ "\001\002\000\012\007\uffb0\012\uffb0\026\uffb0\035\uffb0\001"
				+ "\002\000\012\007\uffbd\012\uffbd\026\uffbd\035\uffbd\001\002"
				+ "\000\004\015\020\001\002\000\010\010\205\015\020\020"
				+ "\uffb8\001\002\000\004\010\207\001\002\000\004\020\uffba"
				+ "\001\002\000\004\015\020\001\002\000\004\020\uffb9\001"
				+ "\002\000\004\020\uffb7\001\002\000\010\010\213\012\165"
				+ "\020\uffb5\001\002\000\004\010\214\001\002\000\004\015"
				+ "\020\001\002\000\004\012\203\001\002\000\012\007\uffbc"
				+ "\012\uffbc\026\uffbc\035\uffbc\001\002\000\014\017\200\022"
				+ "\175\023\177\025\176\041\201\001\002\000\012\007\uffbb"
				+ "\012\uffbb\026\uffbb\035\uffbb\001\002\000\004\020\uffb6\001"
				+ "\002\000\014\017\200\022\175\023\177\025\176\041\201"
				+ "\001\002\000\012\007\uffbe\012\uffbe\026\uffbe\035\uffbe\001"
				+ "\002\000\004\013\225\001\002\000\004\007\153\001\002"
				+ "\000\004\026\227\001\002\000\004\007\153\001\002\000"
				+ "\006\012\161\035\uffaf\001\002\000\004\033\234\001\002"
				+ "\000\004\007\153\001\002\000\006\012\161\035\uffc2\001"
				+ "\002\000\004\007\153\001\002\000\006\012\161\035\uffc3"
				+ "\001\002\000\004\037\244\001\002\000\004\015\020\001"
				+ "\002\000\004\035\uffad\001\002\000\006\012\242\035\uffaa"
				+ "\001\002\000\004\015\020\001\002\000\004\035\uffab\001"
				+ "\002\000\004\015\020\001\002\000\004\035\uffac\001\002"
				+ "\000\004\002\000\001\002\000\014\002\ufffb\005\ufffb\007"
				+ "\ufffb\014\ufffb\032\ufffb\001\002\000\014\002\ufffc\005\ufffc"
				+ "\007\ufffc\014\ufffc\032\ufffc\001\002\000\014\002\ufffa\005"
				+ "\ufffa\007\ufffa\014\ufffa\032\ufffa\001\002\000\014\002\uffff"
				+ "\005\uffff\007\uffff\014\uffff\032\uffff\001\002" });

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

	/** <code>reduce_goto</code> table. */
	protected static final short[][] _reduce_table =
		unpackFromStrings(new String[] { "\000\250\000\020\003\010\004\003\005\005\006\014\023"
				+ "\006\032\004\033\007\001\001\000\014\005\251\006\014"
				+ "\023\006\032\004\033\007\001\001\000\002\001\001\000"
				+ "\002\001\001\000\002\001\001\000\002\001\001\000\002"
				+ "\001\001\000\004\036\235\001\001\000\004\036\230\001"
				+ "\001\000\002\001\001\000\002\001\001\000\004\036\016"
				+ "\001\001\000\004\007\020\001\001\000\002\001\001\000"
				+ "\002\001\001\000\006\010\117\011\115\001\001\000\006"
				+ "\013\024\014\023\001\001\000\002\001\001\000\002\001"
				+ "\001\000\010\015\027\016\030\036\034\001\001\000\002"
				+ "\001\001\000\006\016\111\036\034\001\001\000\004\017"
				+ "\052\001\001\000\002\001\001\000\002\001\001\000\002"
				+ "\001\001\000\002\001\001\000\002\001\001\000\004\036"
				+ "\041\001\001\000\002\001\001\000\002\001\001\000\004"
				+ "\036\043\001\001\000\002\001\001\000\002\001\001\000"
				+ "\004\036\046\001\001\000\002\001\001\000\004\036\047"
				+ "\001\001\000\002\001\001\000\002\001\001\000\012\020"
				+ "\053\021\055\035\060\036\054\001\001\000\002\001\001"
				+ "\000\002\001\001\000\002\001\001\000\002\001\001\000"
				+ "\004\036\102\001\001\000\004\036\101\001\001\000\004"
				+ "\036\100\001\001\000\002\001\001\000\004\036\063\001"
				+ "\001\000\002\001\001\000\006\022\066\036\070\001\001"
				+ "\000\002\001\001\000\002\001\001\000\004\036\077\001"
				+ "\001\000\006\022\073\036\070\001\001\000\004\036\072"
				+ "\001\001\000\002\001\001\000\002\001\001\000\004\036"
				+ "\072\001\001\000\004\036\076\001\001\000\002\001\001"
				+ "\000\002\001\001\000\002\001\001\000\002\001\001\000"
				+ "\002\001\001\000\012\020\104\021\055\035\060\036\054"
				+ "\001\001\000\002\001\001\000\002\001\001\000\002\001"
				+ "\001\000\006\022\110\036\070\001\001\000\002\001\001"
				+ "\000\004\017\112\001\001\000\002\001\001\000\006\013"
				+ "\114\014\023\001\001\000\002\001\001\000\002\001\001"
				+ "\000\006\013\144\014\023\001\001\000\002\001\001\000"
				+ "\006\015\121\036\122\001\001\000\004\036\137\001\001"
				+ "\000\002\001\001\000\006\012\127\036\126\001\001\000"
				+ "\004\036\136\001\001\000\004\036\135\001\001\000\006"
				+ "\012\131\036\126\001\001\000\002\001\001\000\004\036"
				+ "\135\001\001\000\002\001\001\000\002\001\001\000\004"
				+ "\036\134\001\001\000\002\001\001\000\002\001\001\000"
				+ "\002\001\001\000\002\001\001\000\006\012\141\036\126"
				+ "\001\001\000\002\001\001\000\006\013\143\014\023\001"
				+ "\001\000\002\001\001\000\002\001\001\000\006\010\146"
				+ "\011\115\001\001\000\002\001\001\000\002\001\001\000"
				+ "\004\036\223\001\001\000\004\026\153\001\001\000\006"
				+ "\030\162\036\163\001\001\000\002\001\001\000\006\025"
				+ "\155\026\156\001\001\000\002\001\001\000\004\026\157"
				+ "\001\001\000\002\001\001\000\004\026\161\001\001\000"
				+ "\002\001\001\000\002\001\001\000\002\001\001\000\006"
				+ "\030\220\036\211\001\001\000\004\036\166\001\001\000"
				+ "\002\001\001\000\006\027\172\036\171\001\001\000\004"
				+ "\031\215\001\001\000\006\027\205\036\203\001\001\000"
				+ "\002\001\001\000\004\031\201\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\030\210\036\211"
				+ "\001\001\000\006\027\205\036\203\001\001\000\002\001"
				+ "\001\000\002\001\001\000\006\027\207\036\203\001\001"
				+ "\000\002\001\001\000\002\001\001\000\002\001\001\000"
				+ "\002\001\001\000\004\036\214\001\001\000\002\001\001"
				+ "\000\002\001\001\000\004\031\217\001\001\000\002\001"
				+ "\001\000\002\001\001\000\004\031\222\001\001\000\002"
				+ "\001\001\000\002\001\001\000\004\026\225\001\001\000"
				+ "\002\001\001\000\006\025\227\026\156\001\001\000\002"
				+ "\001\001\000\002\001\001\000\006\025\232\026\156\001"
				+ "\001\000\002\001\001\000\006\025\234\026\156\001\001"
				+ "\000\002\001\001\000\002\001\001\000\006\034\237\036"
				+ "\240\001\001\000\002\001\001\000\002\001\001\000\006"
				+ "\034\242\036\240\001\001\000\002\001\001\000\006\034"
				+ "\244\036\240\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" });

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

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

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

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

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

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

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

	public static void main(final String args[]) throws Exception {
		new AOLIdiomParser(new AOLLexer(new FileInputStream(
			".src/DDD/ddd.raw.aol"))).parse();
	}

	// Yann 2004/12/13: Hack!
	// This is just a hack to print out the number of classes currently analysed.
	// public int numberOfClasses = 0;
	private boolean areSemanticActionsEnabled = false;
	private IIdiomLevelModel idiomLevelModel;
	private List listOfElements = new ArrayList();
	private List listOfGeneralizations = new ArrayList();
	private List listOfRelations = new ArrayList();
	private List listOfArguments = new ArrayList();

	IPackage createAndGetDefaultPackage() {
		IPackage enclosingPackage =
			(IPackage) this.getIdiomLevelModel().getConstituentFromID(
				AOLCreator.AOL_PACKAGE_ID);
		if (enclosingPackage == null) {
			enclosingPackage =
				Factory.getInstance().createPackage(AOLCreator.AOL_PACKAGE_ID);
		}
		return enclosingPackage;
	}
	List getListOfElements() {
		return this.listOfElements;
	}
	void addToListOfElements(final IElement anElement) {
		this.listOfElements.add(anElement);
	}
	void resetListOfElements() {
		this.listOfElements.clear();
	}
	List getListOfGeneralizations() {
		return this.listOfGeneralizations;
	}
	void addToListOfGeneralizations(final String aName) {
		this.listOfGeneralizations.add(aName);
	}
	void resetListOfGeneralizations() {
		this.listOfGeneralizations.clear();
	}
	List getListOfRelations() {
		return this.listOfRelations;
	}
	void addToListOfRelations(final String aTargetClassName) {
		this.listOfRelations.add(aTargetClassName);
	}
	void resetListOfRelations() {
		this.listOfRelations.clear();
	}
	List getListOfArguments() {
		return this.listOfArguments;
	}
	void addToListOfArguments(final IParameter aParameter) {
		this.listOfArguments.add(aParameter);
	}
	void resetListOfArguments() {
		this.listOfArguments.clear();
	}
	public void syntax_error(padl.creator.aolfile.javacup.runtime.Symbol current) {
		report_error(MultilingualManager.getString(
			"SYN_ERR",
			AOLIdiomParser.class,
			new Object[] { new Integer(current.sym) }), current);
	}
	public void report_error(
		String message,
		padl.creator.aolfile.javacup.runtime.Symbol info) {
		((AOLLexer) this.getScanner()).reportErrorMessage(message, info);
	}
	public IIdiomLevelModel getIdiomLevelModel() {
		return this.idiomLevelModel;
	}
	public void setIdiomLevelModel(final IIdiomLevelModel aIdiomLevelModel) {
		this.idiomLevelModel = aIdiomLevelModel;
	}
	public boolean areSemanticActionsEnabled() {
		return this.areSemanticActionsEnabled;
	}
	public void enableSemanticActions(final boolean b) {
		this.areSemanticActionsEnabled = b;
	}

}

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

	/** Constructor */
	CUP$AOLIdiomParser$actions(AOLIdiomParser parser) {
		this.parser = parser;
	}

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

		/* select the action based on the action number */
		switch (CUP$AOLIdiomParser$act_num) {
		/*. . . . . . . . . . . . . . . . . . . .*/
			case 93 : // type ::= string 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 92 : // type ::= string UNSIGNED 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 91 : // type ::= VOLATILE string 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 90 : // type ::= UNSIGNED string 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 89 : // type ::= CONST string 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 88 : // string ::= IDENTIFIER 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = n;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 87 : // sub_classes_names ::= string 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						this.parser.addToListOfGeneralizations(n);
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 86 : // sub_classes_names ::= string COMMA sub_classes_names 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;
					int lleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int lright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String l =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						this.parser.addToListOfGeneralizations(n);
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 85 : // generalization ::= GENERALIZATION string SUBCLASSES sub_classes_names 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;
					int lleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int lright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String l =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						final IPackage enclosingPackage =
							this.parser.createAndGetDefaultPackage();
						IFirstClassEntity superEntity =
							(IFirstClassEntity) enclosingPackage
								.getConstituentFromName(n.toCharArray());
						// Yann 2004/03/30: Exception!
						// An invalid superclass is given on line 1545 of the original moz-1.0.rel.n.aol file.
						// I check if the superclass is valid before adding subclasses.
						if (superEntity == null) {
							superEntity =
								Factory.getInstance().createGhost(
									Utils.cleanCppEntityName(n.toCharArray()),
									Utils.cleanCppEntityName(n.toCharArray()));
							enclosingPackage.addConstituent(superEntity);
							//        System.err.print("Invalid superclass: ");
							//        System.err.println(n);
							//        System.err.print("(Look for \"GENERALIZATION ");
							//        System.err.print(n);
							//        System.err.println("\")");
						}
						final Iterator iterator =
							this.parser.getListOfGeneralizations().iterator();
						while (iterator.hasNext()) {
							final String entityName = (String) iterator.next();
							final IFirstClassEntity entity =
								(IFirstClassEntity) enclosingPackage
									.getConstituentFromName(entityName
										.toCharArray());
							entity.addInheritedEntity(superEntity);
						}
						this.parser.resetListOfGeneralizations();
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 84 : // generalization ::= GENERALIZATION SUBCLASSES sub_classes_names 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 83 : // aggregation ::= AGGREGATION CONTAINER role PARTS roles 
				{
					String RESULT = null;
					int sourceleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int sourceright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String source =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						final IFirstClassEntity sourceEntity =
							(IFirstClassEntity) this.parser
								.createAndGetDefaultPackage()
								.getConstituentFromName(source.toCharArray());
						if (sourceEntity != null) {
							final Iterator iterator =
								this.parser.getListOfRelations().iterator();
							while (iterator.hasNext()) {
								final String targetClassName =
									(String) iterator.next();
								IFirstClassEntity targetEntity =
									(IFirstClassEntity) this.parser
										.createAndGetDefaultPackage()
										.getConstituentFromName(
											targetClassName.toCharArray());
								if (targetEntity == null) {
									// Yann 2004/12/20: Null target entity.
									// The target entity might be null in the case of:
									//	RELATION 
									//	ROLES
									//	CLASS	nsAString MULT UNDEFINED,
									//	CLASS	const_iterator MULT UNDEFINED
									// where "const_iterator" is not an entity.
									// Yann 2007/02/01: Ghosts
									// I also handle ghosts now...
									targetEntity =
										Factory
											.getInstance()
											.createGhost(
												Utils.cleanCppEntityName(targetClassName
													.toCharArray()),
												Utils
													.cleanCppEntityName(targetClassName
														.toCharArray()));
									this.parser
										.createAndGetDefaultPackage()
										.addConstituent(targetEntity);
								}
								if (targetEntity != null) {
									final IContainerAggregation aggregation =
										Factory
											.getInstance()
											.createContainerAggregationRelationship(
												("UNKNOWN" + Math.random()).toCharArray(),
												targetEntity,
												Constants.CARDINALITY_MANY);
									sourceEntity.addConstituent(aggregation);
								}
							}
							this.parser.resetListOfRelations();
						}
						else {
							System.err.print("Cannot find source entity ");
							System.err.println(sourceEntity);
						}
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 82 : // aggregation ::= AGGREGATION NAME string CONTAINER role PARTS roles 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 4)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 4)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 4)).value;
					int sourceleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int sourceright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String source =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						final IFirstClassEntity sourceEntity =
							(IFirstClassEntity) this.parser
								.createAndGetDefaultPackage()
								.getConstituentFromName(source.toCharArray());
						if (sourceEntity != null) {
							final Iterator iterator =
								this.parser.getListOfRelations().iterator();
							while (iterator.hasNext()) {
								final String targetClassName =
									(String) iterator.next();
								IFirstClassEntity targetEntity =
									(IFirstClassEntity) this.parser
										.createAndGetDefaultPackage()
										.getConstituentFromName(
											targetClassName.toCharArray());
								if (targetEntity == null) {
									// Yann 2004/12/20: Null target entity.
									// The target entity might be null in the case of:
									//	RELATION 
									//	ROLES
									//	CLASS	nsAString MULT UNDEFINED,
									//	CLASS	const_iterator MULT UNDEFINED
									// where "const_iterator" is not an entity.
									// Yann 2007/02/01: Ghosts
									// I also handle ghosts now...
									targetEntity =
										Factory
											.getInstance()
											.createGhost(
												Utils.cleanCppEntityName(targetClassName
													.toCharArray()),
												Utils
													.cleanCppEntityName(targetClassName
														.toCharArray()));
									this.parser
										.createAndGetDefaultPackage()
										.addConstituent(targetEntity);
								}
								if (targetEntity != null) {
									final IContainerAggregation aggregation =
										Factory
											.getInstance()
											.createContainerAggregationRelationship(
												("UNKNOWN" + Math.random()).toCharArray(),
												targetEntity,
												Constants.CARDINALITY_MANY);
									aggregation.setName(n.toCharArray());
									sourceEntity.addConstituent(aggregation);
								}
							}
							this.parser.resetListOfRelations();
						}
						else {
							System.err.print("Cannot find source entity ");
							System.err.println(sourceEntity);
						}
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 81 : // multiplicity ::= UNDEFINED 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 80 : // multiplicity ::= OPTIONALLY_ONE 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 79 : // multiplicity ::= ONE_OR_MANY 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 78 : // multiplicity ::= MANY 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 77 : // multiplicity ::= ONE 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 76 : // targetedclasses ::= string 
				{
					String RESULT = null;
					int sleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int sright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String s =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = s;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 75 : // targetedclasses ::= string COMMA targetedclasses 
				{
					String RESULT = null;
					int sleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int sright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String s =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = s;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 74 : // targetedclasses ::= string COLON COLON string COMMA targetedclasses 
				{
					String RESULT = null;
					int s1left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 5)).left;
					int s1right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 5)).right;
					String s1 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 5)).value;
					int s2left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int s2right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String s2 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = s1 + "::" + s2;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 73 : // superclasses ::= string 
				{
					String RESULT = null;
					int sleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int sright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String s =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = s;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 72 : // superclasses ::= string COLON COLON superclasses 
				{
					String RESULT = null;
					int sleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).left;
					int sright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).right;
					String s =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = s;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 71 : // superclasses ::= string superclasses 
				{
					String RESULT = null;
					int sleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int sright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String s =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = s;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 70 : // role ::= CLASS string COLON string MULT multiplicity 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = n;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 69 : // role ::= CLASS string COLON COLON MULT multiplicity 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 4)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 4)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 4)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = n;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 68 : // role ::= CLASS string COLON COLON superclasses MULT multiplicity 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 5)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 5)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 5)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = n;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 67 : // role ::= CLASS targetedclasses MULT multiplicity 
				{
					String RESULT = null;
					int sleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int sright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String s =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = s;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 66 : // roles ::= role 
				{
					String RESULT = null;
					int rleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int rright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String r =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						this.parser.addToListOfRelations(r);
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 65 : // roles ::= role role 
				{
					String RESULT = null;
					int rleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int rright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String r =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						this.parser.addToListOfRelations(r);
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 64 : // roles ::= roles COMMA role 
				{
					String RESULT = null;
					int rleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int rright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String r =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						this.parser.addToListOfRelations(r);
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 63 : // association ::= RELATION ROLES roles 
				{
					String RESULT = null;

					if (this.parser.areSemanticActionsEnabled()) {
						final Iterator iterator =
							this.parser.getListOfRelations().iterator();
						final String sourceClassname = (String) iterator.next();
						final IFirstClassEntity sourceEntity =
							(IFirstClassEntity) this.parser
								.createAndGetDefaultPackage()
								.getConstituentFromName(
									sourceClassname.toCharArray());
						if (sourceEntity != null) {
							while (iterator.hasNext()) {
								final String targetClassName =
									(String) iterator.next();
								IFirstClassEntity targetEntity =
									(IFirstClassEntity) this.parser
										.createAndGetDefaultPackage()
										.getConstituentFromName(
											targetClassName.toCharArray());
								if (targetEntity == null) {
									// Yann 2004/12/20: Null target entity.
									// The target entity might be null in the case of:
									//	RELATION 
									//	ROLES
									//	CLASS	nsAString MULT UNDEFINED,
									//	CLASS	const_iterator MULT UNDEFINED
									// where "const_iterator" is not an entity.
									// Yann 2007/02/01: Ghosts
									// I also handle ghosts now...
									targetEntity =
										Factory
											.getInstance()
											.createGhost(
												Utils.cleanCppEntityName(targetClassName
													.toCharArray()),
												Utils
													.cleanCppEntityName(targetClassName
														.toCharArray()));
									this.parser
										.createAndGetDefaultPackage()
										.addConstituent(targetEntity);
								}
								if (targetEntity != null) {
									final IAssociation association =
										Factory
											.getInstance()
											.createAssociationRelationship(
												("UNKNOWN" + Math.random()).toCharArray(),
												targetEntity,
												Constants.CARDINALITY_MANY);
									sourceEntity.addConstituent(association);
								}
							}
							this.parser.resetListOfRelations();
						}
						else {
							System.err.print("Cannot find source entity ");
							System.err.println(sourceEntity);
						}
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 62 : // association ::= RELATION string ROLES roles 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						// Yann 2007/02/22: Assumption
						// I assume that the first class is the source
						// and any following classes are the target.
						final Iterator iterator =
							this.parser.getListOfRelations().iterator();
						final String sourceClassname = (String) iterator.next();
						final IFirstClassEntity sourceEntity =
							(IFirstClassEntity) this.parser
								.createAndGetDefaultPackage()
								.getConstituentFromName(
									sourceClassname.toCharArray());
						if (sourceEntity != null) {
							while (iterator.hasNext()) {
								final String targetClassName =
									(String) iterator.next();
								IFirstClassEntity targetEntity =
									(IFirstClassEntity) this.parser
										.createAndGetDefaultPackage()
										.getConstituentFromName(
											targetClassName.toCharArray());
								if (targetEntity == null) {
									// Yann 2004/12/20: Null target entity.
									// The target entity might be null in the case of:
									//	RELATION 
									//	ROLES
									//	CLASS	nsAString MULT UNDEFINED,
									//	CLASS	const_iterator MULT UNDEFINED
									// where "const_iterator" is not an entity.
									// Yann 2007/02/01: Ghosts
									// I also handle ghosts now...
									targetEntity =
										Factory
											.getInstance()
											.createGhost(
												Utils.cleanCppEntityName(targetClassName
													.toCharArray()),
												Utils
													.cleanCppEntityName(targetClassName
														.toCharArray()));
									this.parser
										.createAndGetDefaultPackage()
										.addConstituent(targetEntity);
								}
								if (targetEntity != null) {
									final IAssociation association =
										Factory
											.getInstance()
											.createAssociationRelationship(
												("UNKNOWN" + Math.random()).toCharArray(),
												targetEntity,
												Constants.CARDINALITY_MANY);
									association.setName(n.toCharArray());
									sourceEntity.addConstituent(association);
								}
							}
							this.parser.resetListOfRelations();
						}
						else {
							System.err
								.print("Cannot find source entity in AOL Idiom Parser!?");
						}
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 61 : // visibility ::= MINUS 
				{
					String RESULT = null;
					int vleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int vright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String v =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = v;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 60 : // visibility ::= PLUS 
				{
					String RESULT = null;
					int vleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int vright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String v =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = v;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 59 : // visibility ::= DOLLAR 
				{
					String RESULT = null;
					int vleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int vright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String v =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = v;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 58 : // visibility ::= DOLLARMINUS 
				{
					String RESULT = null;
					int vleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int vright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String v =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = v;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 57 : // visibility ::= DOLLARPLUS 
				{
					String RESULT = null;
					int vleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int vright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String v =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = v;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 56 : // operation_type_list ::= string 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 55 : // operation_type_list ::= CONST 
				{
					String RESULT = null;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = "void";
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 54 : // operation_type_list ::= UNSIGNED 
				{
					String RESULT = null;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = "void";
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 53 : // operation_type_list ::= UNSIGNED string 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 52 : // operation_type_list ::= COLON string 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 51 : // operation_type_list ::= string COLON COLON string 
				{
					String RESULT = null;
					int t1left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).left;
					int t1right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).right;
					String t1 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).value;
					int t2left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int t2right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t2 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t1 + "::" + t2;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 50 : // operation_type_list ::= string operation_type_list 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					RESULT = t;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 49 : // operation_arg ::= UNSIGNED 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						IEntity targetEntity =
							(IEntity) this.parser
								.createAndGetDefaultPackage()
								.getConstituentFromName(t.toCharArray());
						if (targetEntity == null) {
							if (Util.isPrimtiveType(t.toCharArray())) {
								targetEntity =
									Factory
										.getInstance()
										.createPrimitiveEntity(t.toCharArray());
							}
							else {
								targetEntity =
									Factory.getInstance().createGhost(
										Utils.cleanCppEntityName(t
											.toCharArray()),
										Utils.cleanCppEntityName(t
											.toCharArray()));
								this.parser
									.createAndGetDefaultPackage()
									.addConstituent(targetEntity);
							}
						}
						if (targetEntity != null) {
							this.parser.addToListOfArguments(Factory
								.getInstance()
								.createParameter(
									targetEntity,
									("a" + t).toCharArray(),
									Constants.CARDINALITY_ONE));
						}
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 48 : // operation_arg ::= type 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						/* See line 13 of mozilla-1.0-concat_des_2006-02-15114305.aol */
						final int pos;
						final String targetName;
						if ((pos = t.indexOf('*')) > 0) {
							t = t.substring(0, pos);
						}
						IEntity targetEntity =
							(IEntity) this.parser
								.createAndGetDefaultPackage()
								.getConstituentFromName(t.toCharArray());
						if (targetEntity == null) {
							if (Util.isPrimtiveType(t.toCharArray())) {
								targetEntity =
									Factory
										.getInstance()
										.createPrimitiveEntity(t.toCharArray());
							}
							else {
								targetEntity =
									Factory.getInstance().createGhost(
										Utils.cleanCppEntityName(t
											.toCharArray()),
										Utils.cleanCppEntityName(t
											.toCharArray()));
								this.parser
									.createAndGetDefaultPackage()
									.addConstituent(targetEntity);
							}
						}
						if (targetEntity != null) {
							this.parser.addToListOfArguments(Factory
								.getInstance()
								.createParameter(
									targetEntity,
									("a" + t).toCharArray(),
									Constants.CARDINALITY_ONE));
						}
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 47 : // operation_arg ::= type string 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						IEntity targetEntity =
							(IEntity) this.parser
								.createAndGetDefaultPackage()
								.getConstituentFromName(t.toCharArray());
						if (targetEntity == null) {
							if (Util.isPrimtiveType(t.toCharArray())) {
								targetEntity =
									Factory
										.getInstance()
										.createPrimitiveEntity(t.toCharArray());
							}
							else {
								targetEntity =
									Factory.getInstance().createGhost(
										Utils.cleanCppEntityName(t
											.toCharArray()),
										Utils.cleanCppEntityName(t
											.toCharArray()));
								this.parser
									.createAndGetDefaultPackage()
									.addConstituent(targetEntity);
							}
						}
						if (targetEntity != null) {
							this.parser.addToListOfArguments(Factory
								.getInstance()
								.createParameter(
									targetEntity,
									n.toCharArray(),
									Constants.CARDINALITY_ONE));
						}
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 46 : // operation_arg_list ::= operation_arg 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 45 : // operation_arg_list ::= operation_arg COMMA operation_arg_list 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 44 : // operation_content ::= LPAREN RPAREN 
				{
					String RESULT = null;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = "void";
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 43 : // operation_content ::= LPAREN RPAREN COLON 
				{
					String RESULT = null;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = "void";
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 42 : // operation_content ::= LPAREN RPAREN COLON operation_type_list 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 41 : // operation_content ::= LPAREN operation_arg_list RPAREN 
				{
					String RESULT = null;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = "void";
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 40 : // operation_content ::= LPAREN operation_arg_list RPAREN COLON 
				{
					String RESULT = null;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = "";
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 39 : // operation_content ::= LPAREN operation_arg_list RPAREN COLON operation_type_list 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 38 : // operation_name ::= CONST 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = n;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 37 : // operation_name ::= UNSIGNED 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = n;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 36 : // operation_name ::= string 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = n;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 35 : // operation_name ::= LPAREN string RPAREN 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = n;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 34 : // operation_name ::= LPAREN string string RPAREN 
				{
					String RESULT = null;
					int s1left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int s1right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String s1 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;
					int s2left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int s2right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String s2 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = s1 + ' ' + s2;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 33 : // operation_name ::= LPAREN string string COMMA string string RPAREN 
				{
					String RESULT = null;
					int s1left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 5)).left;
					int s1right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 5)).right;
					String s1 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 5)).value;
					int s2left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 4)).left;
					int s2right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 4)).right;
					String s2 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 4)).value;
					int s3left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int s3right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String s3 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;
					int s4left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int s4right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String s4 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = s1 + ' ' + s2 + ' ' + s3 + ' ' + s4;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 32 : // operation ::= UNDEF_SCOPE operation_name operation_content 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;
					int ocleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int ocright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String oc =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						final IMethod method =
							Factory.getInstance().createMethod(
								(n + Math.random()).toCharArray(),
								(n + Math.random()).toCharArray());
						method.setName(n.toCharArray());
						method.setReturnType(oc.toCharArray());
						final Iterator iterator =
							this.parser.getListOfArguments().iterator();
						while (iterator.hasNext()) {
							method.addConstituent((IParameter) iterator.next());
						}
						this.parser.resetListOfArguments();
						this.parser.addToListOfElements(method);
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 31 : // operation ::= UNDEF_SCOPE visibility operation_name operation_content 
				{
					String RESULT = null;
					int vleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int vright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String v =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;
					int ocleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int ocright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String oc =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						final IMethod method =
							Factory.getInstance().createMethod(
								(n + Math.random()).toCharArray(),
								(n + Math.random()).toCharArray());
						method.setName(n.toCharArray());
						method.setReturnType(oc.toCharArray());
						if (v.equals("PUBLIC")) {
							method.setVisibility(Modifier.PUBLIC);
						}
						else if (v.equals("PROTECTED")) {
							method.setVisibility(Modifier.PROTECTED);
						}
						else if (v.equals("PRIVATE")) {
							method.setVisibility(Modifier.PRIVATE);
						}
						final Iterator iterator =
							this.parser.getListOfArguments().iterator();
						while (iterator.hasNext()) {
							method.addConstituent((IParameter) iterator.next());
						}
						this.parser.resetListOfArguments();
						this.parser.addToListOfElements(method);
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 30 : // operation_list ::= operation 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 29 : // operation_list ::= operation COMMA 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 28 : // operation_list ::= operation COMMA operation_list 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 27 : // attribute ::= UNDEF_SCOPE string COLON attribute_type_list 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						// TODO: Should compute the cardinality!
						final IField field =
							Factory.getInstance().createField(
								n.toCharArray(),
								n.toCharArray(),
								t.toCharArray(),
								Constants.CARDINALITY_ONE);
						this.parser.addToListOfElements(field);
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 26 : // attribute ::= UNDEF_SCOPE string COLON 
				{
					String RESULT = null;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						// TODO: Should compute the cardinality!
						final IField field =
							Factory.getInstance().createField(
								n.toCharArray(),
								n.toCharArray(),
								"".toCharArray(),
								Constants.CARDINALITY_ONE);
						this.parser.addToListOfElements(field);
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 25 : // attribute ::= UNDEF_SCOPE visibility string COLON 
				{
					String RESULT = null;
					int vleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int vright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String v =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						// TODO: Should compute the cardinality!
						final IField field =
							Factory.getInstance().createField(
								n.toCharArray(),
								n.toCharArray(),
								"".toCharArray(),
								Constants.CARDINALITY_ONE);
						if (v.equals("PUBLIC")) {
							field.setVisibility(Modifier.PUBLIC);
						}
						else if (v.equals("PROTECTED")) {
							field.setVisibility(Modifier.PROTECTED);
						}
						else if (v.equals("PRIVATE")) {
							field.setVisibility(Modifier.PRIVATE);
						}
						this.parser.addToListOfElements(field);
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 24 : // attribute ::= UNDEF_SCOPE visibility string COLON attribute_type_list 
				{
					String RESULT = null;
					int vleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).left;
					int vright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).right;
					String v =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).value;
					int nleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).left;
					int nright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).right;
					String n =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 2)).value;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						// TODO: Should compute the cardinality!
						final IField field =
							Factory.getInstance().createField(
								n.toCharArray(),
								n.toCharArray(),
								t.toCharArray(),
								Constants.CARDINALITY_ONE);
						if (v.equals("PUBLIC")) {
							field.setVisibility(Modifier.PUBLIC);
						}
						else if (v.equals("PROTECTED")) {
							field.setVisibility(Modifier.PROTECTED);
						}
						else if (v.equals("PRIVATE")) {
							field.setVisibility(Modifier.PRIVATE);
						}
						this.parser.addToListOfElements(field);
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 23 : // attribute_type_list ::= string 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 22 : // attribute_type_list ::= string UNSIGNED 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 21 : // attribute_type_list ::= VOLATILE string 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 20 : // attribute_type_list ::= UNSIGNED string 
				{
					String RESULT = null;
					int tleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int tright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 19 : // attribute_type_list ::= string COLON COLON string 
				{
					String RESULT = null;
					int t1left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).left;
					int t1right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).right;
					String t1 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 3)).value;
					int t2left =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int t2right =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String t2 =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = t1 + "::" + t2;
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 18 : // attribute_type_list ::= string attribute_type_list 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 17 : // attribute_list ::= attribute 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 16 : // attribute_list ::= attribute COMMA attribute_list 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 15 : // class_content ::= ATTRIBUTES OPERATIONS 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 14 : // class_content ::= ATTRIBUTES OPERATIONS operation_list 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 13 : // class_content ::= OPERATIONS operation_list 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 12 : // class_content ::= ATTRIBUTES attribute_list OPERATIONS 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 11 : // class_content ::= ATTRIBUTES attribute_list 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 10 : // class_content ::= ATTRIBUTES attribute_list OPERATIONS operation_list 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 9 : // class_declaration ::= CLASS string class_content 
				{
					String RESULT = null;
					int nameleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).left;
					int nameright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).right;
					String name =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 1)).value;

					// System.out.println(++this.parser.numberOfClasses);
					if (this.parser.areSemanticActionsEnabled()) {
						// final IEntity entity = Factory.getInstance().createClass(name.toCharArray(), name.toCharArray());
						final IFirstClassEntity sourceEntity =
							(IFirstClassEntity) this.parser
								.createAndGetDefaultPackage()
								.getConstituentFromName(name.toCharArray());
						final Iterator iterator =
							this.parser.getListOfElements().iterator();
						while (iterator.hasNext()) {
							sourceEntity.addConstituent((IElement) iterator
								.next());
						}
						this.parser.resetListOfElements();
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 8 : // class_declaration ::= CLASS string 
				{
					String RESULT = null;
					int nameleft =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).left;
					int nameright =
						((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).right;
					String name =
						(String) ((padl.creator.aolfile.javacup.runtime.Symbol) CUP$AOLIdiomParser$stack
							.elementAt(CUP$AOLIdiomParser$top - 0)).value;

					// System.out.println(++this.parser.numberOfClasses);
					if (this.parser.areSemanticActionsEnabled()) {
						// final IEntity entity = Factory.getInstance().createClass(name.toCharArray(), name.toCharArray());
						final IFirstClassEntity sourceEntity =
							(IFirstClassEntity) this.parser
								.createAndGetDefaultPackage()
								.getConstituentFromName(name.toCharArray());
						final Iterator iterator =
							this.parser.getListOfElements().iterator();
						while (iterator.hasNext()) {
							sourceEntity.addConstituent((IElement) iterator
								.next());
						}
						this.parser.resetListOfElements();
					}

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 7 : // declaration ::= aggregation SEMICOLON 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 6 : // declaration ::= generalization SEMICOLON 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 5 : // declaration ::= association SEMICOLON 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 4 : // declaration ::= class_declaration SEMICOLON 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 3 : // list_declarations ::= declaration 
				{
					String RESULT = null;

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 2 : // list_declarations ::= list_declarations declaration 
				{
					String RESULT = null;

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

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

				/*. . . . . . . . . . . . . . . . . . . .*/
			case 0 : // model ::= list_declarations 
				{
					IIdiomLevelModel RESULT = null;

					if (this.parser.areSemanticActionsEnabled()) {
						RESULT = this.parser.getIdiomLevelModel();
					}

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

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

		}
	}
}
