GenCode: Assign kann nun zwischen Int und String switchen.

StringLit-Test ergab, dass es - wie befürchtet - Probleme mit der
korrekten Vergabe von Indizes gibt.
This commit is contained in:
Fütterling, Franziska (WWI2012D) 2015-06-25 15:35:13 +02:00
parent 5fbb4f0d61
commit d50206a519
2 changed files with 7 additions and 5 deletions

View File

@ -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;
}

View File

@ -1,7 +1,7 @@
class StringLitTest{
void method() { s; s = ""; }
void method() { s; s = "abcdefg"; }
}