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

📄 grammarparser.java

📁 SkipOOMiniJOOL教学语言的编译器前端
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
//----------------------------------------------------// The following code was generated by CUP v0.10k TUM Edition 20050516// Mon Jun 04 16:31:27 CST 2007//----------------------------------------------------package edu.ustc.cs.minijool.lab3parser;import java.util.*;import java_cup.runtime.*;import edu.ustc.cs.minijool.parser.ast.*;/** CUP v0.10k TUM Edition 20050516 generated parser.  * @version Mon Jun 04 16:31:27 CST 2007  */public class GrammarParser extends java_cup.runtime.lr_parser {  /** Default constructor. */  public GrammarParser() {super();}  /** Constructor which sets the default scanner. */  public GrammarParser(java_cup.runtime.Scanner s) {super(s);}  /** Production table. */  protected static final short _production_table[][] =     unpackFromStrings(new String[] {    "\000\031\000\002\002\004\000\002\003\005\000\002\004" +    "\002\000\002\004\004\000\002\005\002\000\002\005\004" +    "\000\002\006\002\000\002\006\003\000\002\007\003\000" +    "\002\007\004\000\002\010\006\000\002\011\003\000\002" +    "\012\003\000\002\012\005\000\002\013\003\000\002\013" +    "\004\000\002\014\003\000\002\014\003\000\002\014\003" +    "\000\002\015\003\000\002\015\004\000\002\016\003\000" +    "\002\016\004\000\002\017\003\000\002\017\004" });  /** Access to production table. */  public short[][] production_table() {return _production_table;}  /** Parse-action table. */  protected static final short[][] _action_table =     unpackFromStrings(new String[] {    "\000\040\000\012\002\uffff\004\006\005\uffff\013\uffff\001" +    "\002\000\004\002\042\001\002\000\010\002\ufffd\005\010" +    "\013\ufffd\001\002\000\004\014\007\001\002\000\010\002" +    "\ufffe\005\ufffe\013\ufffe\001\002\000\004\014\041\001\002" +    "\000\006\002\ufffb\013\013\001\002\000\006\002\ufffa\013" +    "\013\001\002\000\004\010\ufff6\001\002\000\004\010\017" +    "\001\002\000\004\002\000\001\002\000\006\002\ufff9\013" +    "\ufff9\001\002\000\010\006\020\012\024\013\022\001\002" +    "\000\016\006\uffea\007\uffea\011\uffea\012\uffea\013\uffea\014" +    "\037\001\002\000\006\007\035\011\034\001\002\000\016" +    "\006\uffec\007\uffec\011\uffec\012\uffec\013\uffec\014\033\001" +    "\002\000\014\006\020\007\ufff5\011\ufff5\012\024\013\022" +    "\001\002\000\016\006\uffee\007\uffee\011\uffee\012\uffee\013" +    "\uffee\014\031\001\002\000\014\006\ufff0\007\ufff0\011\ufff0" +    "\012\ufff0\013\ufff0\001\002\000\014\006\uffef\007\uffef\011" +    "\uffef\012\uffef\013\uffef\001\002\000\014\006\ufff1\007\ufff1" +    "\011\ufff1\012\ufff1\013\ufff1\001\002\000\014\006\ufff3\007" +    "\ufff3\011\ufff3\012\ufff3\013\ufff3\001\002\000\014\006\uffed" +    "\007\uffed\011\uffed\012\uffed\013\uffed\001\002\000\014\006" +    "\ufff2\007\ufff2\011\ufff2\012\ufff2\013\ufff2\001\002\000\014" +    "\006\uffeb\007\uffeb\011\uffeb\012\uffeb\013\uffeb\001\002\000" +    "\006\002\ufff7\013\ufff7\001\002\000\010\006\020\012\024" +    "\013\022\001\002\000\014\006\020\007\ufff4\011\ufff4\012" +    "\024\013\022\001\002\000\014\006\uffe9\007\uffe9\011\uffe9" +    "\012\uffe9\013\uffe9\001\002\000\006\002\ufff8\013\ufff8\001" +    "\002\000\006\002\ufffc\013\ufffc\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\040\000\006\003\003\004\004\001\001\000\002\001" +    "\001\000\004\005\010\001\001\000\002\001\001\000\002" +    "\001\001\000\002\001\001\000\012\006\014\007\011\010" +    "\015\011\013\001\001\000\006\010\037\011\013\001\001" +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +    "\002\001\001\000\016\012\020\013\022\014\027\015\026" +    "\016\024\017\025\001\001\000\002\001\001\000\002\001" +    "\001\000\002\001\001\000\012\014\031\015\026\016\024" +    "\017\025\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\014\013\035\014\027\015\026\016\024\017\025" +    "\001\001\000\012\014\031\015\026\016\024\017\025\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$GrammarParser$actions action_obj;  /** Action encapsulation object initializer. */  protected void init_actions()    {      action_obj = new CUP$GrammarParser$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$GrammarParser$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;}
	public static Spec parse(String file) {
		Scanner scanner = null;
		GrammarParser parser = null;
        try {
          scanner = new Scanner( new java.io.FileReader(file) );
          parser = new GrammarParser(scanner);
          parser.parse();
        }
        catch (java.io.FileNotFoundException e) {
          System.out.println("File not found : \""+file+"\"");
        }
        catch (java.io.IOException e) {
          System.out.println("IO error scanning file \""+file+"\"");
          System.out.println(e);
        }
        catch (Exception e) {
          System.out.println("Unexpected exception:");
          e.printStackTrace();
        }
        return parser.action_obj.getSpec();
	}
}/** Cup generated class to encapsulate user supplied action code.*/class CUP$GrammarParser$actions {
	private boolean success = false;
	
	private Spec root = null;
	
	public Spec getSpec() {
		if (success) {
			return root;
		}
		return null;
	}
  private final GrammarParser parser;  /** Constructor */  CUP$GrammarParser$actions(GrammarParser parser) {    this.parser = parser;  }  /** Method with the actual generated action code. */  public final java_cup.runtime.Symbol CUP$GrammarParser$do_action(    int                        CUP$GrammarParser$act_num,    java_cup.runtime.lr_parser CUP$GrammarParser$parser,    java.util.Stack            CUP$GrammarParser$stack,    int                        CUP$GrammarParser$top)    throws java.lang.Exception    {

⌨️ 快捷键说明

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