package midend.llvm.constant; import java.util.ArrayList; import midend.llvm.type.IrInterType; import midend.llvm.type.IrArrayType; public class IrConstantArray extends IrConstant { private ArrayList elements; private int size; public IrConstantArray(String name, ArrayList elements, int size) { super(new IrArrayType(IrInterType.INT32, size), name); this.elements = elements == null ? new ArrayList<>() : new ArrayList<>(elements); this.size = size; } public ArrayList getElements() { return elements; } public int getSize() { return size; } public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getType().toString() + " "); if (elements.size() == 0) { sb.append("zeroinitializer"); } else { sb.append("["); for (IrConstant element : elements) { sb.append(element.toString()); if (element != elements.get(elements.size() - 1)) { sb.append(", "); } } int left = size - elements.size(); for (int i = 0; i < left; i++) { sb.append(", i32 0"); } sb.append("]"); } return sb.toString(); } }