implement constructor call, eval and genasm are still stubs

This commit is contained in:
2020-02-14 13:06:20 +01:00
parent 317c2c52ca
commit 5c0459c5a2
8 changed files with 109 additions and 15 deletions

View File

@@ -490,4 +490,10 @@ public class EvalVisitor implements Visitor<Value> {
return null;
}
@Override
public Value visit(ConstructorCall e) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -813,4 +813,10 @@ public class GenASM implements Visitor<Void> {
return null;
}
@Override
public Void visit(ConstructorCall e) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -255,4 +255,9 @@ class GetVars implements Visitor<Void> {
return null;
}
@Override
public Void visit(ConstructorCall e) {
return null;
}
}

View File

@@ -415,4 +415,21 @@ public class PrettyPrintVisitor implements Visitor<Void> {
return null;
}
@Override
public Void visit(ConstructorCall e) {
ex.write("create " + e.structName + "(");
boolean first = true;
for (Expression arg : e.args) {
if (!first) {
ex.write(", ");
} else {
first = false;
}
arg.welcome(this);
}
ex.write(")");
return null;
}
}

View File

@@ -46,4 +46,5 @@ public interface Visitor<R> {
R visit(StructDefinition e);
R visit(StructField e);
R visit(StructFieldAccessExpression e);
R visit(ConstructorCall e);
}