Homework 2
This commit is contained in:
parent
12f678a924
commit
bf60a078d7
64 changed files with 4786 additions and 1185 deletions
|
@ -13,11 +13,14 @@ import cd.ir.Ast.Field;
|
|||
import cd.ir.Ast.IfElse;
|
||||
import cd.ir.Ast.Index;
|
||||
import cd.ir.Ast.IntConst;
|
||||
import cd.ir.Ast.MethodCall;
|
||||
import cd.ir.Ast.MethodCallExpr;
|
||||
import cd.ir.Ast.MethodDecl;
|
||||
import cd.ir.Ast.NewArray;
|
||||
import cd.ir.Ast.NewObject;
|
||||
import cd.ir.Ast.Nop;
|
||||
import cd.ir.Ast.NullConst;
|
||||
import cd.ir.Ast.ReturnStmt;
|
||||
import cd.ir.Ast.Seq;
|
||||
import cd.ir.Ast.ThisRef;
|
||||
import cd.ir.Ast.UnaryOp;
|
||||
|
@ -99,6 +102,16 @@ public class AstOneLine {
|
|||
return Integer.toString(ast.value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String methodCall(MethodCall ast, Void arg) {
|
||||
return str(ast.getMethodCallExpr());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String methodCall(MethodCallExpr ast, Void arg) {
|
||||
return String.format("%s.%s(...)", str(ast.receiver()), ast.methodName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String methodDecl(MethodDecl ast, Void arg) {
|
||||
return String.format("%s %s(...) {...}", ast.returnType, ast.name);
|
||||
|
@ -134,6 +147,11 @@ public class AstOneLine {
|
|||
return "this";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String returnStmt(ReturnStmt ast, Void arg) {
|
||||
return ast.arg() != null ? String.format("return %s", str(ast.arg())) : "return";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String unaryOp(UnaryOp ast, Void arg) {
|
||||
return String.format("%s(%s)", ast.operator.repr, str(ast.arg()));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue