Homework 2

This commit is contained in:
Carlos Galindo 2020-01-15 22:30:09 +01:00
parent 12f678a924
commit bf60a078d7
Signed by: kauron
GPG key ID: 83E68706DEE119A3
64 changed files with 4786 additions and 1185 deletions

View file

@ -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()));