gt: 						RESULT = PoolOfLiterals.get(Symbol.symbol(""+id));
context: 
  //----------------------------------------------------
  // The following code was generated by CUP v0.11a beta 20060608
  // Tue Jul 28 23:21:11 BRT 2015
  //----------------------------------------------------
  
  package eqn2spice.parser;
  
  import java_cup.runtime.*;
  import java.util.*;
  import eqn2spice.abstractSyntax.*;
  
  /** CUP v0.11a beta 20060608 generated parser.
    * @version Tue Jul 28 23:21:11 BRT 2015
    */
  public class Analizador extends java_cup.runtime.lr_parser {
  
    /** Default constructor. */
    public Analizador() {super();}
  
    /** Constructor which sets the default scanner. */
    public Analizador(java_cup.runtime.Scanner s) {super(s);}
  
    /** Constructor which sets the default scanner. */
    public Analizador(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);}
  
    /** Production table. */
    protected static final short _production_table[][] = 
      unpackFromStrings(new String[] {
      "\000\021\000\002\002\004\000\002\002\005\000\002\003" +
      "\006\000\002\004\004\000\002\004\003\000\002\005\006" +
      "\000\002\006\010\000\002\006\006\000\002\007\005\000" +
      "\002\007\003\000\002\010\005\000\002\010\003\000\002" +
      "\011\004\000\002\011\004\000\002\011\003\000\002\012" +
      "\005\000\002\012\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\050\000\004\004\006\001\002\000\004\005\016\001" +
      "\002\000\004\002\014\001\002\000\004\017\007\001\002" +
      "\000\004\020\010\001\002\000\006\012\ufffd\020\010\001" +
      "\002\000\004\012\012\001\002\000\004\005\uffff\001\002" +
      "\000\004\012\ufffe\001\002\000\004\002\001\001\002\000" +
      "\006\010\024\020\022\001\002\000\004\017\017\001\002" +
      "\000\004\020\010\001\002\000\004\012\021\001\002\000" +
      "\006\010\ufffc\020\ufffc\001\002\000\004\017\050\001\002" +
      "\000\004\002\000\001\002\000\004\020\025\001\002\000" +
      "\004\011\026\001\002\000\004\017\027\001\002\000\010" +
      "\006\036\013\035\020\034\001\002\000\014\007\ufff3\012" +
      "\ufff3\014\047\015\ufff3\016\ufff3\001\002\000\012\007\ufff6" +
      "\012\ufff6\015\ufff6\016\ufff6\001\002\000\012\007\ufff8\012" +
      "\ufff8\015\ufff8\016\043\001\002\000\006\012\046\015\041" +
      "\001\002\000\014\007\ufff1\012\ufff1\014\ufff1\015\ufff1\016" +
      "\ufff1\001\002\000\006\006\036\020\034\001\002\000\010" +
      "\006\036\013\035\020\034\001\002\000\006\007\040\015" +
      "\041\001\002\000\014\007\ufff2\012\ufff2\014\ufff2\015\ufff2" +
      "\016\ufff2\001\002\000\010\006\036\013\035\020\034\001" +
      "\002\000\012\007\ufff9\012\ufff9\015\ufff9\016\043\001\002" +
      "\000\010\006\036\013\035\020\034\001\002\000\012\007" +
      "\ufff7\012\ufff7\015\ufff7\016\ufff7\001\002\000\012\007\ufff5" +
      "\012\ufff5\015\ufff5\016\ufff5\001\002\000\004\002\ufffb\001" +
      "\002\000\012\007\ufff4\012\ufff4\015\ufff4\016\ufff4\001\002" +
      "\000\010\006\036\013\035\020\034\001\002\000\006\012" +
      "\052\015\041\001\002\000\004\002\ufffa\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\050\000\006\002\004\003\003\001\001\000\004\005" +
      "\014\001\001\000\002\001\001\000\002\001\001\000\004" +
      "\004\010\001\001\000\004\004\012\001\001\000\002\001" +
      "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
      "\000\004\006\022\001\001\000\002\001\001\000\004\004" +
      "\017\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\012\007\032\010\031\011\030" +
      "\012\027\001\001\000\002\001\001\000\002\001\001\000" +
      "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
      "\012\044\001\001\000\012\007\036\010\031\011\030\012" +
      "\027\001\001\000\002\001\001\000\002\001\001\000\010" +
      "\010\041\011\030\012\027\001\001\000\002\001\001\000" +
      "\006\011\043\012\027\001\001\000\002\001\001\000\002" +
      "\001\001\000\002\001\001\000\002\001\001\000\012\007" +
      "\050\010\031\011\030\012\027\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$Analizador$actions action_obj;
  
    /** Action encapsulation object initializer. */
    protected void init_actions()
      {
        action_obj = new CUP$Analizador$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$Analizador$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;}
  
  
  
      
      /* Change the method report_error so it will display the line and
         column of where the error occurred in the input as well as the
         reason for the error which is passed into the method in the
         String 'message'. */
      public void report_error(String message, Object info) {
     
          /* Create a StringBuffer called 'm' with the string 'Error' in it. */
          StringBuffer m = new StringBuffer("Error");
     
          /* Check if the information passed to the method is the same
             type as the type java_cup.runtime.Symbol. */
          if (info instanceof java_cup.runtime.Symbol) {
              /* Declare a java_cup.runtime.Symbol object 's' with the
                 information in the object info that is being typecasted
                 as a java_cup.runtime.Symbol object. */
              java_cup.runtime.Symbol s = ((java_cup.runtime.Symbol) info);
     
              /* Check if the line number in the input is greater or
                 equal to zero. */
              if (s.left >= 0) {                
                  /* Add to the end of the StringBuffer error message
                     the line number of the error in the input. */
                  m.append(" in line "+(s.left+1));   
                  /* Check if the column number in the input is greater
                     or equal to zero. */
                  if (s.right >= 0)
                      /* Add to the end of the StringBuffer error message
                         the column number of the error in the input. */
                      m.append(", column "+(s.right+1));
              }
          }
     
          /* Add to the end of the StringBuffer error message created in
             this method the message that was passed into this method. */
          m.append(" : "+message);
     
          /* Print the contents of the StringBuffer 'm', which contains
             an error message, out on a line. */
          System.err.println(m);
      }
     
      /* Change the method report_fatal_error so when it reports a fatal
         error it will display the line and column number of where the
         fatal error occurred in the input as well as the reason for the
         fatal error which is passed into the method in the object
         'message' and then exit.*/
      public void report_fatal_error(String message, Object info) {
          report_error(message, info);
          System.exit(1);
      }
  
  }
  
  /** Cup generated class to encapsulate user supplied action code.*/
  class CUP$Analizador$actions {
    private final Analizador parser;
  
    /** Constructor */
    CUP$Analizador$actions(Analizador parser) {
      this.parser = parser;
    }
  
    /** Method with the actual generated action code. */
    public final java_cup.runtime.Symbol CUP$Analizador$do_action(
      int                        CUP$Analizador$act_num,
      java_cup.runtime.lr_parser CUP$Analizador$parser,
      java.util.Stack            CUP$Analizador$stack,
      int                        CUP$Analizador$top)
      throws java.lang.Exception
      {
        /* Symbol object for return from actions */
        java_cup.runtime.Symbol CUP$Analizador$result;
  
        /* select the action based on the action number */
        switch (CUP$Analizador$act_num)
          {
            /*. . . . . . . . . . . . . . . . . . . .*/
            case 16: // expr_3 ::= IDENTIFIER 
              {
                Expression RESULT =null;
  		int idleft = ((java_cup.runtime.Symbol)CUP$Analizador$stack.peek()).left;
  		int idright = ((java_cup.runtime.Symbol)CUP$Analizador$stack.peek()).right;
  		Object id = (Object)((java_cup.runtime.Symbol) CUP$Analizador$stack.peek()).value;
  		
  