• 大小: 8.62MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-16
  • 语言: Java
  • 标签: 国软  桂浩  

资源简介

桂浩 解释器构造实验1 含JAVACC学习笔记 高分作业

资源截图

代码片段和文件信息

/* Generated By:JJTree&JavaCC: Do not edit this line. eg2.java */
@SuppressWarnings(“all“)
public class eg2/*@bgen(jjtree)*/implements eg2TreeConstants eg2Constants {/*@bgen(jjtree)*/
  protected static JJTeg2State jjtree = new JJTeg2State();public static void main(String args[]) {
    System.out.println(“Reading from standard input...“);
    System.out.print(“Enter CMM code like \u005c“int a;\u005c“ end with \u005c“-1\u005c“:“);
    new eg2(System.in);
    try {
      SimpleNode n = eg2.Start();
      n.dump(““);
      System.out.println(“Thank you.“);
    } catch (Exception e) {
      System.out.println(“Error.“);
      System.out.println(e.getMessage());
    }
  }

/* 遍历语法树*/
  static final public SimpleNode Start() throws ParseException {
                    /*@bgen(jjtree) Start */
  SimpleNode jjtn000 = new SimpleNode(JJTSTART);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      Procedure();
      jj_consume_token(38);
                   jjtree.closeNodeScope(jjtn000 true);
                   jjtc000 = false;
                  //输入程序以“-1“结尾
    {if (true) return jjtn000;}
    } catch (Throwable jjte000) {
    if (jjtc000) {
      jjtree.clearNodeScope(jjtn000);
      jjtc000 = false;
    } else {
      jjtree.popNode();
    }
    if (jjte000 instanceof RuntimeException) {
      {if (true) throw (RuntimeException)jjte000;}
    }
    if (jjte000 instanceof ParseException) {
      {if (true) throw (ParseException)jjte000;}
    }
    {if (true) throw (Error)jjte000;}
    } finally {
    if (jjtc000) {
      jjtree.closeNodeScope(jjtn000 true);
    }
    }
    throw new Error(“Missing return statement in function“);
  }

/* 程序由语句构成 */
  static final public void Procedure() throws ParseException {
                  /*@bgen(jjtree) Procedure */
  SimpleNode jjtn000 = new SimpleNode(JJTPROCEDURE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      label_1:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case IF:
        case WHILE:
        case READ:
        case WRITE:
        case INT:
        case REAL:
        case LBRACE:
        case IDENTIFIER:
        case CONST_ARRAY:
        case VAR_ARRAY:
          ;
          break;
        default:
          jj_la1[0] = jj_gen;
          break label_1;
        }
        Stament();
      }
    } catch (Throwable jjte000) {
    if (jjtc000) {
      jjtree.clearNodeScope(jjtn000);
      jjtc000 = false;
    } else {
      jjtree.popNode();
    }
    if (jjte000 instanceof RuntimeException) {
      {if (true) throw (RuntimeException)jjte000;}
    }
    if (jjte000 instanceof ParseException) {
      {if (true) throw (ParseException)jjte000;}
    }
    {if (true) throw (Error)jjte000;}
    } finally {
    if (jjtc000) {
      jjtree.closeNodeScope(jjtn000 true);
    }
    }
  }

/* 语句的定义 */
  static final public void Stament() 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     130560  2012-10-15 22:19  Task1\JavaCC学习笔记.doc

     文件        376  2012-10-15 14:10  Task1\myTask1\.classpath

     文件        851  2012-10-15 14:12  Task1\myTask1\.project

     文件        395  2012-10-15 14:10  Task1\myTask1\.settings\org.eclipse.jdt.core.prefs

     文件        305  2012-10-15 14:12  Task1\myTask1\.settings\sf.eclipse.javacc.prefs

     文件      14118  2012-10-15 15:08  Task1\myTask1\bin\CMM.jj

     文件       4041  2012-10-15 15:08  Task1\myTask1\bin\CMM.jjt

     文件        373  2012-10-15 15:23  Task1\myTask1\bin\eg2$JJCalls.class

     文件        410  2012-10-15 15:23  Task1\myTask1\bin\eg2$LookaheadSuccess.class

     文件      20855  2012-10-15 15:23  Task1\myTask1\bin\eg2.class

     文件       2332  2012-10-15 15:23  Task1\myTask1\bin\eg2Constants.class

     文件      12200  2012-10-15 15:23  Task1\myTask1\bin\eg2TokenManager.class

     文件       1161  2012-10-15 15:23  Task1\myTask1\bin\eg2TreeConstants.class

     文件       2581  2012-10-15 15:23  Task1\myTask1\bin\JJTeg2State.class

     文件       1210  2012-10-15 15:23  Task1\myTask1\bin\mytask1\Activator.class

     文件        304  2012-10-15 15:23  Task1\myTask1\bin\Node.class

     文件       3584  2012-10-15 15:23  Task1\myTask1\bin\ParseException.class

     文件       8138  2012-10-15 15:23  Task1\myTask1\bin\SimpleCharStream.class

     文件       2549  2012-10-15 15:23  Task1\myTask1\bin\SimpleNode.class

     文件       1153  2012-10-15 15:23  Task1\myTask1\bin\Token.class

     文件       2805  2012-10-15 15:23  Task1\myTask1\bin\TokenMgrError.class

     文件         80  2012-10-15 14:10  Task1\myTask1\build.properties

     文件        302  2012-10-15 14:10  Task1\myTask1\meta-INF\MANIFEST.MF

     文件      14118  2012-10-15 15:08  Task1\myTask1\src\CMM.jj

     文件       4041  2012-10-15 15:08  Task1\myTask1\src\CMM.jjt

     文件      37230  2012-10-15 15:08  Task1\myTask1\src\eg2.java

     文件       2903  2012-10-15 15:08  Task1\myTask1\src\eg2Constants.java

     文件      25604  2012-10-15 15:08  Task1\myTask1\src\eg2TokenManager.java

     文件        968  2012-10-15 15:08  Task1\myTask1\src\eg2TreeConstants.java

     文件       3345  2012-10-15 15:08  Task1\myTask1\src\JJTeg2State.java

............此处省略19个文件信息

评论

共有 条评论

相关资源