Search in sources :

Example 11 with JCTree

use of com.sun.tools.javac.tree.JCTree in project lombok by rzwitserloot.

the class PrettyPrinter method visitTopLevel.

@Override
public void visitTopLevel(JCCompilationUnit tree) {
    printDocComment(tree);
    if (tree.pid != null) {
        consumeComments(tree);
        aPrint("package ");
        print(tree.pid);
        println(";", tree.pid);
    }
    boolean first = true;
    for (JCTree child : tree.defs) {
        if (!(child instanceof JCImport))
            continue;
        if (first)
            println();
        first = false;
        print(child);
    }
    for (JCTree child : tree.defs) {
        if (child instanceof JCImport)
            continue;
        print(child);
    }
    consumeComments(Integer.MAX_VALUE);
}
Also used : JCImport(com.sun.tools.javac.tree.JCTree.JCImport) JCTree(com.sun.tools.javac.tree.JCTree)

Example 12 with JCTree

use of com.sun.tools.javac.tree.JCTree in project lombok by rzwitserloot.

the class PrettyPrinter method print.

private void print(List<? extends JCTree> trees, String infix) {
    boolean first = true;
    JCTree prev = null;
    for (JCTree tree : trees) {
        if (suppress(tree))
            continue;
        if (!first && infix != null && !infix.isEmpty()) {
            if ("\n".equals(infix))
                println(prev);
            else
                print(infix);
        }
        first = false;
        print(tree);
        prev = tree;
    }
}
Also used : JCTree(com.sun.tools.javac.tree.JCTree)

Example 13 with JCTree

use of com.sun.tools.javac.tree.JCTree in project lombok by rzwitserloot.

the class PrettyPrinter method printClassMembers.

private void printClassMembers(List<JCTree> members, boolean isEnum, boolean isInterface) {
    Class<?> prefType = null;
    // 1 = normal, 2 = with body, 3 = no enum field yet.
    int typeOfPrevEnumMember = isEnum ? 3 : 0;
    boolean prevWasEnumMember = isEnum;
    for (JCTree member : members) {
        if (typeOfPrevEnumMember == 3 && member instanceof JCMethodDecl && (((JCMethodDecl) member).mods.flags & GENERATEDCONSTR) != 0)
            continue;
        boolean isEnumVar = isEnum && member instanceof JCVariableDecl && (((JCVariableDecl) member).mods.flags & ENUM) != 0;
        if (!isEnumVar && prevWasEnumMember) {
            prevWasEnumMember = false;
            if (typeOfPrevEnumMember == 3)
                align();
            println(";");
        }
        if (isEnumVar) {
            if (prefType != null && prefType != JCVariableDecl.class)
                println();
            switch(typeOfPrevEnumMember) {
                case 1:
                    print(", ");
                    break;
                case 2:
                    println(",");
                    align();
                    break;
            }
            print(member);
            JCTree init = ((JCVariableDecl) member).init;
            typeOfPrevEnumMember = init instanceof JCNewClass && ((JCNewClass) init).def != null ? 2 : 1;
        } else if (member instanceof JCVariableDecl) {
            if (prefType != null && prefType != JCVariableDecl.class)
                println();
            if (isInterface)
                flagMod = -1L & ~(PUBLIC | STATIC | FINAL);
            print(member);
        } else if (member instanceof JCMethodDecl) {
            if ((((JCMethodDecl) member).mods.flags & GENERATEDCONSTR) != 0)
                continue;
            if (prefType != null)
                println();
            if (isInterface)
                flagMod = -1L & ~(PUBLIC | ABSTRACT);
            print(member);
        } else if (member instanceof JCClassDecl) {
            if (prefType != null)
                println();
            if (isInterface)
                flagMod = -1L & ~(PUBLIC | STATIC);
            print(member);
        } else {
            if (prefType != null)
                println();
            print(member);
        }
        prefType = member.getClass();
    }
    if (prevWasEnumMember) {
        prevWasEnumMember = false;
        if (typeOfPrevEnumMember == 3)
            align();
        println(";");
    }
}
Also used : JCClassDecl(com.sun.tools.javac.tree.JCTree.JCClassDecl) JCMethodDecl(com.sun.tools.javac.tree.JCTree.JCMethodDecl) JCTree(com.sun.tools.javac.tree.JCTree) JCNewClass(com.sun.tools.javac.tree.JCTree.JCNewClass) JCVariableDecl(com.sun.tools.javac.tree.JCTree.JCVariableDecl)

Example 14 with JCTree

use of com.sun.tools.javac.tree.JCTree in project lombok by rzwitserloot.

the class PrettyPrinter method visitTypeArray.

@Override
public void visitTypeArray(JCArrayTypeTree tree) {
    JCTree elem = tree.elemtype;
    while (elem instanceof JCWildcard) elem = ((JCWildcard) elem).inner;
    print(elem);
    print("[]");
}
Also used : JCWildcard(com.sun.tools.javac.tree.JCTree.JCWildcard) JCTree(com.sun.tools.javac.tree.JCTree)

Example 15 with JCTree

use of com.sun.tools.javac.tree.JCTree in project lombok by rzwitserloot.

the class JavacHandlerUtil method addAllButOne.

private static List<JCTree> addAllButOne(List<JCTree> defs, int idx) {
    ListBuffer<JCTree> out = new ListBuffer<JCTree>();
    int i = 0;
    for (JCTree def : defs) {
        if (i++ != idx)
            out.append(def);
    }
    return out.toList();
}
Also used : ListBuffer(com.sun.tools.javac.util.ListBuffer) JCTree(com.sun.tools.javac.tree.JCTree)

Aggregations

JCTree (com.sun.tools.javac.tree.JCTree)183 JCExpression (com.sun.tools.javac.tree.JCTree.JCExpression)28 Symbol (com.sun.tools.javac.code.Symbol)22 JCVariableDecl (com.sun.tools.javac.tree.JCTree.JCVariableDecl)22 Type (com.sun.tools.javac.code.Type)19 Tree (com.redhat.ceylon.compiler.typechecker.tree.Tree)17 Tree (com.sun.source.tree.Tree)15 ExpressionTree (com.sun.source.tree.ExpressionTree)14 JCFieldAccess (com.sun.tools.javac.tree.JCTree.JCFieldAccess)14 SuggestedFix (com.google.errorprone.fixes.SuggestedFix)11 JCClassDecl (com.sun.tools.javac.tree.JCTree.JCClassDecl)11 JCStatement (com.sun.tools.javac.tree.JCTree.JCStatement)10 ArrayList (java.util.ArrayList)10 MethodInvocationTree (com.sun.source.tree.MethodInvocationTree)9 JCMethodDecl (com.sun.tools.javac.tree.JCTree.JCMethodDecl)9 JCNewClass (com.sun.tools.javac.tree.JCTree.JCNewClass)8 ListBuffer (com.sun.tools.javac.util.ListBuffer)8 Type (com.redhat.ceylon.model.typechecker.model.Type)7 ClassTree (com.sun.source.tree.ClassTree)7 MemberSelectTree (com.sun.source.tree.MemberSelectTree)7