class ClassInfo
pri name : String;
pri CP : CpList; %Constant Pool
pri super : ClassInfo;
pri fstMeth : MethodList;
pri fstField : FieldList;
meth SetSuper =^ ( val s: ClassInfo ·
super:= s;
)
end
meth GetSuper =^ ( res s: ClassInfo ·
s:= super;
)
end
meth SetName =^ ( val n: String ·
name:= n;
)
end
meth GetName =^ ( res n: String ·
n:= name;
)
end
meth SetCP =^ ( val c: CpList ·
CP:= c;
)
end
meth GetCP =^ ( res c: CpList ·
c:= CP;
)
end
meth SetfstMeth =^ ( val f: MethodList ·
fstMeth:= f;
)
end
meth GetfstMeth =^ ( res f: MethodList ·
f:= fstMeth;
)
end
meth SetfstField =^ ( val f: FieldList ·
fstField:= f;
)
end
meth GetfstField =^ ( res f: FieldList ·
f:= fstField;
)
end
meth FindCPList =^ (val index: Int; res entry : CPList ·
CP.FindCPList(index, entry);
)
end
meth Conforms =^ ( val Tyname : string;
res found : Boolean ·
var name : String ·
self.GetName(name);
if [] name = Tyname ® found:=true;
[] (super <> null) and (name <> Tyname) ®
super.Conforms(tyname, found);
fi
end
)
end
meth MtdLookup =^ ( val name : string;
val descriptor : string;
res mtd : MethodInfo;
res found : Boolean ·
fstMeth.FindMethod(name, descriptor,mtd,found);
if [] not Found ®
if [] super <> null ®
super.MtdLookup(name, descriptor, mtd, found);
fi
fi
)
end
end