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.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/minijava/symboltable/MMethod.java b/src/minijava/symboltable/MMethod.java
index f4b58fa..ea2a363 100644
--- a/src/minijava/symboltable/MMethod.java
+++ b/src/minijava/symboltable/MMethod.java
@@ -6,9 +6,10 @@ public class MMethod extends MLocalVarType {
MClass method_class;
MVarList paramList;
- public MMethod(String m_name, int m_type, int m_column) {
- super(m_type, m_column);
+ public MMethod(String m_name, String ret_type, int m_line, int m_column) {
+ super(m_line, m_column);
this.name = m_name;
+ this.ret_type_name = ret_type;
ret_type_name = null;
paramList = new MVarList();
}
@@ -24,4 +25,13 @@ public class MMethod extends MLocalVarType {
vars.insertVar(var);
return null;
}
+
+ public String addParam(MVariable var) {
+ String var_name = var.getName();
+ if (paramList.findVar(var_name)!=-1) {
+ return "Parameter variable double declaration: " + var_name;
+ }
+ paramList.insertVar(var);
+ return null;
+ }
}