
//----------------------------------------------------
// The following code was generated by CUP v0.11a beta 20060608
// Sun Nov 29 21:18:16 CET 2009
//----------------------------------------------------

package ppdz;

import java_cup.runtime.*;
import java.io.*;

/** CUP v0.11a beta 20060608 generated parser.
  * @version Sun Nov 29 21:18:16 CET 2009
  */
public class parser extends java_cup.runtime.lr_parser {

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

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

  /** Constructor which sets the default scanner. */
  public parser(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\075\000\002\002\010\000\002\002\004\000\002\036" +
    "\003\000\002\003\004\000\002\003\002\000\002\033\003" +
    "\000\002\033\003\000\002\011\010\000\002\034\003\000" +
    "\002\006\003\000\002\006\003\000\002\005\005\000\002" +
    "\007\005\000\002\007\003\000\002\010\003\000\002\010" +
    "\005\000\002\022\004\000\002\022\002\000\002\004\004" +
    "\000\002\004\002\000\002\037\004\000\002\037\004\000" +
    "\002\012\012\000\002\013\003\000\002\013\002\000\002" +
    "\032\005\000\002\032\003\000\002\015\004\000\002\015" +
    "\006\000\002\014\004\000\002\014\002\000\002\016\006" +
    "\000\002\016\006\000\002\016\007\000\002\016\004\000" +
    "\002\016\005\000\002\016\007\000\002\016\004\000\002" +
    "\017\003\000\002\035\006\000\002\035\003\000\002\023" +
    "\003\000\002\023\003\000\002\024\003\000\002\024\003" +
    "\000\002\021\003\000\002\025\005\000\002\025\003\000" +
    "\002\020\003\000\002\026\005\000\002\026\003\000\002" +
    "\027\003\000\002\031\005\000\002\031\003\000\002\031" +
    "\004\000\002\030\006\000\002\030\003\000\002\030\005" +
    "\000\002\030\003\000\002\030\003\000\002\030\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\154\000\004\021\005\001\002\000\004\002\156\001" +
    "\002\000\004\030\007\001\002\000\010\017\ufffd\025\ufffd" +
    "\030\ufffd\001\002\000\010\017\uffff\025\uffff\030\uffff\001" +
    "\002\000\010\017\011\025\016\030\015\001\002\000\010" +
    "\020\uffee\024\uffee\030\uffee\001\002\000\010\017\ufffc\025" +
    "\ufffc\030\ufffc\001\002\000\010\017\ufffe\025\ufffe\030\ufffe" +
    "\001\002\000\004\030\030\001\002\000\004\030\ufff9\001" +
    "\002\000\004\030\015\001\002\000\010\017\ufffb\025\ufffb" +
    "\030\ufffb\001\002\000\004\030\021\001\002\000\004\010" +
    "\022\001\002\000\006\026\023\027\024\001\002\000\004" +
    "\011\ufff8\001\002\000\004\011\ufff7\001\002\000\004\011" +
    "\026\001\002\000\010\017\ufffa\025\ufffa\030\ufffa\001\002" +
    "\000\006\011\035\012\034\001\002\000\010\011\ufff3\012" +
    "\ufff3\015\032\001\002\000\006\011\ufff4\012\ufff4\001\002" +
    "\000\004\016\033\001\002\000\006\011\ufff2\012\ufff2\001" +
    "\002\000\004\030\030\001\002\000\010\017\ufff6\025\ufff6" +
    "\030\ufff6\001\002\000\006\011\ufff5\012\ufff5\001\002\000" +
    "\010\020\043\024\044\030\015\001\002\000\010\020\uffef" +
    "\024\uffef\030\uffef\001\002\000\004\013\047\001\002\000" +
    "\004\030\046\001\002\000\004\002\001\001\002\000\004" +
    "\030\045\001\002\000\004\013\uffec\001\002\000\004\013" +
    "\uffed\001\002\000\006\014\uffe9\030\015\001\002\000\004" +
    "\030\153\001\002\000\004\014\056\001\002\000\006\012" +
    "\054\014\uffea\001\002\000\006\012\uffe7\014\uffe7\001\002" +
    "\000\004\030\015\001\002\000\006\012\uffe8\014\uffe8\001" +
    "\002\000\006\017\ufff0\030\ufff0\001\002\000\006\017\060" +
    "\030\015\001\002\000\014\003\uffe3\020\uffe3\022\uffe3\023" +
    "\uffe3\030\uffe3\001\002\000\006\017\ufff1\030\ufff1\001\002" +
    "\000\014\003\067\020\071\022\064\023\066\030\072\001" +
    "\002\000\006\010\142\013\143\001\002\000\004\013\136" +
    "\001\002\000\030\004\uffdb\005\uffdb\006\uffdb\007\uffdb\010" +
    "\uffdb\011\uffdb\012\uffdb\013\uffdb\014\uffdb\015\133\016\uffdb" +
    "\001\002\000\016\005\074\011\100\013\106\026\075\027" +
    "\101\030\072\001\002\000\004\011\073\001\002\000\014" +
    "\003\uffe4\020\uffe4\022\uffe4\023\uffe4\030\uffe4\001\002\000" +
    "\010\020\uffeb\024\uffeb\030\uffeb\001\002\000\030\004\uffd9" +
    "\005\uffd9\006\uffd9\007\uffd9\010\uffd9\011\uffd9\012\uffd9\013" +
    "\uffd9\014\uffd9\015\uffd9\016\uffd9\001\002\000\014\003\uffdc" +
    "\020\uffdc\022\uffdc\023\uffdc\030\uffdc\001\002\000\012\013" +
    "\106\026\075\027\101\030\072\001\002\000\022\004\uffc7" +
    "\005\uffc7\006\uffc7\007\uffc7\011\uffc7\012\uffc7\014\uffc7\016" +
    "\uffc7\001\002\000\016\004\uffcf\005\uffcf\011\uffcf\012\uffcf" +
    "\014\uffcf\016\uffcf\001\002\000\024\004\uffc9\005\uffc9\006" +
    "\uffc9\007\uffc9\011\uffc9\012\uffc9\013\122\014\uffc9\016\uffc9" +
    "\001\002\000\014\003\uffdf\020\uffdf\022\uffdf\023\uffdf\030" +
    "\uffdf\001\002\000\022\004\uffc6\005\uffc6\006\uffc6\007\uffc6" +
    "\011\uffc6\012\uffc6\014\uffc6\016\uffc6\001\002\000\016\004" +
    "\117\005\120\011\uffd1\012\uffd1\014\uffd1\016\uffd1\001\002" +
    "\000\022\004\uffcc\005\uffcc\006\uffcc\007\uffcc\011\uffcc\012" +
    "\uffcc\014\uffcc\016\uffcc\001\002\000\022\004\uffce\005\uffce" +
    "\006\114\007\113\011\uffce\012\uffce\014\uffce\016\uffce\001" +
    "\002\000\004\011\111\001\002\000\014\005\074\013\106" +
    "\026\075\027\101\030\072\001\002\000\004\014\110\001" +
    "\002\000\022\004\uffc5\005\uffc5\006\uffc5\007\uffc5\011\uffc5" +
    "\012\uffc5\014\uffc5\016\uffc5\001\002\000\014\003\uffde\020" +
    "\uffde\022\uffde\023\uffde\030\uffde\001\002\000\012\013\106" +
    "\026\075\027\101\030\072\001\002\000\012\013\uffd5\026" +
    "\uffd5\027\uffd5\030\uffd5\001\002\000\012\013\uffd6\026\uffd6" +
    "\027\uffd6\030\uffd6\001\002\000\022\004\uffcd\005\uffcd\006" +
    "\uffcd\007\uffcd\011\uffcd\012\uffcd\014\uffcd\016\uffcd\001\002" +
    "\000\014\005\074\013\106\026\075\027\101\030\072\001" +
    "\002\000\014\005\uffd8\013\uffd8\026\uffd8\027\uffd8\030\uffd8" +
    "\001\002\000\014\005\uffd7\013\uffd7\026\uffd7\027\uffd7\030" +
    "\uffd7\001\002\000\016\004\uffd0\005\uffd0\011\uffd0\012\uffd0" +
    "\014\uffd0\016\uffd0\001\002\000\016\005\074\013\106\014" +
    "\124\026\075\027\101\030\072\001\002\000\006\012\130" +
    "\014\uffd4\001\002\000\022\004\uffc8\005\uffc8\006\uffc8\007" +
    "\uffc8\011\uffc8\012\uffc8\014\uffc8\016\uffc8\001\002\000\006" +
    "\012\uffd2\014\uffd2\001\002\000\004\014\127\001\002\000" +
    "\022\004\uffca\005\uffca\006\uffca\007\uffca\011\uffca\012\uffca" +
    "\014\uffca\016\uffca\001\002\000\014\005\074\013\106\026" +
    "\075\027\101\030\072\001\002\000\006\012\uffd3\014\uffd3" +
    "\001\002\000\022\004\uffcb\005\uffcb\006\uffcb\007\uffcb\011" +
    "\uffcb\012\uffcb\014\uffcb\016\uffcb\001\002\000\014\005\074" +
    "\013\106\026\075\027\101\030\072\001\002\000\004\016" +
    "\135\001\002\000\030\004\uffda\005\uffda\006\uffda\007\uffda" +
    "\010\uffda\011\uffda\012\uffda\013\uffda\014\uffda\015\uffda\016" +
    "\uffda\001\002\000\014\005\074\013\106\026\075\027\101" +
    "\030\072\001\002\000\004\014\140\001\002\000\004\011" +
    "\141\001\002\000\014\003\uffdd\020\uffdd\022\uffdd\023\uffdd" +
    "\030\uffdd\001\002\000\014\005\074\013\106\026\075\027" +
    "\101\030\072\001\002\000\016\005\074\013\106\014\144" +
    "\026\075\027\101\030\072\001\002\000\004\011\150\001" +
    "\002\000\004\014\146\001\002\000\004\011\147\001\002" +
    "\000\014\003\uffe0\020\uffe0\022\uffe0\023\uffe0\030\uffe0\001" +
    "\002\000\014\003\uffe1\020\uffe1\022\uffe1\023\uffe1\030\uffe1" +
    "\001\002\000\004\011\152\001\002\000\014\003\uffe2\020" +
    "\uffe2\022\uffe2\023\uffe2\030\uffe2\001\002\000\010\012\uffe6" +
    "\014\uffe6\015\154\001\002\000\004\016\155\001\002\000" +
    "\006\012\uffe5\014\uffe5\001\002\000\004\002\000\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\154\000\004\002\003\001\001\000\002\001\001\000" +
    "\004\036\005\001\001\000\004\003\007\001\001\000\002" +
    "\001\001\000\012\005\016\011\011\033\012\034\013\001" +
    "\001\000\004\004\036\001\001\000\002\001\001\000\002" +
    "\001\001\000\006\007\026\010\030\001\001\000\002\001" +
    "\001\000\004\034\017\001\001\000\002\001\001\000\002" +
    "\001\001\000\002\001\001\000\004\006\024\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\010\035" +
    "\001\001\000\002\001\001\000\002\001\001\000\010\012" +
    "\037\034\041\037\040\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\013\050" +
    "\015\052\032\051\034\047\001\001\000\002\001\001\000" +
    "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
    "\015\054\034\047\001\001\000\002\001\001\000\004\022" +
    "\056\001\001\000\006\005\060\034\013\001\001\000\004" +
    "\014\061\001\001\000\002\001\001\000\010\016\067\017" +
    "\062\035\064\001\001\000\002\001\001\000\002\001\001" +
    "\000\002\001\001\000\020\017\076\020\104\026\101\027" +
    "\075\030\102\031\103\035\064\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\010\017\076\030\131\035\064\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\002\001\001\000\004\023\115\001\001" +
    "\000\002\001\001\000\004\024\111\001\001\000\002\001" +
    "\001\000\020\017\076\020\106\026\101\027\075\030\102" +
    "\031\103\035\064\001\001\000\002\001\001\000\002\001" +
    "\001\000\002\001\001\000\010\017\076\030\114\035\064" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001\000\014\017\076\027\120\030\102\031\103\035\064" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001\000\024\017\076\020\124\021\125\025\122\026\101" +
    "\027\075\030\102\031\103\035\064\001\001\000\002\001" +
    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
    "\000\002\001\001\000\020\017\076\020\130\026\101\027" +
    "\075\030\102\031\103\035\064\001\001\000\002\001\001" +
    "\000\002\001\001\000\020\017\076\020\133\026\101\027" +
    "\075\030\102\031\103\035\064\001\001\000\002\001\001" +
    "\000\002\001\001\000\020\017\076\020\136\026\101\027" +
    "\075\030\102\031\103\035\064\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\020\017\076\020" +
    "\150\026\101\027\075\030\102\031\103\035\064\001\001" +
    "\000\024\017\076\020\124\021\144\025\122\026\101\027" +
    "\075\030\102\031\103\035\064\001\001\000\002\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
    "\001" });

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

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

  /** Action encapsulation object initializer. */
  protected void init_actions()
    {
      action_obj = new CUP$parser$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$parser$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;}


  /** User initialization code. */
  public void user_init() throws java.lang.Exception
    {
 greska=false; 
    }


        
    // sluzi da na kraju parsiranja znamo da li su se pojavljivale
    // greske tokom parsiranja
    boolean greska; 
    
    // glavni program, kao metod klase parser
    public static void main(String args[]) throws Exception {
        FileReader r = new FileReader(args[0]);
        Yylex skener = new Yylex(r);
        parser p = new parser(skener);
        Symbol s = p.parse();  //pocetak parsiranja
        if (p.greska) System.out.println("Ulazni program ima gresaka!");
        else System.out.println("Parsiranje uspesno zavrseno!");
    }
  
    /***********************************************************************
    * slede redefinisani metodi za prijavu gresaka radi izmene teksta poruke
    ***********************************************************************/ 
    public void report_fatal_error(String message, Object   info) throws java.lang.Exception {
      done_parsing();
      report_error(message, info);
    }
  
    public void syntax_error(Symbol cur_token) {
        report_error("\nSintaksna greska", cur_token);
    }
  
    public void unrecovered_syntax_error(Symbol cur_token) throws java.lang.Exception {
        report_fatal_error("Fatalna greska, parsiranje se ne moze nastaviti", cur_token);
    }

  public void report_error(String message, Object info)
    {
      greska=true;
      System.err.print(message);
      System.err.flush();
      if (info instanceof Symbol)
          System.err.println(" na liniji " + ((Symbol)info).left);
      else System.err.println("");
    }


}

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

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

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

      /* select the action based on the action number */
      switch (CUP$parser$act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // factor ::= LPAREN expr RPAREN 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",22, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // factor ::= CHARCONST 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // factor ::= NUMBER 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // factor ::= designator LPAREN RPAREN 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",22, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // factor ::= designator 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // factor ::= designator LPAREN act_pars RPAREN 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",22, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // factor_list ::= MINUS factor 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("factor_list",23, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // factor_list ::= factor 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("factor_list",23, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // factor_list ::= factor_list mulop factor 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("factor_list",23, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // term ::= factor_list 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("term",21, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // term_list ::= term 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("term_list",20, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // term_list ::= term_list addop term 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("term_list",20, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // expr ::= term_list 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("expr",14, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // expr_list ::= expr 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("expr_list",19, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // expr_list ::= expr_list COMMA expr 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("expr_list",19, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // act_pars ::= expr_list 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("act_pars",15, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // mulop ::= DIV 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("mulop",18, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // mulop ::= TIMES 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("mulop",18, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // addop ::= MINUS 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("addop",17, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // addop ::= PLUS 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("addop",17, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // ident_expr_list ::= IDENT 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("ident_expr_list",27, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // ident_expr_list ::= ident_expr_list LSQUARE expr RSQUARE 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("ident_expr_list",27, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // designator ::= ident_expr_list 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("designator",13, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // statement ::= error SEMI 
            {
              Object RESULT =null;
		int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left;
		int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right;
		Object l = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
		 parser.report_error("Izvrsen oporavak do ; u liniji "+lleft,null); 
              CUP$parser$result = parser.getSymbolFactory().newSymbol("statement",12, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // statement ::= PRINT LPAREN expr RPAREN SEMI 
            {
              Object RESULT =null;
		int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left;
		int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right;
		Object l = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
		 System.out.println("Pronadjen poziv metode print na liniji "+lleft); 
              CUP$parser$result = parser.getSymbolFactory().newSymbol("statement",12, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // statement ::= RETURN expr SEMI 
            {
              Object RESULT =null;
		int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Object l = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		 System.out.println("Pronadjen return iskaz na liniji "+lleft); 
              CUP$parser$result = parser.getSymbolFactory().newSymbol("statement",12, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // statement ::= RETURN SEMI 
            {
              Object RESULT =null;
		int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
		int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
		Object l = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
		 System.out.println("Pronadjen prazan return iskaz na liniji "+lleft); 
              CUP$parser$result = parser.getSymbolFactory().newSymbol("statement",12, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // statement ::= designator LPAREN act_pars RPAREN SEMI 
            {
              Object RESULT =null;
		int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;
		int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;
		Object l = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
		 System.out.println("Pronadjen poziv metode sa argumentima na liniji "+lleft); 
              CUP$parser$result = parser.getSymbolFactory().newSymbol("statement",12, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // statement ::= designator LPAREN RPAREN SEMI 
            {
              Object RESULT =null;
		int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Object l = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		 System.out.println("Pronadjen poziv metode bez argumenata na liniji "+lleft); 
              CUP$parser$result = parser.getSymbolFactory().newSymbol("statement",12, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // statement ::= designator EQUAL expr SEMI 
            {
              Object RESULT =null;
		int lleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int lright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		Object l = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
		 System.out.println("Pronadjen izraz dodele na liniji "+lleft); 
              CUP$parser$result = parser.getSymbolFactory().newSymbol("statement",12, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // stmt_list ::= 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt_list",10, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // stmt_list ::= stmt_list statement 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt_list",10, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // parameter ::= type IDENT LSQUARE RSQUARE 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("parameter",11, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // parameter ::= type IDENT 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("parameter",11, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // parameter_list ::= parameter 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("parameter_list",24, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // parameter_list ::= parameter_list COMMA parameter 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("parameter_list",24, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // form_pars ::= 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("form_pars",9, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // form_pars ::= parameter_list 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("form_pars",9, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // method_dec ::= return_type_ident LPAREN form_pars RPAREN local_var_list LBRACE stmt_list RBRACE 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("method_dec",8, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // return_type_ident ::= VOID IDENT 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("return_type_ident",29, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // return_type_ident ::= type IDENT 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("return_type_ident",29, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // method_declaration_list ::= 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("method_declaration_list",2, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // method_declaration_list ::= method_declaration_list method_dec 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("method_declaration_list",2, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // local_var_list ::= 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("local_var_list",16, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // local_var_list ::= local_var_list var_dec 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("local_var_list",16, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // var_part ::= IDENT LSQUARE RSQUARE 
            {
              Object RESULT =null;
		int idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
		int idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
		String id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("var_part",6, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // var_part ::= IDENT 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("var_part",6, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // var_list ::= var_part 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("var_list",5, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // var_list ::= var_list COMMA var_part 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("var_list",5, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // var_dec ::= type var_list SEMI 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("var_dec",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // rhs ::= CHARCONST 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("rhs",4, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // rhs ::= NUMBER 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("rhs",4, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // type ::= IDENT 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("type",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // const_dec ::= FINAL type IDENT EQUAL rhs SEMI 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("const_dec",7, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // declaration_part ::= var_dec 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("declaration_part",25, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // declaration_part ::= const_dec 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("declaration_part",25, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // declaration_list ::= 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("declaration_list",1, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // declaration_list ::= declaration_list declaration_part 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("declaration_list",1, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // prog_id ::= IDENT 
            {
              Object RESULT =null;
		int idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left;
		int idright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right;
		String id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
		 System.out.println("Pronadjena glavna klasa: "+id+" na liniji "+idleft); 
              CUP$parser$result = parser.getSymbolFactory().newSymbol("prog_id",28, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 0: // program ::= CLASS prog_id declaration_list LBRACE method_declaration_list RBRACE 
            {
              Object RESULT =null;

              CUP$parser$result = parser.getSymbolFactory().newSymbol("program",0, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT);
            }
          return CUP$parser$result;

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

        }
    }
}

