diff options
-rw-r--r-- | src/lombok/core/PrintAST.java | 10 | ||||
-rw-r--r-- | src/lombok/eclipse/handlers/HandlePrintAST.java | 17 | ||||
-rw-r--r-- | src/lombok/javac/handlers/HandlePrintAST.java | 18 |
3 files changed, 45 insertions, 0 deletions
diff --git a/src/lombok/core/PrintAST.java b/src/lombok/core/PrintAST.java new file mode 100644 index 00000000..3ad2bd68 --- /dev/null +++ b/src/lombok/core/PrintAST.java @@ -0,0 +1,10 @@ +package lombok.core; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.LOCAL_VARIABLE, ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.SOURCE) +public @interface PrintAST {} diff --git a/src/lombok/eclipse/handlers/HandlePrintAST.java b/src/lombok/eclipse/handlers/HandlePrintAST.java new file mode 100644 index 00000000..2e379ce3 --- /dev/null +++ b/src/lombok/eclipse/handlers/HandlePrintAST.java @@ -0,0 +1,17 @@ +package lombok.eclipse.handlers; + +import org.eclipse.jdt.internal.compiler.ast.Annotation; +import org.mangosdk.spi.ProviderFor; + +import lombok.core.AnnotationValues; +import lombok.core.PrintAST; +import lombok.eclipse.EclipseASTVisitor; +import lombok.eclipse.EclipseAnnotationHandler; +import lombok.eclipse.EclipseAST.Node; + +@ProviderFor(EclipseAnnotationHandler.class) +public class HandlePrintAST implements EclipseAnnotationHandler<PrintAST> { + @Override public void handle(AnnotationValues<PrintAST> annotation, Annotation ast, Node annotationNode) { + annotationNode.up().traverse(new EclipseASTVisitor.EclipseASTPrinter()); + } +} diff --git a/src/lombok/javac/handlers/HandlePrintAST.java b/src/lombok/javac/handlers/HandlePrintAST.java new file mode 100644 index 00000000..23f4c6d6 --- /dev/null +++ b/src/lombok/javac/handlers/HandlePrintAST.java @@ -0,0 +1,18 @@ +package lombok.javac.handlers; + +import org.mangosdk.spi.ProviderFor; + +import com.sun.tools.javac.tree.JCTree.JCAnnotation; + +import lombok.core.AnnotationValues; +import lombok.core.PrintAST; +import lombok.javac.JavacASTVisitor; +import lombok.javac.JavacAnnotationHandler; +import lombok.javac.JavacAST.Node; + +@ProviderFor(JavacAnnotationHandler.class) +public class HandlePrintAST implements JavacAnnotationHandler<PrintAST> { + @Override public void handle(AnnotationValues<PrintAST> annotation, JCAnnotation ast, Node annotationNode) { + annotationNode.up().traverse(new JavacASTVisitor.JavacASTPrinter()); + } +} |