Add support for the Java 1.5 enum keyword. (Kian Win Ong)
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 6 Nov 2005 04:06:25 +0000 (04:06 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 6 Nov 2005 04:06:25 +0000 (04:06 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1381 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/CHANGES.txt
src/engine/SCons/Tool/JavaCommon.py
src/engine/SCons/Tool/JavaCommonTests.py

index 56881786cb0a681660ecb5c1b38206da610d8bc3..b94a7f7d7b4c4b5c8883d2dd862966f50dc2fa91 100644 (file)
@@ -523,6 +523,8 @@ RELEASE 0.97 - XXX
   - When building a .jar file and there is a $JARCHDIR, put the -C
     in front of each .class file on the command line.
 
+  - Recognize the Java 1.5 enum keyword.
+
   From Chris Pawling:
 
   - Have the linkloc tool use $MSVS_VERSION to select the Microsoft
index 96d6486f90d374fb75c17ce5b5b45ebf7979e026..06a4199a3376c0b05546b00a73937f3cec9cd5c4 100644 (file)
@@ -115,7 +115,7 @@ if java_parsing:
                 if len(self.listClasses) > 0:
                     return self.__getAnonClassState()
                 return self.__getSkipState() # Skip the class name
-            elif token == 'class' or token == 'interface':
+            elif token in ['class', 'interface', 'enum']:
                 if len(self.listClasses) == 0:
                     self.nextAnon = 1
                 self.stackBrackets.append(self.brackets)
index f8f38c2b6249480f1e97b6b8b08abd503c657b4d..484fbf8ef1673f48b9cc09bf1e167616a1a92527 100644 (file)
@@ -202,6 +202,16 @@ public class MyTabs
         assert pkg_dir == None, pkg_dir
         assert classes == ['MyTabs$MyInternal', 'MyTabs'], classes
 
+    def test_enum(self):
+        """Test the Java 1.5 enum keyword"""
+
+        pkg_dir, classes = SCons.Tool.JavaCommon.parse_java("""\
+package p;
+public enum a {}
+""")
+        assert pkg_dir == 'p', pkg_dir
+        assert classes == ['a'], classes
+
 if __name__ == "__main__":
     suite = unittest.TestSuite()
     tclasses = [ parse_javaTestCase ]