summaryrefslogtreecommitdiff
path: root/vaporize
diff options
context:
space:
mode:
Diffstat (limited to 'vaporize')
-rw-r--r--vaporize/library/VaporizeSimp.java40
-rw-r--r--vaporize/tests_easy/ex31.java4
2 files changed, 30 insertions, 14 deletions
diff --git a/vaporize/library/VaporizeSimp.java b/vaporize/library/VaporizeSimp.java
index a77f579..a7faf88 100644
--- a/vaporize/library/VaporizeSimp.java
+++ b/vaporize/library/VaporizeSimp.java
@@ -233,17 +233,18 @@ public class VaporizeSimp extends GJDepthFirst<String,SymbolTable> {
String mod = "";
mod += n.f0.accept(this, symt);
- mod += n.f1.accept(this, symt);
+ n.f1.accept(this, symt);
n.f2.accept(this, symt);
- mod += "func " + symt.getActive(TypeEnum.classname) + "_" + id + "(this)\n";
+ mod += "func " + symt.getActive(TypeEnum.classname) + "_" + id + "(this";
mod += n.f3.accept(this, symt);
- mod += n.f4.accept(this, symt);
+ String args = n.f4.accept(this, symt);
+ mod += String.format("%s)\n", args);
mod += n.f5.accept(this, symt);
mod += n.f6.accept(this, symt);
mod += n.f7.accept(this, symt);
mod += n.f8.accept(this, symt);
mod += n.f9.accept(this, symt);
- mod += n.f10.accept(this, symt);
+ n.f10.accept(this, symt); // FIXME
mod += n.f11.accept(this, symt);
mod += n.f12.accept(this, symt);
@@ -260,7 +261,9 @@ public class VaporizeSimp extends GJDepthFirst<String,SymbolTable> {
*/
public String visit(FormalParameterList n, SymbolTable symt) {
String mod = "";
- mod += n.f0.accept(this, symt);
+ String arg = n.f0.accept(this, symt);
+ if (arg != null)
+ mod += " " + arg;
mod += n.f1.accept(this, symt);
return mod;
}
@@ -283,7 +286,9 @@ public class VaporizeSimp extends GJDepthFirst<String,SymbolTable> {
public String visit(FormalParameterRest n, SymbolTable symt) {
String mod = "";
mod += n.f0.accept(this, symt);
- mod += n.f1.accept(this, symt);
+ String arg = n.f1.accept(this, symt);
+ if (arg != null)
+ mod += " " + arg;
return mod;
}
@@ -326,7 +331,7 @@ public class VaporizeSimp extends GJDepthFirst<String,SymbolTable> {
*/
public String visit(IntegerType n, SymbolTable symt) {
String mod = "";
- mod += n.f0.accept(this, symt);
+ mod += n.f0.accept(this, symt);;
return mod;
}
@@ -500,9 +505,16 @@ public class VaporizeSimp extends GJDepthFirst<String,SymbolTable> {
*/
public String visit(PlusExpression n, SymbolTable symt) {
String mod = "";
- mod += n.f0.accept(this, symt);
+ String oper1 = n.f0.accept(this, symt);
mod += n.f1.accept(this, symt);
- mod += n.f2.accept(this, symt);
+ String oper2 = n.f2.accept(this, symt);
+ TypeInstance tp1 = new TypeInstance("tp1", TypeEnum.ERROR);
+
+ mod += String.format(" %s = AddS(%s %s)\n",
+ this.tf.addNewAlias(tp1),
+ oper1,
+ oper2);
+
return mod;
}
@@ -590,14 +602,14 @@ public class VaporizeSimp extends GJDepthFirst<String,SymbolTable> {
this.tf.retrieveAlias(tp1),
mtdIndex);
+ mod += n.f3.accept(this, symt);
+ mod = n.f4.accept(this, symt);
+ mod += n.f5.accept(this, symt);
+
mod += String.format(" call %s(%s)\n",
this.tf.retrieveAlias(tp2),
this.tf.retrieveAlias(cur));
-
- mod += n.f3.accept(this, symt);
- mod += n.f4.accept(this, symt);
- mod += n.f5.accept(this, symt);
return mod;
}
@@ -645,7 +657,7 @@ public class VaporizeSimp extends GJDepthFirst<String,SymbolTable> {
*/
public String visit(IntegerLiteral n, SymbolTable symt) {
String mod = "";
- mod += n.f0.accept(this, symt);
+ mod += n.f0.tokenImage;
return mod;
}
diff --git a/vaporize/tests_easy/ex31.java b/vaporize/tests_easy/ex31.java
index 6527b8b..d5a6980 100644
--- a/vaporize/tests_easy/ex31.java
+++ b/vaporize/tests_easy/ex31.java
@@ -9,4 +9,8 @@ class A {
public int foo() {
return 22 ;
}
+
+ public int bar() {
+ return 42 ;
+ }
}