From b4d9cfbe0c801578f80f009c0f07d8747fc6bfc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=BCtterling=2C=20Franziska=20=28WWI2012D=29?= Date: Thu, 25 Jun 2015 15:18:14 +0200 Subject: [PATCH] GenCode: Reupload Assign Type-Switch wegen Mergeproblemen --- .../dhbwstuttgart/syntaxtree/statement/Assign.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java b/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java index ca837203..dda29d3f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java @@ -6,6 +6,7 @@ import java.util.Enumeration; import java.util.Hashtable; import java.util.Iterator; +import org.apache.bcel.generic.ASTORE; import org.apache.bcel.generic.ClassGen; import org.apache.bcel.generic.ISTORE; import org.apache.bcel.generic.InstructionFactory; @@ -171,7 +172,6 @@ public class Assign extends Expr } - public static int counterAssign = 0; //Zaehlvariable für ISTORE @Override @@ -180,8 +180,16 @@ public class Assign extends Expr InstructionFactory _factory = new InstructionFactory(cg, cg.getConstantPool()); InstructionList il = expr2.genByteCode(cg);//expr2 rechte expr counterAssign++; - il.append(new ISTORE(counterAssign)); //macht ISTORE für meherere Variable nutzbar (nicht nur ISTORE_1, ISTORE_2, etc.) + //il.append(new ISTORE(counterAssign)); //macht ISTORE für meherere Variable nutzbar (nicht nur ISTORE_1, ISTORE_2, etc.) //Anpassung für Variablen außerhalb von int = ISTORE nötig? + switch(expr2.getType().toString()){//welche rückgabewerte entstehen hier??? Integer und String scheinen nicht zu stimmen + case "Integer": il.append(new ISTORE(counterAssign)); + break; + + case "String": il.append(new ASTORE(counterAssign)); + break; + } + //System.out.println(expr2.getType().toString()); return il; }