1
2
3
4
5
6 package joeq.Compiler.Analysis.IPSSA;
7
8 import java.util.Iterator;
9 import jwutil.collections.UnmodifiableIterator;
10
11 /***
12 * @author V.Benjamin Livshits
13 * @version $Id: SSAIterator.java 1931 2004-09-22 22:17:47Z joewhaley $
14 */
15 public class SSAIterator {
16 public static class DefinitionIterator extends UnmodifiableIterator {
17 private Iterator _iter;
18
19 public DefinitionIterator(Iterator iter) {
20 this._iter = iter;
21 }
22
23 public boolean hasNext() {
24 return _iter.hasNext();
25 }
26
27 public Object next() {
28 return _iter.next();
29 }
30
31 public SSADefinition nextDefinition() {
32 return (SSADefinition) _iter.next();
33 }
34 }
35
36 public static class ValueIterator extends UnmodifiableIterator {
37 private Iterator _iter;
38
39 public ValueIterator(Iterator iter) {
40 this._iter = iter;
41 }
42
43 public boolean hasNext() {
44 return _iter.hasNext();
45 }
46
47 public Object next() {
48 return _iter.next();
49 }
50
51 public SSAValue nextValue() {
52 return (SSAValue) _iter.next();
53 }
54 }
55
56 public static class BindingIterator extends UnmodifiableIterator {
57 private Iterator _iter;
58
59 public BindingIterator(Iterator iter) {
60 this._iter = iter;
61 }
62
63 public boolean hasNext() {
64 return _iter.hasNext();
65 }
66
67 public Object next() {
68 return _iter.next();
69 }
70
71 public SSABinding nextBinding() {
72 return (SSABinding) _iter.next();
73 }
74 }
75 }