summaryrefslogtreecommitdiffstats
path: root/src/ast/types/FunctionType.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast/types/FunctionType.java')
-rw-r--r--src/ast/types/FunctionType.java25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/ast/types/FunctionType.java b/src/ast/types/FunctionType.java
index 5e6adaa..1a04bb6 100644
--- a/src/ast/types/FunctionType.java
+++ b/src/ast/types/FunctionType.java
@@ -7,13 +7,25 @@ public class FunctionType extends Type {
private final int paramNumber;
private final Type returnType;
+ private final String label;
+ private int localvarNum;
- public FunctionType(int paramNumber, Type returnType) {
+ public FunctionType(int paramNumber, Type returnType, String label) {
this.paramNumber = paramNumber;
this.returnType = returnType;
+ this.label = label;
+ this.localvarNum = 0;
}
- // Return the length of the parameters
+ public void addLocalVar() {
+ localvarNum++;
+ }
+
+ public int getLocalvarNum() {
+ return localvarNum;
+ }
+
+ // Return the number of the parameters
public int getParamNumber() {
return paramNumber;
}
@@ -22,8 +34,17 @@ public class FunctionType extends Type {
return returnType;
}
+ public String getLabel() {
+ return label;
+ }
+
@Override
public String toPrint(String prefix) {
return prefix + "Function\n";
}
+
+ @Override
+ public String toString() {
+ return "NP: " + paramNumber + " RT: " + returnType + " L: " + label;
+ }
}