1 package jdk.incubator.code.internal;
 2 
 3 import com.sun.tools.javac.tree.JCTree;
 4 import com.sun.tools.javac.tree.TreeTranslator;
 5 
 6 public class TreeTranslatorPrev extends TreeTranslator {
 7 
 8     private JCTree currentNode;
 9     private JCTree prevNode;
10 
11     @Override
12     public <T extends JCTree> T translate(T tree) {
13         JCTree prevPrevNode = prevNode;
14         prevNode = currentNode;
15         currentNode = tree;
16         try {
17             return super.translate(tree);
18         } finally {
19             currentNode = prevNode;
20             prevNode = prevPrevNode;
21         }
22     }
23 
24     JCTree currentNode() {
25         return currentNode;
26     }
27 
28     JCTree prevNode() {
29         return prevNode;
30     }
31 }