forked from JavaTX/JavaCompilerCore
NewClass Statement
This commit is contained in:
parent
fc03a744fe
commit
2958c52610
@ -3,3 +3,4 @@ encoding//src/de/dhbwstuttgart/core/MyCompiler.java=UTF-8
|
|||||||
encoding//src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java=UTF-8
|
encoding//src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java=UTF-8
|
||||||
encoding//src/de/dhbwstuttgart/typeinference/SingleConstraint.java=UTF-8
|
encoding//src/de/dhbwstuttgart/typeinference/SingleConstraint.java=UTF-8
|
||||||
encoding//src/de/dhbwstuttgart/typeinference/UndConstraint.java=UTF-8
|
encoding//src/de/dhbwstuttgart/typeinference/UndConstraint.java=UTF-8
|
||||||
|
encoding/<project>=UTF-8
|
||||||
|
@ -745,7 +745,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void genByteCode(ClassGenerator cg) {
|
public void genByteCode(ClassGenerator cg) {
|
||||||
for(int t = 0; t < cg.getTypeinferenceResults().getTypeReconstructions().size(); t++){
|
//for(int t = 0; t < cg.getTypeinferenceResults().getTypeReconstructions().size(); t++){
|
||||||
DHBWConstantPoolGen _cp = cg.getConstantPool();
|
DHBWConstantPoolGen _cp = cg.getConstantPool();
|
||||||
DHBWInstructionFactory _factory = new DHBWInstructionFactory(cg, _cp);
|
DHBWInstructionFactory _factory = new DHBWInstructionFactory(cg, _cp);
|
||||||
InstructionList il = new InstructionList();
|
InstructionList il = new InstructionList();
|
||||||
@ -760,7 +760,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
for(FormalParameter parameter : this.parameterlist){
|
for(FormalParameter parameter : this.parameterlist){
|
||||||
if(parameter.getType() instanceof TypePlaceholder){
|
if(parameter.getType() instanceof TypePlaceholder){
|
||||||
argumentTypes[i] = ((TypePlaceholder) parameter.getType()).getBytecodeType(cg, t);
|
argumentTypes[i] = ((TypePlaceholder) parameter.getType()).getBytecodeType(cg, 0);
|
||||||
}else{
|
}else{
|
||||||
argumentTypes[i] = parameter.getType().getBytecodeType(cg);
|
argumentTypes[i] = parameter.getType().getBytecodeType(cg);
|
||||||
}
|
}
|
||||||
@ -776,8 +776,10 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable
|
|||||||
|
|
||||||
//Methode generieren und anfügen:
|
//Methode generieren und anfügen:
|
||||||
cg.addMethod(method.createMethod(cg, getParameterList(), getType(), get_Block()));
|
cg.addMethod(method.createMethod(cg, getParameterList(), getType(), get_Block()));
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// ino.end
|
// ino.end
|
||||||
|
@ -195,6 +195,10 @@ public class NewClass extends Expr
|
|||||||
@Override
|
@Override
|
||||||
public InstructionList genByteCode(ClassGenerator _cg) {
|
public InstructionList genByteCode(ClassGenerator _cg) {
|
||||||
InstructionList il = new InstructionList();
|
InstructionList il = new InstructionList();
|
||||||
|
|
||||||
|
il.append(_cg.getInstructionFactory().createNew(get_Name()));
|
||||||
|
il.append(InstructionConstants.DUP);
|
||||||
|
|
||||||
if(arglist!=null){
|
if(arglist!=null){
|
||||||
il.append(arglist.generateBytecode(_cg));
|
il.append(arglist.generateBytecode(_cg));
|
||||||
il.append(_cg.getInstructionFactory().createInvoke(this.get_Name(), "<init>",
|
il.append(_cg.getInstructionFactory().createInvoke(this.get_Name(), "<init>",
|
||||||
|
@ -2,9 +2,8 @@ import java.util.Vector;
|
|||||||
|
|
||||||
class NewStatement{
|
class NewStatement{
|
||||||
|
|
||||||
Vector<Integer> vi;
|
|
||||||
|
|
||||||
void methode(){
|
void methode(){
|
||||||
|
Vector<Integer> vi;
|
||||||
vi = new Vector<Integer>();
|
vi = new Vector<Integer>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user