实例介绍
清华大学计算机系编译原理实验。实验第三部分。
【实例截图】
【核心代码】
b715bff4-7df8-4671-add6-b94208886ee1
└── decaf_PA3
├── bin
│ └── decaf
│ ├── backend
│ │ ├── OffsetCounter$Kind.class
│ │ └── OffsetCounter.class
│ ├── Driver$1.class
│ ├── Driver.class
│ ├── error
│ │ ├── BadArgCountError.class
│ │ ├── BadArgTypeError.class
│ │ ├── BadArrElementError.class
│ │ ├── BadInheritanceError.class
│ │ ├── BadLengthArgError.class
│ │ ├── BadLengthError.class
│ │ ├── BadNewArrayLength.class
│ │ ├── BadOverrideError.class
│ │ ├── BadPrintArgError.class
│ │ ├── BadReturnTypeError.class
│ │ ├── BadTestExpr.class
│ │ ├── BadVarTypeError.class
│ │ ├── BreakOutOfLoopError.class
│ │ ├── ClassNotFoundError.class
│ │ ├── DecafError.class
│ │ ├── DeclConflictError.class
│ │ ├── FieldNotAccessError.class
│ │ ├── FieldNotFoundError.class
│ │ ├── IncompatBinOpError.class
│ │ ├── IncompatUnOpError.class
│ │ ├── IntTooLargeError.class
│ │ ├── MsgError.class
│ │ ├── NewlineInStrError.class
│ │ ├── NoMainClassError.class
│ │ ├── NotArrayError.class
│ │ ├── NotClassError.class
│ │ ├── NotClassFieldError.class
│ │ ├── NotClassMethodError.class
│ │ ├── OverridingVarError.class
│ │ ├── RefNonStaticError.class
│ │ ├── RuntimeError.class
│ │ ├── SubNotIntError.class
│ │ ├── ThisInStaticFuncError.class
│ │ ├── UndeclVarError.class
│ │ ├── UnrecogCharError.class
│ │ └── UntermStrError.class
│ ├── frontend
│ │ ├── BaseLexer.class
│ │ ├── BaseParser.class
│ │ ├── Lexer.class
│ │ ├── Lexer.l
│ │ ├── Parser.class
│ │ ├── ParserHelper.class
│ │ ├── Parser.output
│ │ ├── Parser.y
│ │ ├── ReduceListener.class
│ │ └── SemValue.class
│ ├── Location.class
│ ├── machdesc
│ │ └── Intrinsic.class
│ ├── Option$Level.class
│ ├── Option.class
│ ├── scope
│ │ ├── ClassScope.class
│ │ ├── FormalScope.class
│ │ ├── GlobalScope.class
│ │ ├── LocalScope.class
│ │ ├── Scope$Kind.class
│ │ ├── Scope.class
│ │ └── ScopeStack.class
│ ├── symbol
│ │ ├── Class.class
│ │ ├── Function.class
│ │ ├── Symbol$1.class
│ │ ├── Symbol$2.class
│ │ ├── Symbol.class
│ │ └── Variable.class
│ ├── tac
│ │ ├── Functy.class
│ │ ├── Label.class
│ │ ├── Tac$Kind.class
│ │ ├── Tac.class
│ │ ├── Temp$1.class
│ │ ├── Temp.class
│ │ └── VTable.class
│ ├── translate
│ │ ├── Translater.class
│ │ ├── TransPass1.class
│ │ └── TransPass2.class
│ ├── tree
│ │ ├── Tree$Apply.class
│ │ ├── Tree$Assign.class
│ │ ├── Tree$Binary.class
│ │ ├── Tree$Block.class
│ │ ├── Tree$Break.class
│ │ ├── Tree$CallExpr.class
│ │ ├── Tree$ClassDef.class
│ │ ├── Tree$Exec.class
│ │ ├── Tree$Expr.class
│ │ ├── Tree$ForLoop.class
│ │ ├── Tree$Ident.class
│ │ ├── Tree$If.class
│ │ ├── Tree$Indexed.class
│ │ ├── Tree$Literal.class
│ │ ├── Tree$LValue$Kind.class
│ │ ├── Tree$LValue.class
│ │ ├── Tree$MethodDef.class
│ │ ├── Tree$NewArray.class
│ │ ├── Tree$NewClass.class
│ │ ├── Tree$Null.class
│ │ ├── Tree$Print.class
│ │ ├── Tree$ReadIntExpr.class
│ │ ├── Tree$ReadLineExpr.class
│ │ ├── Tree$Return.class
│ │ ├── Tree$Skip.class
│ │ ├── Tree$ThisExpr.class
│ │ ├── Tree$TopLevel.class
│ │ ├── Tree$TypeArray.class
│ │ ├── Tree$TypeCast.class
│ │ ├── Tree$TypeClass.class
│ │ ├── Tree$TypeIdent.class
│ │ ├── Tree$TypeLiteral.class
│ │ ├── Tree$TypeTest.class
│ │ ├── Tree$Unary.class
│ │ ├── Tree$VarDef.class
│ │ ├── Tree$Visitor.class
│ │ ├── Tree$WhileLoop.class
│ │ └── Tree.class
│ ├── type
│ │ ├── ArrayType.class
│ │ ├── BaseType.class
│ │ ├── ClassType.class
│ │ ├── FuncType.class
│ │ └── Type.class
│ ├── typecheck
│ │ ├── BuildSym.class
│ │ └── TypeCheck.class
│ └── utils
│ ├── IndentPrintWriter.class
│ └── MiscUtils.class
├── build.xml
├── Decaf PA3 README.pdf
├── report.txt
├── result
│ ├── bin
│ │ └── decaf
│ │ ├── backend
│ │ │ ├── OffsetCounter$Kind.class
│ │ │ └── OffsetCounter.class
│ │ ├── Driver$1.class
│ │ ├── Driver.class
│ │ ├── error
│ │ │ ├── BadArgCountError.class
│ │ │ ├── BadArgTypeError.class
│ │ │ ├── BadArrElementError.class
│ │ │ ├── BadInheritanceError.class
│ │ │ ├── BadLengthArgError.class
│ │ │ ├── BadLengthError.class
│ │ │ ├── BadNewArrayLength.class
│ │ │ ├── BadOverrideError.class
│ │ │ ├── BadPrintArgError.class
│ │ │ ├── BadReturnTypeError.class
│ │ │ ├── BadTestExpr.class
│ │ │ ├── BadVarTypeError.class
│ │ │ ├── BreakOutOfLoopError.class
│ │ │ ├── ClassNotFoundError.class
│ │ │ ├── DecafError.class
│ │ │ ├── DeclConflictError.class
│ │ │ ├── FieldNotAccessError.class
│ │ │ ├── FieldNotFoundError.class
│ │ │ ├── IncompatBinOpError.class
│ │ │ ├── IncompatUnOpError.class
│ │ │ ├── IntTooLargeError.class
│ │ │ ├── MsgError.class
│ │ │ ├── NewlineInStrError.class
│ │ │ ├── NoMainClassError.class
│ │ │ ├── NotArrayError.class
│ │ │ ├── NotClassError.class
│ │ │ ├── NotClassFieldError.class
│ │ │ ├── NotClassMethodError.class
│ │ │ ├── OverridingVarError.class
│ │ │ ├── RefNonStaticError.class
│ │ │ ├── RuntimeError.class
│ │ │ ├── SubNotIntError.class
│ │ │ ├── ThisInStaticFuncError.class
│ │ │ ├── UndeclVarError.class
│ │ │ ├── UnrecogCharError.class
│ │ │ └── UntermStrError.class
│ │ ├── frontend
│ │ │ ├── BaseLexer.class
│ │ │ ├── BaseParser.class
│ │ │ ├── Lexer.class
│ │ │ ├── Parser.class
│ │ │ ├── ParserHelper.class
│ │ │ ├── ReduceListener.class
│ │ │ └── SemValue.class
│ │ ├── Location.class
│ │ ├── machdesc
│ │ │ └── Intrinsic.class
│ │ ├── Option$Level.class
│ │ ├── Option.class
│ │ ├── scope
│ │ │ ├── ClassScope.class
│ │ │ ├── FormalScope.class
│ │ │ ├── GlobalScope.class
│ │ │ ├── LocalScope.class
│ │ │ ├── Scope$Kind.class
│ │ │ ├── Scope.class
│ │ │ ├── ScopeStack$1.class
│ │ │ └── ScopeStack.class
│ │ ├── symbol
│ │ │ ├── Class.class
│ │ │ ├── Function.class
│ │ │ ├── Symbol$1.class
│ │ │ ├── Symbol$2.class
│ │ │ ├── Symbol.class
│ │ │ └── Variable.class
│ │ ├── tac
│ │ │ ├── Functy.class
│ │ │ ├── Label.class
│ │ │ ├── Tac$1.class
│ │ │ ├── Tac$Kind.class
│ │ │ ├── Tac.class
│ │ │ ├── Temp$1.class
│ │ │ ├── Temp.class
│ │ │ └── VTable.class
│ │ ├── translate
│ │ │ ├── Translater.class
│ │ │ ├── TransPass1.class
│ │ │ ├── TransPass2$1.class
│ │ │ └── TransPass2.class
│ │ ├── tree
│ │ │ ├── Tree$Apply.class
│ │ │ ├── Tree$Assign.class
│ │ │ ├── Tree$Binary.class
│ │ │ ├── Tree$Block.class
│ │ │ ├── Tree$Break.class
│ │ │ ├── Tree$CallExpr.class
│ │ │ ├── Tree$ClassDef.class
│ │ │ ├── Tree$Exec.class
│ │ │ ├── Tree$Expr.class
│ │ │ ├── Tree$ForLoop.class
│ │ │ ├── Tree$Ident.class
│ │ │ ├── Tree$If.class
│ │ │ ├── Tree$Indexed.class
│ │ │ ├── Tree$Literal.class
│ │ │ ├── Tree$LValue$Kind.class
│ │ │ ├── Tree$LValue.class
│ │ │ ├── Tree$MethodDef.class
│ │ │ ├── Tree$NewArray.class
│ │ │ ├── Tree$NewClass.class
│ │ │ ├── Tree$Null.class
│ │ │ ├── Tree$Print.class
│ │ │ ├── Tree$ReadIntExpr.class
│ │ │ ├── Tree$ReadLineExpr.class
│ │ │ ├── Tree$Return.class
│ │ │ ├── Tree$Skip.class
│ │ │ ├── Tree$ThisExpr.class
│ │ │ ├── Tree$TopLevel.class
│ │ │ ├── Tree$TypeArray.class
│ │ │ ├── Tree$TypeCast.class
│ │ │ ├── Tree$TypeClass.class
│ │ │ ├── Tree$TypeIdent.class
│ │ │ ├── Tree$TypeLiteral.class
│ │ │ ├── Tree$TypeTest.class
│ │ │ ├── Tree$Unary.class
│ │ │ ├── Tree$VarDef.class
│ │ │ ├── Tree$Visitor.class
│ │ │ ├── Tree$WhileLoop.class
│ │ │ └── Tree.class
│ │ ├── type
│ │ │ ├── ArrayType.class
│ │ │ ├── BaseType.class
│ │ │ ├── ClassType.class
│ │ │ ├── FuncType.class
│ │ │ └── Type.class
│ │ ├── typecheck
│ │ │ ├── BuildSym.class
│ │ │ └── TypeCheck.class
│ │ └── utils
│ │ ├── IndentPrintWriter.class
│ │ └── MiscUtils.class
│ └── decaf.jar
├── src
│ └── decaf
│ ├── backend
│ │ └── OffsetCounter.java
│ ├── Driver.java
│ ├── error
│ │ ├── BadArgCountError.java
│ │ ├── BadArgTypeError.java
│ │ ├── BadArrElementError.java
│ │ ├── BadInheritanceError.java
│ │ ├── BadLengthArgError.java
│ │ ├── BadLengthError.java
│ │ ├── BadNewArrayLength.java
│ │ ├── BadOverrideError.java
│ │ ├── BadPrintArgError.java
│ │ ├── BadReturnTypeError.java
│ │ ├── BadTestExpr.java
│ │ ├── BadVarTypeError.java
│ │ ├── BreakOutOfLoopError.java
│ │ ├── ClassNotFoundError.java
│ │ ├── DecafError.java
│ │ ├── DeclConflictError.java
│ │ ├── FieldNotAccessError.java
│ │ ├── FieldNotFoundError.java
│ │ ├── IncompatBinOpError.java
│ │ ├── IncompatUnOpError.java
│ │ ├── IntTooLargeError.java
│ │ ├── MsgError.java
│ │ ├── NewlineInStrError.java
│ │ ├── NoMainClassError.java
│ │ ├── NotArrayError.java
│ │ ├── NotClassError.java
│ │ ├── NotClassFieldError.java
│ │ ├── NotClassMethodError.java
│ │ ├── OverridingVarError.java
│ │ ├── RefNonStaticError.java
│ │ ├── RuntimeError.java
│ │ ├── SubNotIntError.java
│ │ ├── ThisInStaticFuncError.java
│ │ ├── UndeclVarError.java
│ │ ├── UnrecogCharError.java
│ │ └── UntermStrError.java
│ ├── frontend
│ │ ├── BaseLexer.java
│ │ ├── BaseParser.java
│ │ ├── Lexer.java
│ │ ├── Lexer.l
│ │ ├── ParserHelper.java
│ │ ├── Parser.java
│ │ ├── Parser.output
│ │ ├── Parser.y
│ │ └── SemValue.java
│ ├── Location.java
│ ├── machdesc
│ │ └── Intrinsic.java
│ ├── Option.java
│ ├── scope
│ │ ├── ClassScope.java
│ │ ├── FormalScope.java
│ │ ├── GlobalScope.java
│ │ ├── LocalScope.java
│ │ ├── Scope.java
│ │ └── ScopeStack.java
│ ├── symbol
│ │ ├── Class.java
│ │ ├── Function.java
│ │ ├── Symbol.java
│ │ └── Variable.java
│ ├── tac
│ │ ├── Functy.java
│ │ ├── Label.java
│ │ ├── Tac.java
│ │ ├── Temp.java
│ │ └── VTable.java
│ ├── translate
│ │ ├── Translater.java
│ │ ├── TransPass1.java
│ │ └── TransPass2.java
│ ├── tree
│ │ └── Tree.java
│ ├── type
│ │ ├── ArrayType.java
│ │ ├── BaseType.java
│ │ ├── ClassType.java
│ │ ├── FuncType.java
│ │ └── Type.java
│ ├── typecheck
│ │ ├── BuildSym.java
│ │ └── TypeCheck.java
│ └── utils
│ ├── IndentPrintWriter.java
│ └── MiscUtils.java
├── submit.py
├── TestCases
│ └── S3
│ ├── blackjack.decaf
│ ├── casterror.decaf
│ ├── indexout.decaf
│ ├── math.decaf
│ ├── matrix.decaf
│ ├── neglength.decaf
│ ├── output
│ │ ├── casterror.result
│ │ ├── casterror.tac
│ │ ├── indexout.result
│ │ ├── indexout.tac
│ │ ├── math.result
│ │ ├── math.tac
│ │ ├── matrix.result
│ │ ├── matrix.tac
│ │ ├── neglength.result
│ │ ├── neglength.tac
│ │ ├── queue.result
│ │ ├── queue.tac
│ │ ├── stack.result
│ │ ├── stack.tac
│ │ ├── strcmp.result
│ │ ├── strcmp.tac
│ │ ├── t1.result
│ │ ├── t1.tac
│ │ ├── t2.result
│ │ ├── t2.tac
│ │ ├── t3.result
│ │ ├── t3.tac
│ │ ├── t4.result
│ │ ├── t4.tac
│ │ ├── t5.result
│ │ ├── t5.tac
│ │ ├── t6.result
│ │ ├── t6.tac
│ │ ├── t7.result
│ │ ├── t7.tac
│ │ ├── t8.result
│ │ ├── t8.tac
│ │ ├── t9.result
│ │ └── t9.tac
│ ├── queue.decaf
│ ├── result
│ │ ├── casterror.result
│ │ ├── indexout.result
│ │ ├── math.result
│ │ ├── matrix.result
│ │ ├── neglength.result
│ │ ├── queue.result
│ │ ├── stack.result
│ │ ├── strcmp.result
│ │ ├── t1.result
│ │ ├── t2.result
│ │ ├── t3.result
│ │ ├── t4.result
│ │ ├── t5.result
│ │ ├── t6.result
│ │ ├── t7.result
│ │ ├── t8.result
│ │ └── t9.result
│ ├── runAll.py
│ ├── stack.decaf
│ ├── strcmp.decaf
│ ├── t1.decaf
│ ├── t2.decaf
│ ├── t3.decaf
│ ├── t4.decaf
│ ├── t5.decaf
│ ├── t6.decaf
│ ├── t7.decaf
│ ├── t8.decaf
│ ├── t9.decaf
│ └── tac.jar
└── tools
├── byacc
│ ├── byacc.exe
│ ├── byaccj1.13-extended.tar.gz
│ ├── byacc.linux
│ ├── byacc.linux.amd64
│ └── byacc.mac
└── jflex
└── JFlex.jar
51 directories, 408 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论