51 lines
1.2 KiB
Java
51 lines
1.2 KiB
Java
package midend.symbol;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
public class FuncSymbol extends Symbol {
|
|
private int returnType; // 0 for void, 1 for int
|
|
private ArrayList<Integer> paramList; // 0 for var, 1 for array
|
|
private ArrayList<Symbol> paramSymbolList;
|
|
|
|
public FuncSymbol(String name, SymbolType type, int line, int returnType) {
|
|
super(name, type, line);
|
|
paramList = new ArrayList<>();
|
|
paramSymbolList = new ArrayList<>();
|
|
this.returnType = returnType;
|
|
}
|
|
|
|
public void addParam(int param) {
|
|
paramList.add(param);
|
|
}
|
|
|
|
public void addParamSymbol(Symbol paramSymbol) {
|
|
paramSymbolList.add(paramSymbol);
|
|
}
|
|
|
|
public int getParamNum() {
|
|
return paramList.size();
|
|
}
|
|
|
|
public int getReturnType() {
|
|
return returnType;
|
|
}
|
|
|
|
public int getParamType(int index) {
|
|
return paramList.get(index);
|
|
}
|
|
|
|
public void printParams() {
|
|
for (int i = 0; i < paramList.size(); i++) {
|
|
System.out.print(paramList.get(i) + " ");
|
|
}
|
|
}
|
|
|
|
public ArrayList<Integer> getParamList() {
|
|
return paramList;
|
|
}
|
|
|
|
public ArrayList<Symbol> getParamSymbolList() {
|
|
return paramSymbolList;
|
|
}
|
|
}
|