-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMethod.java
More file actions
83 lines (73 loc) · 2.04 KB
/
Copy pathMethod.java
File metadata and controls
83 lines (73 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package FinalProject;
import java.util.*;
public class Method extends SymbolTE{
public List<Variable> parameters;
public HashMap<String, Variable> localvars;
Method(String name, String returnType){
super.name = name;
super.type = returnType;
localvars = new HashMap<String, Variable>();
parameters = new ArrayList<Variable>();
}
boolean containsParam(String id){
for (int i = 0; i < parameters.size(); i++){
if (id.equals(parameters.get(i).name)){
return true;
}
}
return false;
}
boolean addParam(Variable v){
if (!containsParam(v.name)){
return parameters.add(v);
}
return false;
}
Variable getParam(String id){
for (int i = 0; i < parameters.size(); i++){
if (id.equals(parameters.get(i).name)){
return parameters.get(i);
}
}
return null;
}
boolean containsVar(String id){
return localvars.containsKey(id);
}
boolean addVar(Variable v){
if (!containsVar(v.name)){
localvars.put(v.name, v);
return true;
}
return false;
}
Variable getVar(String id){
return localvars.get(id);
}
String print(){
Variable[] arr = localvars.values().toArray(new Variable[0]);
int numparam = parameters.size();
String str = "[" + super.name + ", " + super.type + ", (" ;
for (int i = 0; i < numparam; i++){
if (numparam > 5) {
str += "\n\t";
}
str += parameters.get(i).print();
}
if (numparam > 5) {
str += "\n\t";
}
str += "), {";
for (int i = 0; i < arr.length; i++){
if (arr.length > 5) {
str += "\n\t";
}
str += arr[i].print();
}
if (arr.length > 5) {
str += "\n\t";
}
str += "}]";
return str;
}
}