diff --git a/app/src/processing/app/preproc/PdeEmitter.java b/app/src/processing/app/preproc/PdeEmitter.java index ba23ab4d9..8dc445244 100644 --- a/app/src/processing/app/preproc/PdeEmitter.java +++ b/app/src/processing/app/preproc/PdeEmitter.java @@ -738,6 +738,22 @@ public class PdeEmitter implements PdeTokenTypes { printChildren(ast); break; + case ANNOTATION: + out.print("@"); + printChildren(ast); + break; + + case ANNOTATION_ARRAY_INIT: + printChildren(ast); + break; + + case ANNOTATION_MEMBER_VALUE_PAIR: + print(ast.getFirstChild()); + out.print("="); + dumpHiddenBefore(getBestPrintableNode(ast.getFirstChild().getNextSibling(), false)); + print(ast.getFirstChild().getNextSibling()); + break; + default: debug.println("Unrecognized type:" + ast.getType() + " (" + TokenUtil.nameOf(ast) + ")"); diff --git a/app/test/resources/annotations.expected b/app/test/resources/annotations.expected new file mode 100755 index 000000000..1054d5910 --- /dev/null +++ b/app/test/resources/annotations.expected @@ -0,0 +1,47 @@ +import processing.core.*; +import processing.xml.*; + +import java.applet.*; +import java.awt.Dimension; +import java.awt.Frame; +import java.awt.event.MouseEvent; +import java.awt.event.KeyEvent; +import java.awt.event.FocusEvent; +import java.awt.Image; +import java.io.*; +import java.net.*; +import java.text.*; +import java.util.*; +import java.util.zip.*; +import java.util.regex.*; + +public class annotations extends PApplet { + +public void setup() { + size(200,200); +} + +@Deprecated +public void banana() { + println("hey"); +} + +@SuppressWarnings({"serial", "rawtypes"}) +class Banana implements Serializable { + +} + +@SuppressWarnings("serial") +class Apple implements Serializable { + +} + +@javax.annotation.Generated(value = {"com.mrfeinberg.ImmortalAroma" +}, + comments="Shazam!", + date="2001-07-04T12:08:56.235-0700") +class Pear {} + static public void main(String args[]) { + PApplet.main(new String[] { "--bgcolor=null", "annotations" }); + } +} diff --git a/app/test/resources/annotations.pde b/app/test/resources/annotations.pde new file mode 100755 index 000000000..1381d95e0 --- /dev/null +++ b/app/test/resources/annotations.pde @@ -0,0 +1,24 @@ +void setup() { + size(200,200); +} + +@Deprecated +public void banana() { + println("hey"); +} + +@SuppressWarnings({"serial", "rawtypes"}) +class Banana implements Serializable { + +} + +@SuppressWarnings("serial") +class Apple implements Serializable { + +} + +@javax.annotation.Generated(value = {"com.mrfeinberg.ImmortalAroma" +}, + comments="Shazam!", + date="2001-07-04T12:08:56.235-0700") +class Pear {} \ No newline at end of file diff --git a/app/test/src/test/processing/parsing/ParserTests.java b/app/test/src/test/processing/parsing/ParserTests.java index 777a2284b..26e255397 100644 --- a/app/test/src/test/processing/parsing/ParserTests.java +++ b/app/test/src/test/processing/parsing/ParserTests.java @@ -2,6 +2,9 @@ package test.processing.parsing; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; +import static test.processing.parsing.ProcessingTestUtil.COMPILER; +import static test.processing.parsing.ProcessingTestUtil.preprocess; +import static test.processing.parsing.ProcessingTestUtil.res; import java.io.File; import java.io.FileWriter; import java.util.regex.Matcher; @@ -11,9 +14,6 @@ import org.junit.Test; import processing.app.debug.RunnerException; import processing.app.exec.ProcessResult; import antlr.RecognitionException; -import static test.processing.parsing.ProcessingTestUtil.res; -import static test.processing.parsing.ProcessingTestUtil.COMPILER; -import static test.processing.parsing.ProcessingTestUtil.preprocess; public class ParserTests { @@ -279,4 +279,9 @@ public class ParserTests { public void bug400g() { expectGood("bug400g"); } + + @Test + public void annotations() { + expectGood("annotations"); + } } diff --git a/app/test/src/test/processing/parsing/ProcessingTestUtil.java b/app/test/src/test/processing/parsing/ProcessingTestUtil.java index a6bae7bc3..86f306cc5 100644 --- a/app/test/src/test/processing/parsing/ProcessingTestUtil.java +++ b/app/test/src/test/processing/parsing/ProcessingTestUtil.java @@ -28,7 +28,7 @@ public class ProcessingTestUtil { } catch (IOException e) { throw new RuntimeException(e); } - System.err.println("ProcessingTestUtil initialized."); + //System.err.println("ProcessingTestUtil initialized."); } static String normalize(final Object s) {