summaryrefslogtreecommitdiff
path: root/src/minijava/symboltable/MMethod.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/minijava/symboltable/MMethod.java')
-rw-r--r--src/minijava/symboltable/MMethod.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/minijava/symboltable/MMethod.java b/src/minijava/symboltable/MMethod.java
index 30159cf..f4b58fa 100644
--- a/src/minijava/symboltable/MMethod.java
+++ b/src/minijava/symboltable/MMethod.java
@@ -1,11 +1,27 @@
package minijava.symboltable;
-public class MMethod extends MType {
+public class MMethod extends MLocalVarType {
MVarList params;
String ret_type_name;
+ MClass method_class;
+ MVarList paramList;
public MMethod(String m_name, int m_type, int m_column) {
super(m_type, m_column);
this.name = m_name;
+ ret_type_name = null;
+ paramList = new MVarList();
+ }
+
+ public String insertVar(MVariable var) {
+ String var_name = var.getName();
+ if (paramList.findVar(var_name)!=-1) {
+ return "Variable \'" + var_name + "\' already in param list!";
+ }
+ if (vars.findVar(var_name)!=-1) {
+ return "Variable double declaration " + "\"" + var_name + "\"";
+ }
+ vars.insertVar(var);
+ return null;
}
}