From d50206a519876fa3365b4052a891ef5960429fb0 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:35:13 +0200 Subject: [PATCH] =?UTF-8?q?GenCode:=20Assign=20kann=20nun=20zwischen=20Int?= =?UTF-8?q?=20und=20String=20switchen.=20StringLit-Test=20ergab,=20dass=20?= =?UTF-8?q?es=20-=20wie=20bef=C3=BCrchtet=20-=20Probleme=20mit=20der=20kor?= =?UTF-8?q?rekten=20Vergabe=20von=20Indizes=20gibt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/dhbwstuttgart/syntaxtree/statement/Assign.java | 10 ++++++---- test/bytecode/StringLitTest.jav | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java b/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java index dda29d3f..47d68216 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Assign.java @@ -182,14 +182,16 @@ public class Assign extends Expr counterAssign++; //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)); + + String expr2Type = expr2.getType().get_Name().toString(); + switch(expr2Type){//welche rückgabewerte entstehen hier??? Integer und String scheinen nicht zu stimmen + case "java.lang.Integer": il.append(new ISTORE(counterAssign)); break; - case "String": il.append(new ASTORE(counterAssign)); + case "java.lang.String": il.append(new ASTORE(counterAssign)); break; } - //System.out.println(expr2.getType().toString()); + return il; } diff --git a/test/bytecode/StringLitTest.jav b/test/bytecode/StringLitTest.jav index b8596750..d86c0e37 100644 --- a/test/bytecode/StringLitTest.jav +++ b/test/bytecode/StringLitTest.jav @@ -1,7 +1,7 @@ class StringLitTest{ -void method() { s; s = ""; } +void method() { s; s = "abcdefg"; } } \ No newline at end of file