
//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Tue Feb 11 17:07:17 PST 2014
//----------------------------------------------------

package GenRGenS.ratexpr;

import java_cup.runtime.*;
import java.util.*;
import java.math.*;
import GenRGenS.*;

/** CUP v0.10k generated parser.
  * @version Tue Feb 11 17:07:17 PST 2014
  */
public class preparser extends java_cup.runtime.lr_parser {

  /** Default constructor. */
  public preparser() {super();}

  /** Constructor which sets the default scanner. */
  public preparser(java_cup.runtime.Scanner s) {super(s);}

  /** Production table. */
  protected static final short _production_table[][] = 
    unpackFromStrings(new String[] {
    "\000\055\000\002\002\004\000\002\003\004\000\002\005" +
    "\005\000\002\004\007\000\002\004\007\000\002\006\005" +
    "\000\002\007\005\000\002\010\005\000\002\010\005\000" +
    "\002\010\002\000\002\011\005\000\002\011\004\000\002" +
    "\011\002\000\002\020\005\000\002\020\005\000\002\020" +
    "\004\000\002\020\004\000\002\020\005\000\002\020\007" +
    "\000\002\020\006\000\002\020\011\000\002\020\005\000" +
    "\002\020\003\000\002\012\005\000\002\012\004\000\002" +
    "\012\002\000\002\021\003\000\002\021\005\000\002\021" +
    "\005\000\002\021\006\000\002\021\010\000\002\021\005" +
    "\000\002\021\005\000\002\017\003\000\002\017\003\000" +
    "\002\013\005\000\002\013\002\000\002\014\005\000\002" +
    "\014\002\000\002\015\005\000\002\015\002\000\002\016" +
    "\006\000\002\016\005\000\002\016\006\000\002\016\005" +
    "" });

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

