105 |
| SOME(I.Direct r) => (r::dst, src) |
| SOME(I.Direct r) => (r::dst, src) |
106 |
(* | SOME(I.Displace{base, disp}) => (dst, base::src) *) |
(* | SOME(I.Displace{base, disp}) => (dst, base::src) *) |
107 |
(*esac*)) |
(*esac*)) |
108 |
| I.ANNOTATION{a=BasicAnnotations.DEFUSER(d,u),...} => (d,u) |
| I.ANNOTATION{a, i, ...} => |
109 |
| I.ANNOTATION{i,...} => defUseR i |
(case #peek BasicAnnotations.DEFUSER a of |
110 |
|
SOME(d,u) => (d,u) |
111 |
|
| NONE => defUseR i |
112 |
|
) |
113 |
| _ => ([], []) |
| _ => ([], []) |
114 |
end |
end |
115 |
|
|
127 |
of SOME(I.FDirect f) => (f::dst, src) |
of SOME(I.FDirect f) => (f::dst, src) |
128 |
| _ => (dst, src) |
| _ => (dst, src) |
129 |
(*esac*)) |
(*esac*)) |
130 |
| I.ANNOTATION{a=BasicAnnotations.DEFUSEF(d,u),...} => (d,u) |
| I.ANNOTATION{a, i, ...} => |
131 |
| I.ANNOTATION{i,...} => defUseF i |
(case #peek BasicAnnotations.DEFUSEF a of |
132 |
|
SOME(d,u) => (d,u) |
133 |
|
| NONE => defUseF i |
134 |
|
) |
135 |
| _ => ([], []) |
| _ => ([], []) |
136 |
(*esac*)) |
(*esac*)) |
137 |
|
|
145 |
(*======================================================================== |
(*======================================================================== |
146 |
* Annotations |
* Annotations |
147 |
*========================================================================*) |
*========================================================================*) |
148 |
fun getAnnotations(I.ANNOTATION{i,a}) = a::getAnnotations i |
fun getAnnotations(I.ANNOTATION{i,a}) = |
149 |
| getAnnotations _ = [] |
let val (i,an) = getAnnotations i in (i,a::an) end |
150 |
|
| getAnnotations i = (i,[]) |
151 |
fun annotate(i,a) = I.ANNOTATION{i=i,a=a} |
fun annotate(i,a) = I.ANNOTATION{i=i,a=a} |
152 |
|
|
153 |
(*======================================================================== |
(*======================================================================== |