Java Reference
In-Depth Information
function
gather
L
abels
(CaseItem cn ) returns intList
if
null
then return (
cn . more =
gather
L
abels
( cn . labelList ))
else
rest ← gather
L
abels
( cn . more )
return (
append
(
gather
L
abels
( cn . labelList )
, rest ))
end
function gather
L
abels
( LabelList lln ) returns intList
if
null
then return ( null )
else
lln =
rest ← gather
L
abels
( llnn . more )
if lln . caseLabel =
null
then return ( rest )
else return (
cons
( lln . caseLabel , rest ))
end
procedure
check
F
or
D
uplicates
( intList il )
if length
( il )
>
1
then
if
head
( il )
= head
(
tail
( il ))
then
call
error
(” Duplicatecaselabel :”
,head
( il ))
else
call
check
F
or
D
uplicates
(
tail
( il ))
end
function
count
D
efaults
(CaseItem cn ) returns int
if
null
then return (0)
else return (
cn =
count
D
efaults
( cn . labelList )
+count
D
efaults
( cn . more ))
end
function count
D
efaults
( LabelList lln ) returns int
if
null
then return (0)
if lln . isDe f ault
then return ( 1
lln =
( lln . more ) )
+count
D
efaults
else
return (
count
D
efaults
( lln . more ))
end
Figure 9.22: Utility Semantic Methods for Switch Statements
 
Search WWH ::




Custom Search