⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parser.java

📁 用Java实现的编译器。把源代码编译成SPARC汇编程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
//----------------------------------------------------// The following code was generated by CUP v0.10k// Sun Jul 25 13:36:02 EDT 1999//----------------------------------------------------package java_cup.simple_calc;import java_cup.runtime.*;/** CUP v0.10k generated parser.  * @version Sun Jul 25 13:36:02 EDT 1999  */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);}  /** Production table. */  protected static final short _production_table[][] =     unpackFromStrings(new String[] {    "\000\015\000\002\003\004\000\002\002\004\000\002\003" +    "\003\000\002\006\002\000\002\004\005\000\002\005\005" +    "\000\002\005\005\000\002\005\005\000\002\005\005\000" +    "\002\005\005\000\002\005\003\000\002\005\004\000\002" +    "\005\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\030\000\010\006\004\013\011\015\005\001\002\000" +    "\010\006\004\013\011\015\005\001\002\000\020\004\ufff7" +    "\005\ufff7\006\ufff7\007\ufff7\010\ufff7\011\ufff7\014\ufff7\001" +    "\002\000\012\002\uffff\006\uffff\013\uffff\015\uffff\001\002" +    "\000\016\004\ufffe\005\016\006\014\007\020\010\017\011" +    "\013\001\002\000\012\002\027\006\004\013\011\015\005" +    "\001\002\000\010\006\004\013\011\015\005\001\002\000" +    "\016\005\016\006\014\007\020\010\017\011\013\014\015" +    "\001\002\000\010\006\004\013\011\015\005\001\002\000" +    "\010\006\004\013\011\015\005\001\002\000\020\004\ufff5" +    "\005\ufff5\006\ufff5\007\ufff5\010\ufff5\011\ufff5\014\ufff5\001" +    "\002\000\010\006\004\013\011\015\005\001\002\000\010" +    "\006\004\013\011\015\005\001\002\000\010\006\004\013" +    "\011\015\005\001\002\000\020\004\ufffa\005\ufffa\006\ufffa" +    "\007\ufffa\010\ufffa\011\ufffa\014\ufffa\001\002\000\020\004" +    "\ufff9\005\ufff9\006\ufff9\007\ufff9\010\ufff9\011\ufff9\014\ufff9" +    "\001\002\000\020\004\ufffc\005\ufffc\006\ufffc\007\020\010" +    "\017\011\013\014\ufffc\001\002\000\020\004\ufffb\005\ufffb" +    "\006\ufffb\007\020\010\017\011\013\014\ufffb\001\002\000" +    "\020\004\ufff8\005\ufff8\006\ufff8\007\ufff8\010\ufff8\011\ufff8" +    "\014\ufff8\001\002\000\012\002\001\006\001\013\001\015" +    "\001\001\002\000\004\002\000\001\002\000\004\004\031" +    "\001\002\000\012\002\ufffd\006\ufffd\013\ufffd\015\ufffd\001" +    "\002\000\020\004\ufff6\005\ufff6\006\ufff6\007\ufff6\010\ufff6" +    "\011\ufff6\014\ufff6\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\030\000\010\003\007\004\005\005\006\001\001\000" +    "\004\005\031\001\001\000\002\001\001\000\002\001\001" +    "\000\004\006\027\001\001\000\006\004\025\005\006\001" +    "\001\000\004\005\011\001\001\000\002\001\001\000\004" +    "\005\024\001\001\000\004\005\023\001\001\000\002\001" +    "\001\000\004\005\022\001\001\000\004\005\021\001\001" +    "\000\004\005\020\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;}}/** 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 12: // expr ::= LPAREN expr RPAREN             {              Integer RESULT = null;		int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;		int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;		Integer e = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;		 RESULT = e;               CUP$parser$result = new java_cup.runtime.Symbol(3/*expr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 11: // expr ::= MINUS expr             {              Integer RESULT = null;		int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Integer e = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new Integer(0 - e.intValue());               CUP$parser$result = new java_cup.runtime.Symbol(3/*expr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -