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, ""); } }