package submit.ast;
import java.util.ArrayList;
import java.util.List;
public class FunctionDeclaration implements Declaration {
private VarType rType;
private Statement statement;
private ArrayList params;
private String id;
public FunctionDeclaration(VarType rType, String id, List params,
Statement statement) {
this.rType = rType;
this.id = id;
this.params = new ArrayList<>(params);
this.statement = statement;
}
@Override
public void toCminus(StringBuilder builder, String prefix) {
builder.append("\n").append(rType).append(" ").append(id).append("(");
int numParams = params.size();
if (numParams >= 1)
params.get(0).toCminus(builder, "");
if (numParams > 1)
for (Param param : params.subList(1, numParams))
param.toCminus(builder, ", ");
builder.append(")").append("\n");
statement.toCminus(builder, "");
}
}