Files
MY_COMPILER/midend/symbol/FuncSymbol.java
2025-12-12 20:14:00 +08:00

51 lines
1.3 KiB
Java
Executable File

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;
}
}