blob: a4d066fb9eb7af5f8aa75efe359afe344d307e4e (
plain)
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
|
/**
* 所有声明的类的列表
*/
package minijava.symboltable;
import java.util.Vector;
public class MClasses extends MType {
public Vector<MClass> mj_classes = new Vector<MClass>(); // 用于存放类
// 在表中插入类
public String InsertClass(MClass v_class) {
String class_name = v_class.getName();
if (Repeated(class_name)) // 如已经定义过该类,返回错误信息
return "Class double declaration " + "\"" + class_name + "\"";
mj_classes.addElement(v_class);
return null;
}
// 判定是否定义同名的类
public boolean Repeated(String class_name) {
int sz = mj_classes.size();
for (int i = 0; i < sz; i++) {
String c_name = ((MClass) mj_classes.elementAt(i)).getName();
if (c_name.equals(class_name))
return true;
}
return false;
}
}
|