1 package jdk.incubator.code.internal;
 2 
 3 import com.sun.tools.javac.tree.JCTree;
 4 import com.sun.tools.javac.tree.TreeScanner;
 5 
 6 public class TreeScannerPrev extends TreeScanner {
 7 
 8     private JCTree currentNode;
 9     private JCTree prevNode;
10 
11     @Override
12     public void scan(JCTree tree) {
13         JCTree prevPrevNode = prevNode;
14         prevNode = currentNode;
15         currentNode = tree;
16         try {
17             super.scan(tree);
18         } finally {
19             currentNode = prevNode;
20             prevNode = prevPrevNode;
21         }
22     }
23 
24     public void scan(JCTree tree, JCTree prevNode) {
25         this.prevNode = null;
26         currentNode = prevNode;
27         scan(tree);
28     }
29 
30     JCTree currentNode() {
31         return currentNode;
32     }
33 
34     JCTree prevNode() {
35         return prevNode;
36     }
37 }