  /** Parse-action table. */
  protected static final short[][] _action_table = 
    unpackFromStrings(new String[] {
    "\000\130\000\004\004\006\001\002\000\004\002\132\001" +
    "\002\000\004\005\013\001\002\000\004\016\007\001\002" +
    "\000\004\010\010\001\002\000\004\005\uffff\001\002\000" +
    "\004\002\000\001\002\000\014\002\ufff8\013\016\023\ufff8" +
    "\032\ufff8\042\ufff8\001\002\000\004\016\075\001\002\000" +
    "\014\002\ufff8\013\016\023\ufff8\032\ufff8\042\ufff8\001\002" +
    "\000\012\002\uffe8\023\uffe8\032\022\042\uffe8\001\002\000" +
    "\004\016\017\001\002\000\006\014\021\015\020\001\002" +
    "\000\012\002\ufff9\023\ufff9\032\ufff9\042\ufff9\001\002\000" +
    "\012\002\ufffa\023\ufffa\032\ufffa\042\ufffa\001\002\000\004" +
    "\016\051\001\002\000\010\002\uffdd\023\uffdd\042\024\001" +
    "\002\000\004\016\042\001\002\000\006\002\uffd9\023\027" +
    "\001\002\000\004\002\ufffd\001\002\000\004\016\030\001" +
    "\002\000\004\054\032\001\002\000\006\002\uffda\054\036" +
    "\001\002\000\004\016\033\001\002\000\006\054\035\055" +
    "\034\001\002\000\006\002\uffd5\054\uffd5\001\002\000\006" +
    "\002\uffd7\054\uffd7\001\002\000\004\016\037\001\002\000" +
    "\006\054\041\055\040\001\002\000\006\002\uffd6\054\uffd6" +
    "\001\002\000\006\002\uffd8\054\uffd8\001\002\000\010\002" +
    "\uffdb\023\uffdb\054\044\001\002\000\006\002\uffde\023\uffde" +
    "\001\002\000\006\052\047\053\045\001\002\000\032\002" +
    "\uffe0\020\uffe0\023\uffe0\024\uffe0\025\uffe0\027\uffe0\030\uffe0" +
    "\031\uffe0\033\uffe0\034\uffe0\042\uffe0\054\uffe0\001\002\000" +
    "\010\002\uffdb\023\uffdb\054\044\001\002\000\032\002\uffdf" +
    "\020\uffdf\023\uffdf\024\uffdf\025\uffdf\027\uffdf\030\uffdf\031" +
    "\uffdf\033\uffdf\034\uffdf\042\uffdf\054\uffdf\001\002\000\006" +
    "\002\uffdc\023\uffdc\001\002\000\020\002\uffe9\023\uffe9\033" +
    "\056\035\053\037\055\042\uffe9\054\054\001\002\000\014" +
    "\002\uffea\023\uffea\026\061\033\062\042\uffea\001\002\000" +
    "\004\054\073\001\002\000\016\002\uffe7\023\uffe7\026\uffe7" +
    "\033\uffe7\034\uffe7\042\uffe7\001\002\000\004\054\071\001" +
    "\002\000\012\033\056\035\053\037\055\054\054\001\002" +
    "\000\010\026\061\033\062\034\060\001\002\000\016\002" +
    "\uffe1\023\uffe1\026\uffe1\033\uffe1\034\uffe1\042\uffe1\001\002" +
    "\000\012\033\056\035\053\037\055\054\054\001\002\000" +
    "\006\052\047\053\045\001\002\000\006\020\065\034\064" +
    "\001\002\000\016\002\uffe4\023\uffe4\026\uffe4\033\uffe4\034" +
    "\uffe4\042\uffe4\001\002\000\006\052\047\053\045\001\002" +
    "\000\004\034\067\001\002\000\016\002\uffe3\023\uffe3\026" +
    "\uffe3\033\uffe3\034\uffe3\042\uffe3\001\002\000\016\002\uffe2" +
    "\023\uffe2\026\uffe2\033\062\034\uffe2\042\uffe2\001\002\000" +
    "\004\040\072\001\002\000\016\002\uffe6\023\uffe6\026\uffe6" +
    "\033\uffe6\034\uffe6\042\uffe6\001\002\000\004\036\074\001" +
    "\002\000\016\002\uffe5\023\uffe5\026\uffe5\033\uffe5\034\uffe5" +
    "\042\uffe5\001\002\000\006\010\076\011\077\001\002\000" +
    "\014\002\ufffc\013\ufffc\023\ufffc\032\ufffc\042\ufffc\001\002" +
    "\000\014\002\ufffb\013\ufffb\023\ufffb\032\ufffb\042\ufffb\001" +
    "\002\000\012\002\ufff5\023\ufff5\032\101\042\ufff5\001\002" +
    "\000\004\016\105\001\002\000\010\002\uffdd\023\uffdd\042" +
    "\024\001\002\000\006\002\uffd9\023\027\001\002\000\004" +
    "\002\ufffe\001\002\000\014\002\ufff6\023\ufff6\033\110\042" +
    "\ufff6\054\107\001\002\000\022\002\ufff7\023\ufff7\024\116" +
    "\025\112\027\114\030\117\031\115\042\ufff7\001\002\000" +
    "\024\002\uffeb\023\uffeb\024\uffeb\025\uffeb\027\uffeb\030\uffeb" +
    "\031\uffeb\034\uffeb\042\uffeb\001\002\000\006\033\110\054" +
    "\107\001\002\000\016\024\116\025\112\027\114\030\117" +
    "\031\115\034\113\001\002\000\006\033\110\054\107\001" +
    "\002\000\024\002\uffec\023\uffec\024\uffec\025\uffec\027\uffec" +
    "\030\uffec\031\uffec\034\uffec\042\uffec\001\002\000\024\002" +
    "\ufff1\023\ufff1\024\ufff1\025\ufff1\027\ufff1\030\ufff1\031\ufff1" +
    "\034\ufff1\042\ufff1\001\002\000\010\033\122\052\047\053" +
    "\045\001\002\000\006\033\110\054\107\001\002\000\024" +
    "\002\ufff2\023\ufff2\024\ufff2\025\ufff2\027\ufff2\030\ufff2\031" +
    "\ufff2\034\ufff2\042\ufff2\001\002\000\024\002\ufff4\023\ufff4" +
    "\024\ufff4\025\112\027\114\030\117\031\115\034\ufff4\042" +
    "\ufff4\001\002\000\030\002\ufff0\023\ufff0\024\ufff0\025\ufff0" +
    "\027\ufff0\030\ufff0\031\ufff0\033\110\034\ufff0\042\ufff0\054" +
    "\107\001\002\000\006\052\047\053\045\001\002\000\006" +
    "\020\125\034\124\001\002\000\024\002\uffef\023\uffef\024" +
    "\uffef\025\uffef\027\uffef\030\uffef\031\uffef\034\uffef\042\uffef" +
    "\001\002\000\006\052\047\053\045\001\002\000\004\034" +
    "\127\001\002\000\024\002\uffed\023\uffed\024\uffed\025\uffed" +
    "\027\uffed\030\uffed\031\uffed\034\uffed\042\uffed\001\002\000" +
    "\024\002\uffee\023\uffee\024\uffee\025\uffee\027\uffee\030\uffee" +
    "\031\uffee\034\uffee\042\uffee\001\002\000\024\002\ufff3\023" +
    "\ufff3\024\ufff3\025\ufff3\027\114\030\117\031\115\034\ufff3" +
    "\042\ufff3\001\002\000\004\002\001\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\130\000\006\003\003\005\004\001\001\000\002\001" +
    "\001\000\010\004\010\006\011\007\013\001\001\000\002" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001\000\004\010\077\001\001\000\002\001\001\000\004" +
    "\010\014\001\001\000\004\012\022\001\001\000\002\001" +
    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
    "\000\002\001\001\000\004\013\024\001\001\000\002\001" +
    "\001\000\004\015\025\001\001\000\002\001\001\000\002" +
    "\001\001\000\004\016\030\001\001\000\002\001\001\000" +
    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001\000\002\001\001\000\004\014\042\001\001\000\002" +
    "\001\001\000\004\017\045\001\001\000\002\001\001\000" +
    "\004\014\047\001\001\000\002\001\001\000\002\001\001" +
    "\000\004\021\051\001\001\000\002\001\001\000\002\001" +
    "\001\000\002\001\001\000\002\001\001\000\004\021\056" +
    "\001\001\000\002\001\001\000\002\001\001\000\004\021" +
    "\067\001\001\000\004\017\062\001\001\000\002\001\001" +
    "\000\002\001\001\000\004\017\065\001\001\000\002\001" +
    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
    "\011\101\001\001\000\002\001\001\000\004\013\102\001" +
    "\001\000\004\015\103\001\001\000\002\001\001\000\004" +
    "\020\105\001\001\000\002\001\001\000\002\001\001\000" +
    "\004\020\110\001\001\000\002\001\001\000\004\020\130" +
    "\001\001\000\002\001\001\000\002\001\001\000\004\017" +
    "\120\001\001\000\004\020\117\001\001\000\002\001\001" +
    "\000\002\001\001\000\004\020\127\001\001\000\004\017" +
    "\122\001\001\000\002\001\001\000\002\001\001\000\004" +
    "\017\125\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$preparser$actions action_obj;

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

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

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

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

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




  private boolean _parseError = false;
  
  String getTexte() { return action_obj.getTexte(); }
  
  public void report_error(String message, Object info) {
    _parseError = true;
    if (info instanceof Symbol) {
      Symbol cur_token = (Symbol) info;
      if (cur_token.left != -1) {
      
        int[] coord_left = ((GenRGenSScanner) getScanner()).getRelativePos(
        	cur_token.left);
        int[] coord_right = ((GenRGenSScanner) getScanner()).getRelativePos(
        	cur_token.right);
        if (coord_left[0] == coord_right[0])
          GenRGenS.err.println("Syntax Error at line "+coord_right[0]+" chars "+
          coord_left[1] +"-" + coord_right[1]);
        else
          GenRGenS.err.println("Syntax Error from line "+coord_left[0]+" char "+
          coord_left[1] + " to line "+coord_right[0]+" char " + coord_right[1]);
      }
      else
        GenRGenS.err.println(
        	"Syntax Error, possibly because of a malformed clause !");
    }
    else
        GenRGenS.err.println(message);
  }
  public void report_fatal_error(String message, Object info) 
  	throws java.lang.Exception {
    _parseError = true;
    
   if (info instanceof Symbol) {
      Symbol cur_token = (Symbol) info;
      if (cur_token.left != -1) {
        int[] coord_left = ((GenRGenSScanner) getScanner()).getRelativePos(
        	cur_token.left);
        int[] coord_right = ((GenRGenSScanner) getScanner()).getRelativePos(
        	cur_token.right);
        if (coord_left[0] == coord_right[0])
          GenRGenS.err.println("Couldn't repair and continue parse at line "+
          coord_right[0]+".");
        else
          GenRGenS.err.println("Couldn't repair and continue parse at line "+
          coord_right[0]+".");
      }
      else
        GenRGenS.err.println("Couldn't repair and continue parse.");
    }
    else {
      Symbol current_token = cur_token;
      int[] coord_right = ((GenRGenSScanner) getScanner()).getRelativePos(
      	current_token.right);
      GenRGenS.err.println("Couldn't repair and continue parse at line "+
      coord_right[0]+".");
    }
    throw new Exception("Can't recover from previous error(s)");
  }

  public void syntax_error(Symbol cur_token) {
    report_error("Syntax error", cur_token);  
  }
  public void unrecovered_syntax_error(Symbol cur_token)
  	throws java.lang.Exception {
    report_fatal_error("Couldn't repair and continue parse", cur_token);  
  }

}

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


  /** fichier recopié avec les modifications nécessaires */
  String _tmpFichier = "";
  boolean _isWord;
  
  String getTexte() { return _tmpFichier; }
  
  String ident(String s,String separ) {
	if (_isWord)
		return s;
	String res = "";
	for (int i = 0; i < s.length() ; i++) {
		res += s.charAt(i);
		if (i != s.length()-1)
			res += separ;
	}
	return res;
  }

  private final preparser parser;

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

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

      /* select the action based on the action number */
      switch (CUP$preparser$act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // AliasesList ::= IDENT EQUALS STRING 
            {
              Object RESULT = null;
		int i_srcleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left;
		int i_srcright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).right;
		String i_src = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-2)).value;
		int i_destleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int i_destright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String i_dest = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = i_src + " = \"" + i_dest +"\"\n"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(12/*AliasesList*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // AliasesList ::= AliasesList IDENT EQUALS STRING 
            {
              Object RESULT = null;
		int aliasesleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).left;
		int aliasesright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).right;
		Object aliases = (Object)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-3)).value;
		int i_srcleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left;
		int i_srcright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).right;
		String i_src = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-2)).value;
		int i_destleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int i_destright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String i_dest = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = aliases + i_src + " = \"" + i_dest +"\"\n"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(12/*AliasesList*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // AliasesList ::= IDENT EQUALS IDENT 
            {
              Object RESULT = null;
		int i_srcleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left;
		int i_srcright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).right;
		String i_src = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-2)).value;
		int i_destleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int i_destright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String i_dest = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = i_src + " = " + i_dest +"\n"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(12/*AliasesList*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // AliasesList ::= AliasesList IDENT EQUALS IDENT 
            {
              Object RESULT = null;
		int aliasesleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).left;
		int aliasesright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).right;
		Object aliases = (Object)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-3)).value;
		int i_srcleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left;
		int i_srcright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).right;
		String i_src = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-2)).value;
		int i_destleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int i_destright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String i_dest = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = aliases + i_src + " = " + i_dest +"\n"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(12/*AliasesList*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // AliasesDeclaration ::= 
            {
              Object RESULT = null;
		  
              CUP$preparser$result = new java_cup.runtime.Symbol(11/*AliasesDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // AliasesDeclaration ::= ALIASES EQUALS AliasesList 
            {
              Object RESULT = null;
		int aliasesleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int aliasesright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		Object aliases = (Object)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 _tmpFichier += "ALIASES = " + aliases + "\n"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(11/*AliasesDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // WeightsList ::= 
            {
              Object RESULT = null;
		 RESULT = ""; 
              CUP$preparser$result = new java_cup.runtime.Symbol(10/*WeightsList*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // WeightsList ::= IDENT Real WeightsList 
            {
              Object RESULT = null;
		int sleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left;
		int sright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).right;
		String s = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-2)).value;
		int bleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int bright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		BigDecimal b = (BigDecimal)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		int pleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int pright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		Object p = (Object)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = s + " " + b + "\n" + p; 
              CUP$preparser$result = new java_cup.runtime.Symbol(10/*WeightsList*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // WeightsDeclaration ::= 
            {
              Object RESULT = null;
		 
              CUP$preparser$result = new java_cup.runtime.Symbol(9/*WeightsDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // WeightsDeclaration ::= WEIGHTS EQUALS WeightsList 
            {
              Object RESULT = null;
		int poidsleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int poidsright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		Object poids = (Object)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 _tmpFichier += "WEIGHTS = "+poids+"\n";
              CUP$preparser$result = new java_cup.runtime.Symbol(9/*WeightsDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // Real ::= ENTIER 
            {
              BigDecimal RESULT = null;
		int nleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int nright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		Integer n = (Integer)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = new BigDecimal(n.intValue());   
              CUP$preparser$result = new java_cup.runtime.Symbol(13/*Real*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // Real ::= REEL 
            {
              BigDecimal RESULT = null;
		int fleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int fright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		Float f = (Float)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = new BigDecimal(f.floatValue()); 
              CUP$preparser$result = new java_cup.runtime.Symbol(13/*Real*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // ExpressionProsite ::= PARG ExpressionProsite PARD 
            {
              String RESULT = null;
		int eleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		 RESULT = "(" + e + ")";       
              CUP$preparser$result = new java_cup.runtime.Symbol(15/*ExpressionProsite*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // ExpressionProsite ::= ExpressionProsite TIRET ExpressionProsite 
            {
              String RESULT = null;
		int e1left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left;
		int e1right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).right;
		String e1 = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-2)).value;
		int e2left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int e2right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String e2 = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = e1 + "-" + e2;       
              CUP$preparser$result = new java_cup.runtime.Symbol(15/*ExpressionProsite*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // ExpressionProsite ::= ExpressionProsite PARG Real VIRG Real PARD 
            {
              String RESULT = null;
		int eleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-5)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-5)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-5)).value;
		int b1left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).left;
		int b1right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).right;
		BigDecimal b1 = (BigDecimal)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-3)).value;
		int b2left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int b2right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		BigDecimal b2 = (BigDecimal)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		 RESULT = e+"("+b1+","+b2+")"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(15/*ExpressionProsite*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-5)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // ExpressionProsite ::= ExpressionProsite PARG Real PARD 
            {
              String RESULT = null;
		int eleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-3)).value;
		int bleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int bright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		BigDecimal b = (BigDecimal)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		 RESULT = e + "(" + b + ")";   
              CUP$preparser$result = new java_cup.runtime.Symbol(15/*ExpressionProsite*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // ExpressionProsite ::= ACCG IDENT ACCD 
            {
              String RESULT = null;
		int sleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int sright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		String s = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		 RESULT = "{" + s + "}";       
              CUP$preparser$result = new java_cup.runtime.Symbol(15/*ExpressionProsite*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // ExpressionProsite ::= CROG IDENT CROD 
            {
              String RESULT = null;
		int sleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int sright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		String s = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		 RESULT = "[" + s + "]";       
              CUP$preparser$result = new java_cup.runtime.Symbol(15/*ExpressionProsite*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // ExpressionProsite ::= IDENT 
            {
              String RESULT = null;
		int sleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int sright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String s = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = ident(s,"-");        
              CUP$preparser$result = new java_cup.runtime.Symbol(15/*ExpressionProsite*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // PrositeDeclaration ::= 
            {
              Object RESULT = null;
		
              parser.done_parsing();
              parser.report_error("You must define a prosite expression !","");
                      
              CUP$preparser$result = new java_cup.runtime.Symbol(8/*PrositeDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // PrositeDeclaration ::= EXPRESSION EQUALS 
            {
              Object RESULT = null;
		
              parser.done_parsing();
              parser.report_error("You must define a rational expression !","");
                      
              CUP$preparser$result = new java_cup.runtime.Symbol(8/*PrositeDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // PrositeDeclaration ::= EXPRESSION EQUALS ExpressionProsite 
            {
              Object RESULT = null;
		int eleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		_tmpFichier+="EXPRESSION = "+e+"\n";
                                          
              CUP$preparser$result = new java_cup.runtime.Symbol(8/*PrositeDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // Expression ::= IDENT 
            {
              String RESULT = null;
		int sleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int sright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String s = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = ident(s,".");           
              CUP$preparser$result = new java_cup.runtime.Symbol(14/*Expression*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // Expression ::= PARG Expression PARD 
            {
              String RESULT = null;
		int eleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		 RESULT = "(" + e + ")";      
              CUP$preparser$result = new java_cup.runtime.Symbol(14/*Expression*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // Expression ::= Expression PUISS PARG Real VIRG Real PARD 
            {
              String RESULT = null;
		int eleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-6)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-6)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-6)).value;
		int b1left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).left;
		int b1right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).right;
		BigDecimal b1 = (BigDecimal)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-3)).value;
		int b2left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int b2right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		BigDecimal b2 = (BigDecimal)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		 RESULT =e+"^("+b1+","+b2+")";
              CUP$preparser$result = new java_cup.runtime.Symbol(14/*Expression*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-6)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // Expression ::= Expression PUISS Real Expression 
            {
              String RESULT = null;
		int e1left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).left;
		int e1right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).right;
		String e1 = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-3)).value;
		int bleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int bright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		BigDecimal b = (BigDecimal)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		int e2left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int e2right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String e2 = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = e1+"^("+b+")."+e2;  
              CUP$preparser$result = new java_cup.runtime.Symbol(14/*Expression*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-3)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // Expression ::= Expression PUISS PARG Real PARD 
            {
              String RESULT = null;
		int eleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-4)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-4)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-4)).value;
		int bleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int bright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		BigDecimal b = (BigDecimal)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		 RESULT = e + "^(" + b + ")"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(14/*Expression*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-4)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // Expression ::= Expression PUISS Real 
            {
              String RESULT = null;
		int eleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-2)).value;
		int bleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int bright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		BigDecimal b = (BigDecimal)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = e + "^(" + b + ")"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(14/*Expression*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // Expression ::= Expression PLUS 
            {
              String RESULT = null;
		int eleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		 RESULT = e + "+";            
              CUP$preparser$result = new java_cup.runtime.Symbol(14/*Expression*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // Expression ::= Expression ETOILE 
            {
              String RESULT = null;
		int eleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-1)).value;
		 RESULT = e + "*";            
              CUP$preparser$result = new java_cup.runtime.Symbol(14/*Expression*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // Expression ::= Expression POINT Expression 
            {
              String RESULT = null;
		int e1left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left;
		int e1right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).right;
		String e1 = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-2)).value;
		int e2left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int e2right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String e2 = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = e1 + "." + e2;      
              CUP$preparser$result = new java_cup.runtime.Symbol(14/*Expression*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // Expression ::= Expression OU Expression 
            {
              String RESULT = null;
		int e1left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left;
		int e1right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).right;
		String e1 = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-2)).value;
		int e2left = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int e2right = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String e2 = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		 RESULT = e1 + "|" + e2 ;     
              CUP$preparser$result = new java_cup.runtime.Symbol(14/*Expression*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // RationalDeclaration ::= 
            {
              Object RESULT = null;
		
             parser.done_parsing();
             parser.report_error("You must define a rational expression !","");
                      
              CUP$preparser$result = new java_cup.runtime.Symbol(7/*RationalDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // RationalDeclaration ::= EXPRESSION EQUALS 
            {
              Object RESULT = null;
		
             parser.done_parsing();
             parser.report_error("You must define a rational expression !","");
                      
              CUP$preparser$result = new java_cup.runtime.Symbol(7/*RationalDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // RationalDeclaration ::= EXPRESSION EQUALS Expression 
            {
              Object RESULT = null;
		int eleft = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).left;
		int eright = ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right;
		String e = (String)((java_cup.runtime.Symbol) CUP$preparser$stack.elementAt(CUP$preparser$top-0)).value;
		_tmpFichier += "EXPRESSION = "+e+"\n"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(7/*RationalDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // SymbolTypeDeclaration ::= 
            {
              Object RESULT = null;
		_tmpFichier+="SYMBOLS = WORDS\n";_isWord=true;   
              CUP$preparser$result = new java_cup.runtime.Symbol(6/*SymbolTypeDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // SymbolTypeDeclaration ::= SYMBOLS EQUALS LETTERS 
            {
              Object RESULT = null;
		_tmpFichier+="SYMBOLS = LETTERS\n";_isWord=false;
              CUP$preparser$result = new java_cup.runtime.Symbol(6/*SymbolTypeDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // SymbolTypeDeclaration ::= SYMBOLS EQUALS WORDS 
            {
              Object RESULT = null;
		_tmpFichier+="SYMBOLS = WORDS\n";_isWord=true;   
              CUP$preparser$result = new java_cup.runtime.Symbol(6/*SymbolTypeDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // LangagePrositeDeclaration ::= LANGUAGE EQUALS PROSITE 
            {
              Object RESULT = null;
		 _tmpFichier += "LANGUAGE = PROSITE\n"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(5/*LangagePrositeDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // LangageRationalDeclaration ::= LANGUAGE EQUALS RATIONAL 
            {
              Object RESULT = null;
		 _tmpFichier += "LANGUAGE = RATIONAL\n"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(4/*LangageRationalDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // RationalDescriptionSuite ::= LangagePrositeDeclaration SymbolTypeDeclaration PrositeDeclaration WeightsDeclaration AliasesDeclaration 
            {
              Object RESULT = null;
		 
              CUP$preparser$result = new java_cup.runtime.Symbol(2/*RationalDescriptionSuite*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-4)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // RationalDescriptionSuite ::= LangageRationalDeclaration SymbolTypeDeclaration RationalDeclaration WeightsDeclaration AliasesDeclaration 
            {
              Object RESULT = null;
		 
              CUP$preparser$result = new java_cup.runtime.Symbol(2/*RationalDescriptionSuite*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-4)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // TypeDeclaration ::= TYPE EQUALS RATIONAL 
            {
              Object RESULT = null;
		 _tmpFichier += "TYPE = RATIONAL\n"; 
              CUP$preparser$result = new java_cup.runtime.Symbol(3/*TypeDeclaration*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-2)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 1: // RationalDescription ::= TypeDeclaration RationalDescriptionSuite 
            {
              Object RESULT = null;
		 
              CUP$preparser$result = new java_cup.runtime.Symbol(1/*RationalDescription*/, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-1)).left, ((java_cup.runtime.Symbol)CUP$preparser$stack.elementAt(CUP$preparser$top-0)).right, RESULT);
            }
          return CUP$preparser$result;

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

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

        }
    }
}

