• 大小: 1.71MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-31
  • 语言: 其他
  • 标签: decaf  pa1  

资源简介

清华大学 编译原理decaf实验pa1 说明文档 实验框架

资源截图

代码片段和文件信息

package decaf;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import decaf.tree.Tree;
import decaf.error.DecafError;
import decaf.frontend.Lexer;
import decaf.frontend.Parser;
import decaf.utils.IndentPrintWriter;

public final class Driver {

private static Driver driver;

private Option option;

private List errors;

private Lexer lexer;

private Parser parser;

public static Driver getDriver() {
return driver;
}

public void issueError(DecafError error) {
errors.add(error);
}

public void checkPoint() {
if (errors.size() > 0) {
Collections.sort(errors new Comparator() {

@Override
public int compare(DecafError o1 DecafError o2) {
return o1.getLocation().compareTo(o2.getLocation());
}

});
for (DecafError error : errors) {
option.getErr().println(error);
}
System.exit(0);
}
}

public void init() {
lexer = new Lexer(option.getInput());
parser = new Parser();
lexer.setParser(parser);
parser.setLexer(lexer);
errors = new ArrayList();
}

public void compile() {

Tree.TopLevel tree = parser.parseFile();
checkPoint();
if (option.getLevel() == Option.Level.LEVEL0) {
IndentPrintWriter pw = new IndentPrintWriter(option.getOutput() 4);
tree.printTo(pw);
pw.close();
return;
}
}

public static void main(String[] args) throws IOException {
driver = new Driver();
driver.option = new Option(args);
driver.init();
driver.compile();
}

public Option getOption() {
return option;
}
}

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

     文件     268748  2010-09-30 16:57  Decaf实验总述.pdf

     文件     335841  2010-09-30 17:02  Decaf语言规范.pdf

     文件     564752  2010-09-30 15:43  编译原理Decaf实验介绍.pdf

     文件       2959  2010-09-30 08:44  framework\decaf_PA1\build.xml

     文件       1624  2010-09-24 22:12  framework\decaf_PA1\src\decaf\Driver.java

     文件        581  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadArgCountError.java

     文件        623  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadArgTypeError.java

     文件        343  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadArrElementError.java

     文件        360  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadInheritanceError.java

     文件        436  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadLengthArgError.java

     文件        334  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadLengthError.java

     文件        334  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadNewArrayLength.java

     文件        606  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadOverrideError.java

     文件        573  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadPrintArgError.java

     文件        504  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadReturnTypeError.java

     文件        322  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadTestExpr.java

     文件        415  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BadVarTypeError.java

     文件        342  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\BreakOutOfLoopError.java

     文件        373  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\ClassNotFoundError.java

     文件        692  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\DecafError.java

     文件        550  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\DeclConflictError.java

     文件        491  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\FieldNotAccessError.java

     文件        467  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\FieldNotFoundError.java

     文件        521  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\IncompatBinOpError.java

     文件        437  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\IncompatUnOpError.java

     文件        401  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\IntTooLargeError.java

     文件        312  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\MsgError.java

     文件        406  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\NewlineInStrError.java

     文件        403  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\NoMainClassError.java

     文件        320  2009-10-24 02:02  framework\decaf_PA1\src\decaf\error\NotArrayError.java

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

评论

共有 条评论