Package common.exec.z3

Source Code of common.exec.z3.Parser

//----------------------------------------------------
// The following code was generated by CUP v0.11a beta 20060608
// Tue Jan 28 21:08:59 EST 2014
//----------------------------------------------------

package common.exec.z3;

import java_cup.runtime.*;
import java.util.List;
import java.util.ArrayList;
import common.exec.*;
import common.model.Type;

/** CUP v0.11a beta 20060608 generated parser.
  * @version Tue Jan 28 21:08:59 EST 2014
  */
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\017\000\002\002\004\000\002\002\004\000\002\002" +
    "\003\000\002\003\006\000\002\003\003\000\002\003\003" +
    "\000\002\003\006\000\002\004\004\000\002\004\003\000" +
    "\002\005\012\000\002\006\003\000\002\006\003\000\002" +
    "\007\003\000\002\007\003\000\002\007\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\035\000\010\005\004\006\010\015\007\001\002\000" +
    "\012\002\ufffc\005\ufffc\006\ufffc\015\ufffc\001\002\000\004" +
    "\002\037\001\002\000\012\002\uffff\005\004\006\010\015" +
    "\007\001\002\000\006\004\012\013\011\001\002\000\012" +
    "\002\ufffd\005\ufffd\006\ufffd\015\ufffd\001\002\000\004\017" +
    "\034\001\002\000\004\015\014\001\002\000\006\015\014" +
    "\016\ufff9\001\002\000\004\014\017\001\002\000\004\016" +
    "\016\001\002\000\012\002\ufffb\005\ufffb\006\ufffb\015\ufffb" +
    "\001\002\000\004\020\020\001\002\000\004\015\021\001" +
    "\002\000\004\016\022\001\002\000\006\011\025\012\024" +
    "\001\002\000\010\007\027\010\030\021\026\001\002\000" +
    "\010\007\ufff7\010\ufff7\021\ufff7\001\002\000\010\007\ufff6" +
    "\010\ufff6\021\ufff6\001\002\000\004\016\ufff3\001\002\000" +
    "\004\016\ufff5\001\002\000\004\016\ufff4\001\002\000\004" +
    "\016\032\001\002\000\006\015\ufff8\016\ufff8\001\002\000" +
    "\004\016\ufffa\001\002\000\004\016\035\001\002\000\012" +
    "\002\ufffe\005\ufffe\006\ufffe\015\ufffe\001\002\000\004\002" +
    "\000\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\035\000\006\002\004\003\005\001\001\000\002\001" +
    "\001\000\002\001\001\000\006\002\035\003\005\001\001" +
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
    "\006\004\014\005\012\001\001\000\006\004\032\005\012" +
    "\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\006\022\001\001\000\004\007\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\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 0;}

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

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

}

/** 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 14: // val ::= NUM
            {
              Object RESULT =null;
    int v1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
    int v1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
    Integer v1 = (Integer)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
     RESULT = v1;
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("val",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // val ::= FALSE
            {
              Object RESULT =null;
     RESULT = false;
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("val",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // val ::= TRUE
            {
              Object RESULT =null;
     RESULT = true;
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("val",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // type ::= INT
            {
              Type RESULT =null;
     RESULT = Type.Int;
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("type",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // type ::= BOOL
            {
              Type RESULT =null;
     RESULT = Type.Bool;
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("type",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // assign ::= LB DEFINE ID LB RB type val RB
            {
              Assign RESULT =null;
    int a1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
    int a1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
    String a1 = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
    int a2left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
    int a2right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
    Object a2 = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
     RESULT = new Assign(a1, a2);
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("assign",3, ((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 8: // assigns ::= assign
            {
              List<Assign> RESULT =null;
    int a1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
    int a1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
    Assign a1 = (Assign)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
     RESULT = new ArrayList<Assign>();RESULT.add(a1);
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("assigns",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // assigns ::= assign assigns
            {
              List<Assign> RESULT =null;
    int a1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
    int a1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
    Assign a1 = (Assign)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
    int a2left = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
    int a2right = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
    List<Assign> a2 = (List<Assign>)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
     RESULT = a2; a2.add(a1);
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("assigns",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 6: // statement ::= LB MODEL assigns RB
            {
              Result RESULT =null;
    int s1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
    int s1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
    List<Assign> s1 = (List<Assign>)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
     RESULT = new AssignResult(s1);
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("statement",1, ((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 5: // statement ::= UNSAT
            {
              Result RESULT =null;
     RESULT = new SatResult(false);
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("statement",1, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // statement ::= SAT
            {
              Result RESULT =null;
     RESULT = new SatResult(true);
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("statement",1, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // statement ::= LB ERROR STRING RB
            {
              Result RESULT =null;
    int s1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
    int s1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
    String s1 = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
     RESULT = new ErrorResult(s1);
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("statement",1, ((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 2: // statements ::= statement
            {
              List<Result> RESULT =null;
    int s1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
    int s1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
    Result s1 = (Result)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
     RESULT = new ArrayList<Result>(); RESULT.add(s1);
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("statements",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
            }
          return CUP$Parser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 1: // statements ::= statement statements
            {
              List<Result> RESULT =null;
    int s1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
    int s1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
    Result s1 = (Result)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
    int s2left = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
    int s2right = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
    List<Result> s2 = (List<Result>)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
     RESULT = s2; s2.add(s1);
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("statements",0, ((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 0: // $START ::= statements 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;
    List<Result> start_val = (List<Result>)((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;

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

        }
    }
}
TOP

Related Classes of common.exec.z3.Parser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.