JavaPatternMatching/src/de/dhbwstuttgart/syntaxtree/statement/ArgumentList.java

112 lines
2.7 KiB
Java
Raw Normal View History

2013-10-18 11:33:46 +00:00
// ino.module.ArgumentList.8621.package
2014-09-02 08:33:54 +00:00
package de.dhbwstuttgart.syntaxtree.statement;
2013-10-18 11:33:46 +00:00
// ino.end
// ino.module.ArgumentList.8621.import
import java.util.Iterator;
import java.util.Vector;
2014-09-04 14:35:44 +00:00
import de.dhbwstuttgart.bytecode.ClassFile;
import de.dhbwstuttgart.bytecode.CodeAttribute;
import de.dhbwstuttgart.bytecode.JVMCode;
import de.dhbwstuttgart.myexception.JVMCodeException;
2014-09-02 08:33:54 +00:00
import de.dhbwstuttgart.syntaxtree.FormalParameter;
import de.dhbwstuttgart.typeinference.JavaCodeResult;
import de.dhbwstuttgart.typeinference.ResultSet;
2013-10-18 11:33:46 +00:00
// ino.class.ArgumentList.24911.declaration
public class ArgumentList
// ino.end
// ino.class.ArgumentList.24911.body
{
// ino.attribute.expr.24914.declaration
public Vector<Expr> expr = new Vector<Expr>();
// ino.end
// ino.method.codegen.24917.definition
public void codegen(ClassFile classfile, CodeAttribute code, Vector paralist)
throws JVMCodeException
// ino.end
// ino.method.codegen.24917.body
{
for(int i = 0; i < expr.size(); i++)
{
expr.elementAt(i).codegen(classfile, code, paralist);
}
}
// ino.end
// ino.method.get_codegen_ArgumentList.24920.definition
public String get_codegen_ArgumentList(Vector paralist)
// ino.end
// ino.method.get_codegen_ArgumentList.24920.body
{
String ret = "(";
for(int i = 0; i < expr.size(); i++)
{
ret += JVMCode.get_codegen_Type(expr.elementAt(i).getTypeName(), paralist);
}
return ret + ")";
}
// ino.end
// ino.method.get_firstElement.24923.definition
public Object get_firstElement()
// ino.end
// ino.method.get_firstElement.24923.body
{
return expr.firstElement();
}
// ino.end
/**
* @author Andreas Stadelmeier, a10023
* @return Anzahl der Argumente in der ArgumentList
*/
public int size() {
return expr.size();
}
/**
* @author Andreas Stadelmeier, a10023
* @param n
* @return Das Element (Expr) in der Argumentliste an der Stelle n
*/
public Expr argumentAt(int n){
return expr.elementAt(n);
}
public String toString(){
if(expr == null)return "[]";
String ret = " [ ";
for(Expr expr : this.expr){
ret += expr.toString()+", ";
}
return ret + "]";
}
public JavaCodeResult printJavaCode(ResultSet resultSet) {
JavaCodeResult ret = new JavaCodeResult();
Iterator<Expr> it = this.expr.iterator();
while(it.hasNext()){
Expr expr = it.next();
ret.attach(expr.printJavaCode(resultSet));
if(it.hasNext())ret.attach(", ");
}
//if(this.expr.size()>0)ret = ret.substring(0, ret.length()-2);
return ret;
}
}
// ino.end