ASTPair.java
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

Others

  1. package antlr;
  2. /* ANTLR Translator Generator
  3.  * Project led by Terence Parr at http://www.jGuru.com
  4.  * Software rights: http://www.antlr.org/RIGHTS.html
  5.  *
  6.  * $Id: //depot/code/org.antlr/release/antlr-2.7.0/antlr/ASTPair.java#1 $
  7.  */
  8. import antlr.collections.AST;
  9. /** ASTPair:  utility class used for manipulating a pair of ASTs
  10.   * representing the current AST root and current AST sibling.
  11.   * This exists to compensate for the lack of pointers or 'var'
  12.   * arguments in Java.
  13.   */
  14. public class ASTPair {
  15. public AST root; // current root of tree
  16. public AST child; // current child to which siblings are added
  17.     /** Make sure that child is the last sibling */
  18.     public final void advanceChildToEnd() {
  19. if (child != null) {
  20.     while (child.getNextSibling() != null) {
  21. child = child.getNextSibling();
  22.     }
  23. }
  24.     }
  25.     /** Copy an ASTPair.  Don't call it clone() because we want type-safety */
  26.     public ASTPair copy() {
  27. ASTPair tmp = new ASTPair();
  28. tmp.root = root;
  29. tmp.child = child;
  30. return tmp;
  31.     }
  32.     public String toString() {
  33. String r = root==null ? "null" : root.getText();
  34. String c = child==null ? "null" : child.getText();
  35. return "["+r+","+c+"]";
  36.     }
  37. }