src/share/classes/com/sun/tools/javac/tree/Pretty.java

changeset 1127
ca49d50318dc
parent 969
8cc5b440fdde
child 1142
c896d95e7469
     1.1 --- a/src/share/classes/com/sun/tools/javac/tree/Pretty.java	Sat Nov 05 00:02:33 2011 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/javac/tree/Pretty.java	Tue Nov 08 11:51:05 2011 -0800
     1.3 @@ -36,6 +36,8 @@
     1.4  import com.sun.tools.javac.tree.JCTree.*;
     1.5  
     1.6  import static com.sun.tools.javac.code.Flags.*;
     1.7 +import static com.sun.tools.javac.code.Flags.ANNOTATION;
     1.8 +import static com.sun.tools.javac.tree.JCTree.Tag.*;
     1.9  
    1.10  /** Prints out a tree as an indented Java source program.
    1.11   *
    1.12 @@ -310,7 +312,7 @@
    1.13  
    1.14      /** Is the given tree an enumerator definition? */
    1.15      boolean isEnumerator(JCTree t) {
    1.16 -        return t.getTag() == JCTree.VARDEF && (((JCVariableDecl) t).mods.flags & ENUM) != 0;
    1.17 +        return t.hasTag(VARDEF) && (((JCVariableDecl) t).mods.flags & ENUM) != 0;
    1.18      }
    1.19  
    1.20      /** Print unit consisting of package clause and import statements in toplevel,
    1.21 @@ -331,9 +333,9 @@
    1.22          }
    1.23          boolean firstImport = true;
    1.24          for (List<JCTree> l = tree.defs;
    1.25 -        l.nonEmpty() && (cdef == null || l.head.getTag() == JCTree.IMPORT);
    1.26 +        l.nonEmpty() && (cdef == null || l.head.hasTag(IMPORT));
    1.27          l = l.tail) {
    1.28 -            if (l.head.getTag() == JCTree.IMPORT) {
    1.29 +            if (l.head.hasTag(IMPORT)) {
    1.30                  JCImport imp = (JCImport)l.head;
    1.31                  Name name = TreeInfo.name(imp.qualid);
    1.32                  if (name == name.table.names.asterisk ||
    1.33 @@ -484,7 +486,7 @@
    1.34                  print("/*public static final*/ ");
    1.35                  print(tree.name);
    1.36                  if (tree.init != null) {
    1.37 -                    if (sourceOutput && tree.init.getTag() == JCTree.NEWCLASS) {
    1.38 +                    if (sourceOutput && tree.init.hasTag(NEWCLASS)) {
    1.39                          print(" /*enum*/ ");
    1.40                          JCNewClass init = (JCNewClass) tree.init;
    1.41                          if (init.args != null && init.args.nonEmpty()) {
    1.42 @@ -545,7 +547,7 @@
    1.43              printStat(tree.body);
    1.44              align();
    1.45              print(" while ");
    1.46 -            if (tree.cond.getTag() == JCTree.PARENS) {
    1.47 +            if (tree.cond.hasTag(PARENS)) {
    1.48                  printExpr(tree.cond);
    1.49              } else {
    1.50                  print("(");
    1.51 @@ -561,7 +563,7 @@
    1.52      public void visitWhileLoop(JCWhileLoop tree) {
    1.53          try {
    1.54              print("while ");
    1.55 -            if (tree.cond.getTag() == JCTree.PARENS) {
    1.56 +            if (tree.cond.hasTag(PARENS)) {
    1.57                  printExpr(tree.cond);
    1.58              } else {
    1.59                  print("(");
    1.60 @@ -579,7 +581,7 @@
    1.61          try {
    1.62              print("for (");
    1.63              if (tree.init.nonEmpty()) {
    1.64 -                if (tree.init.head.getTag() == JCTree.VARDEF) {
    1.65 +                if (tree.init.head.hasTag(VARDEF)) {
    1.66                      printExpr(tree.init.head);
    1.67                      for (List<JCStatement> l = tree.init.tail; l.nonEmpty(); l = l.tail) {
    1.68                          JCVariableDecl vdef = (JCVariableDecl)l.head;
    1.69 @@ -626,7 +628,7 @@
    1.70      public void visitSwitch(JCSwitch tree) {
    1.71          try {
    1.72              print("switch ");
    1.73 -            if (tree.selector.getTag() == JCTree.PARENS) {
    1.74 +            if (tree.selector.hasTag(PARENS)) {
    1.75                  printExpr(tree.selector);
    1.76              } else {
    1.77                  print("(");
    1.78 @@ -665,7 +667,7 @@
    1.79      public void visitSynchronized(JCSynchronized tree) {
    1.80          try {
    1.81              print("synchronized ");
    1.82 -            if (tree.lock.getTag() == JCTree.PARENS) {
    1.83 +            if (tree.lock.hasTag(PARENS)) {
    1.84                  printExpr(tree.lock);
    1.85              } else {
    1.86                  print("(");
    1.87 @@ -736,7 +738,7 @@
    1.88      public void visitIf(JCIf tree) {
    1.89          try {
    1.90              print("if ");
    1.91 -            if (tree.cond.getTag() == JCTree.PARENS) {
    1.92 +            if (tree.cond.hasTag(PARENS)) {
    1.93                  printExpr(tree.cond);
    1.94              } else {
    1.95                  print("(");
    1.96 @@ -823,7 +825,7 @@
    1.97      public void visitApply(JCMethodInvocation tree) {
    1.98          try {
    1.99              if (!tree.typeargs.isEmpty()) {
   1.100 -                if (tree.meth.getTag() == JCTree.SELECT) {
   1.101 +                if (tree.meth.hasTag(SELECT)) {
   1.102                      JCFieldAccess left = (JCFieldAccess)tree.meth;
   1.103                      printExpr(left.selected);
   1.104                      print(".<");
   1.105 @@ -882,7 +884,7 @@
   1.106              if (tree.elemtype != null) {
   1.107                  print("new ");
   1.108                  JCTree elem = tree.elemtype;
   1.109 -                if (elem.getTag() == JCTree.TYPEARRAY)
   1.110 +                if (elem.hasTag(TYPEARRAY))
   1.111                      printBaseElementType((JCArrayTypeTree) elem);
   1.112                  else
   1.113                      printExpr(elem);
   1.114 @@ -927,36 +929,36 @@
   1.115          }
   1.116      }
   1.117  
   1.118 -    public String operatorName(int tag) {
   1.119 +    public String operatorName(JCTree.Tag tag) {
   1.120          switch(tag) {
   1.121 -            case JCTree.POS:     return "+";
   1.122 -            case JCTree.NEG:     return "-";
   1.123 -            case JCTree.NOT:     return "!";
   1.124 -            case JCTree.COMPL:   return "~";
   1.125 -            case JCTree.PREINC:  return "++";
   1.126 -            case JCTree.PREDEC:  return "--";
   1.127 -            case JCTree.POSTINC: return "++";
   1.128 -            case JCTree.POSTDEC: return "--";
   1.129 -            case JCTree.NULLCHK: return "<*nullchk*>";
   1.130 -            case JCTree.OR:      return "||";
   1.131 -            case JCTree.AND:     return "&&";
   1.132 -            case JCTree.EQ:      return "==";
   1.133 -            case JCTree.NE:      return "!=";
   1.134 -            case JCTree.LT:      return "<";
   1.135 -            case JCTree.GT:      return ">";
   1.136 -            case JCTree.LE:      return "<=";
   1.137 -            case JCTree.GE:      return ">=";
   1.138 -            case JCTree.BITOR:   return "|";
   1.139 -            case JCTree.BITXOR:  return "^";
   1.140 -            case JCTree.BITAND:  return "&";
   1.141 -            case JCTree.SL:      return "<<";
   1.142 -            case JCTree.SR:      return ">>";
   1.143 -            case JCTree.USR:     return ">>>";
   1.144 -            case JCTree.PLUS:    return "+";
   1.145 -            case JCTree.MINUS:   return "-";
   1.146 -            case JCTree.MUL:     return "*";
   1.147 -            case JCTree.DIV:     return "/";
   1.148 -            case JCTree.MOD:     return "%";
   1.149 +            case POS:     return "+";
   1.150 +            case NEG:     return "-";
   1.151 +            case NOT:     return "!";
   1.152 +            case COMPL:   return "~";
   1.153 +            case PREINC:  return "++";
   1.154 +            case PREDEC:  return "--";
   1.155 +            case POSTINC: return "++";
   1.156 +            case POSTDEC: return "--";
   1.157 +            case NULLCHK: return "<*nullchk*>";
   1.158 +            case OR:      return "||";
   1.159 +            case AND:     return "&&";
   1.160 +            case EQ:      return "==";
   1.161 +            case NE:      return "!=";
   1.162 +            case LT:      return "<";
   1.163 +            case GT:      return ">";
   1.164 +            case LE:      return "<=";
   1.165 +            case GE:      return ">=";
   1.166 +            case BITOR:   return "|";
   1.167 +            case BITXOR:  return "^";
   1.168 +            case BITAND:  return "&";
   1.169 +            case SL:      return "<<";
   1.170 +            case SR:      return ">>";
   1.171 +            case USR:     return ">>>";
   1.172 +            case PLUS:    return "+";
   1.173 +            case MINUS:   return "-";
   1.174 +            case MUL:     return "*";
   1.175 +            case DIV:     return "/";
   1.176 +            case MOD:     return "%";
   1.177              default: throw new Error();
   1.178          }
   1.179      }
   1.180 @@ -965,7 +967,7 @@
   1.181          try {
   1.182              open(prec, TreeInfo.assignopPrec);
   1.183              printExpr(tree.lhs, TreeInfo.assignopPrec + 1);
   1.184 -            print(" " + operatorName(tree.getTag() - JCTree.ASGOffset) + "= ");
   1.185 +            print(" " + operatorName(tree.getTag().noAssignOp()) + "= ");
   1.186              printExpr(tree.rhs, TreeInfo.assignopPrec);
   1.187              close(prec, TreeInfo.assignopPrec);
   1.188          } catch (IOException e) {
   1.189 @@ -978,7 +980,7 @@
   1.190              int ownprec = TreeInfo.opPrec(tree.getTag());
   1.191              String opname = operatorName(tree.getTag());
   1.192              open(prec, ownprec);
   1.193 -            if (tree.getTag() <= JCTree.PREDEC) {
   1.194 +            if (!tree.getTag().isPostUnaryOp()) {
   1.195                  print(opname);
   1.196                  printExpr(tree.arg, ownprec);
   1.197              } else {
   1.198 @@ -1153,7 +1155,7 @@
   1.199          while (true) {
   1.200              elem = tree.elemtype;
   1.201              print("[]");
   1.202 -            if (elem.getTag() != JCTree.TYPEARRAY) break;
   1.203 +            if (!elem.hasTag(TYPEARRAY)) break;
   1.204              tree = (JCArrayTypeTree) elem;
   1.205          }
   1.206      }

mercurial