Java Reference
In-Depth Information
function
(Calling
cn
)
returns
SetO f Attributes
currentClass
← get
get
M
ethods
C
urrent
C
lass
()
if
cn
.
quali f ier
=
null
then
methodSet
←
currentClass
.
methodDefs(
cn
.
method
)
else
methodSet
←∅
if
null or
cn
.
quali f ier
=
superNode
then
nextClass
←
currentClass
.
parent
else
nextClass
←
cn
.
quali f ier
.
type
while
nextClass
cn
.
quali f ier
=
null do
if
cn
.
quali f ier
null and
cn
.
quali f ier
superNode
and not
nextClass
.
isPublic
then
nextClass
←
nextClass
.
parent
continue
methodSet
←
methodSet
∪
nextClass
.
visibileMethods(
cn
.
method
)
nextClass
←
nextClass
.
parent
return
(
methodSet
)
end
function
get
A
rg
T
ypes
(ExprList
el
)
returns
ListO f Type
36
typeList
←
null
foreach
expr
∈
el
do
typeList
← append
(
typeList
,list
(
expr
.
type
))
return
typeList
end
function
applicable
(
f ormalParms
,
actualParms
)
returns
Boolean
37
if
f ormalParms
=
null and
actualParms
=
null
then return
(
true
)
else
if
f ormalParms
=
null or
actualParms
=
null
then return
false
else
if
bindable
(
head
(
f ormalParms
)
,head
(
actualParms
))
then return
applicable
(
actualParms
))
(
tail
(
f ormalParms
)
,tail
else return
false
end
Figure 9.32: Utility Semantic Methods for Method Calls (Part 1)