sometsome 3.10.50 → 3.10.50.33

Sign up to get free protection for your applications and to get access to all the features.
Files changed (733) hide show
  1. checksums.yaml +4 -4
  2. metadata +13 -963
  3. data/lib/hola.rb +0 -5
  4. data/lib/proguard4.7/README +0 -33
  5. data/lib/proguard4.7/bin/proguard.bat +0 -14
  6. data/lib/proguard4.7/bin/proguard.sh +0 -11
  7. data/lib/proguard4.7/bin/proguardgui.bat +0 -14
  8. data/lib/proguard4.7/bin/proguardgui.sh +0 -15
  9. data/lib/proguard4.7/bin/retrace.bat +0 -14
  10. data/lib/proguard4.7/bin/retrace.sh +0 -12
  11. data/lib/proguard4.7/build/build.sh +0 -94
  12. data/lib/proguard4.7/build/build.xml +0 -171
  13. data/lib/proguard4.7/build/makefile +0 -94
  14. data/lib/proguard4.7/docs/FAQ.html +0 -253
  15. data/lib/proguard4.7/docs/GPL.html +0 -406
  16. data/lib/proguard4.7/docs/GPL_exception.html +0 -56
  17. data/lib/proguard4.7/docs/acknowledgements.html +0 -76
  18. data/lib/proguard4.7/docs/alternatives.html +0 -699
  19. data/lib/proguard4.7/docs/checkmark.gif +0 -0
  20. data/lib/proguard4.7/docs/downloads.html +0 -623
  21. data/lib/proguard4.7/docs/drop1.gif +0 -0
  22. data/lib/proguard4.7/docs/drop2.gif +0 -0
  23. data/lib/proguard4.7/docs/drop3.gif +0 -0
  24. data/lib/proguard4.7/docs/favicon.ico +0 -0
  25. data/lib/proguard4.7/docs/feedback.html +0 -120
  26. data/lib/proguard4.7/docs/index.html +0 -92
  27. data/lib/proguard4.7/docs/license.html +0 -60
  28. data/lib/proguard4.7/docs/main.html +0 -102
  29. data/lib/proguard4.7/docs/manual/ant.html +0 -634
  30. data/lib/proguard4.7/docs/manual/attention.gif +0 -0
  31. data/lib/proguard4.7/docs/manual/examples.html +0 -1504
  32. data/lib/proguard4.7/docs/manual/gui.html +0 -479
  33. data/lib/proguard4.7/docs/manual/index.html +0 -51
  34. data/lib/proguard4.7/docs/manual/introduction.html +0 -173
  35. data/lib/proguard4.7/docs/manual/limitations.html +0 -69
  36. data/lib/proguard4.7/docs/manual/optimizations.html +0 -172
  37. data/lib/proguard4.7/docs/manual/refcard.html +0 -486
  38. data/lib/proguard4.7/docs/manual/retrace/examples.html +0 -345
  39. data/lib/proguard4.7/docs/manual/retrace/index.html +0 -37
  40. data/lib/proguard4.7/docs/manual/retrace/introduction.html +0 -79
  41. data/lib/proguard4.7/docs/manual/retrace/usage.html +0 -127
  42. data/lib/proguard4.7/docs/manual/sections.html +0 -60
  43. data/lib/proguard4.7/docs/manual/style.css +0 -105
  44. data/lib/proguard4.7/docs/manual/troubleshooting.html +0 -729
  45. data/lib/proguard4.7/docs/manual/usage.html +0 -1243
  46. data/lib/proguard4.7/docs/manual/wtk.html +0 -70
  47. data/lib/proguard4.7/docs/quality.html +0 -56
  48. data/lib/proguard4.7/docs/results.html +0 -170
  49. data/lib/proguard4.7/docs/saikoalogo.png +0 -0
  50. data/lib/proguard4.7/docs/screenshot_console.gif +0 -0
  51. data/lib/proguard4.7/docs/screenshot_console_small.gif +0 -0
  52. data/lib/proguard4.7/docs/screenshot_gui1.gif +0 -0
  53. data/lib/proguard4.7/docs/screenshot_gui2.gif +0 -0
  54. data/lib/proguard4.7/docs/screenshot_gui3.gif +0 -0
  55. data/lib/proguard4.7/docs/screenshot_gui4.gif +0 -0
  56. data/lib/proguard4.7/docs/screenshot_gui5.gif +0 -0
  57. data/lib/proguard4.7/docs/screenshot_gui6.gif +0 -0
  58. data/lib/proguard4.7/docs/screenshot_gui7.gif +0 -0
  59. data/lib/proguard4.7/docs/screenshot_gui8.gif +0 -0
  60. data/lib/proguard4.7/docs/screenshots.html +0 -67
  61. data/lib/proguard4.7/docs/screenshots_gui_small.gif +0 -0
  62. data/lib/proguard4.7/docs/sections.html +0 -64
  63. data/lib/proguard4.7/docs/sflogo.png +0 -0
  64. data/lib/proguard4.7/docs/steel.gif +0 -0
  65. data/lib/proguard4.7/docs/style.css +0 -223
  66. data/lib/proguard4.7/docs/testimonials.html +0 -133
  67. data/lib/proguard4.7/docs/title.gif +0 -0
  68. data/lib/proguard4.7/docs/title.html +0 -17
  69. data/lib/proguard4.7/examples/android.pro +0 -149
  70. data/lib/proguard4.7/examples/annotations/examples.pro +0 -60
  71. data/lib/proguard4.7/examples/annotations/examples/Applet.java +0 -22
  72. data/lib/proguard4.7/examples/annotations/examples/Application.java +0 -20
  73. data/lib/proguard4.7/examples/annotations/examples/Bean.java +0 -56
  74. data/lib/proguard4.7/examples/annotations/examples/NativeCallBack.java +0 -44
  75. data/lib/proguard4.7/examples/annotations/lib/annotations.jar +0 -0
  76. data/lib/proguard4.7/examples/annotations/lib/annotations.pro +0 -118
  77. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/Keep.java +0 -18
  78. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepApplication.java +0 -18
  79. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepClassMemberNames.java +0 -18
  80. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepClassMembers.java +0 -18
  81. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepGettersSetters.java +0 -18
  82. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepImplementations.java +0 -18
  83. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepName.java +0 -18
  84. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicClassMemberNames.java +0 -18
  85. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicClassMembers.java +0 -18
  86. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicGettersSetters.java +0 -18
  87. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicImplementations.java +0 -18
  88. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicProtectedClassMemberNames.java +0 -18
  89. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicProtectedClassMembers.java +0 -19
  90. data/lib/proguard4.7/examples/ant/android-8.xml +0 -177
  91. data/lib/proguard4.7/examples/ant/applets.xml +0 -88
  92. data/lib/proguard4.7/examples/ant/applications1.xml +0 -15
  93. data/lib/proguard4.7/examples/ant/applications2.xml +0 -74
  94. data/lib/proguard4.7/examples/ant/applications3.xml +0 -98
  95. data/lib/proguard4.7/examples/ant/library.xml +0 -102
  96. data/lib/proguard4.7/examples/ant/midlets.xml +0 -52
  97. data/lib/proguard4.7/examples/ant/proguard.xml +0 -78
  98. data/lib/proguard4.7/examples/ant/servlets.xml +0 -88
  99. data/lib/proguard4.7/examples/applets.pro +0 -69
  100. data/lib/proguard4.7/examples/applications.pro +0 -75
  101. data/lib/proguard4.7/examples/dictionaries/compact.txt +0 -18
  102. data/lib/proguard4.7/examples/dictionaries/keywords.txt +0 -58
  103. data/lib/proguard4.7/examples/dictionaries/shakespeare.txt +0 -23
  104. data/lib/proguard4.7/examples/dictionaries/windows.txt +0 -209
  105. data/lib/proguard4.7/examples/library.pro +0 -79
  106. data/lib/proguard4.7/examples/midlets.pro +0 -67
  107. data/lib/proguard4.7/examples/proguard.pro +0 -57
  108. data/lib/proguard4.7/examples/proguardall.pro +0 -62
  109. data/lib/proguard4.7/examples/proguardgui.pro +0 -50
  110. data/lib/proguard4.7/examples/retrace.pro +0 -43
  111. data/lib/proguard4.7/examples/scala.pro +0 -132
  112. data/lib/proguard4.7/examples/servlets.pro +0 -70
  113. data/lib/proguard4.7/lib/proguard.jar +0 -0
  114. data/lib/proguard4.7/lib/proguardgui.jar +0 -0
  115. data/lib/proguard4.7/lib/retrace.jar +0 -0
  116. data/lib/proguard4.7/src/proguard/ArgumentWordReader.java +0 -111
  117. data/lib/proguard4.7/src/proguard/ClassPath.java +0 -94
  118. data/lib/proguard4.7/src/proguard/ClassPathEntry.java +0 -282
  119. data/lib/proguard4.7/src/proguard/ClassSpecification.java +0 -259
  120. data/lib/proguard4.7/src/proguard/ClassSpecificationVisitorFactory.java +0 -503
  121. data/lib/proguard4.7/src/proguard/Configuration.java +0 -328
  122. data/lib/proguard4.7/src/proguard/ConfigurationConstants.java +0 -123
  123. data/lib/proguard4.7/src/proguard/ConfigurationParser.java +0 -1285
  124. data/lib/proguard4.7/src/proguard/ConfigurationWriter.java +0 -651
  125. data/lib/proguard4.7/src/proguard/DataEntryReaderFactory.java +0 -141
  126. data/lib/proguard4.7/src/proguard/DataEntryWriterFactory.java +0 -150
  127. data/lib/proguard4.7/src/proguard/DescriptorKeepChecker.java +0 -169
  128. data/lib/proguard4.7/src/proguard/DuplicateClassPrinter.java +0 -63
  129. data/lib/proguard4.7/src/proguard/FileWordReader.java +0 -55
  130. data/lib/proguard4.7/src/proguard/FullyQualifiedClassNameChecker.java +0 -191
  131. data/lib/proguard4.7/src/proguard/GPL.java +0 -197
  132. data/lib/proguard4.7/src/proguard/Initializer.java +0 -424
  133. data/lib/proguard4.7/src/proguard/InputReader.java +0 -233
  134. data/lib/proguard4.7/src/proguard/KeepClassMemberChecker.java +0 -87
  135. data/lib/proguard4.7/src/proguard/KeepClassSpecification.java +0 -137
  136. data/lib/proguard4.7/src/proguard/LineWordReader.java +0 -74
  137. data/lib/proguard4.7/src/proguard/MANIFEST.MF +0 -2
  138. data/lib/proguard4.7/src/proguard/MemberSpecification.java +0 -114
  139. data/lib/proguard4.7/src/proguard/OutputWriter.java +0 -296
  140. data/lib/proguard4.7/src/proguard/ParseException.java +0 -51
  141. data/lib/proguard4.7/src/proguard/ProGuard.java +0 -512
  142. data/lib/proguard4.7/src/proguard/SeedPrinter.java +0 -97
  143. data/lib/proguard4.7/src/proguard/SubclassedClassFilter.java +0 -62
  144. data/lib/proguard4.7/src/proguard/Targeter.java +0 -88
  145. data/lib/proguard4.7/src/proguard/UpToDateChecker.java +0 -232
  146. data/lib/proguard4.7/src/proguard/WordReader.java +0 -387
  147. data/lib/proguard4.7/src/proguard/ant/ClassPathElement.java +0 -191
  148. data/lib/proguard4.7/src/proguard/ant/ClassSpecificationElement.java +0 -258
  149. data/lib/proguard4.7/src/proguard/ant/ConfigurationElement.java +0 -53
  150. data/lib/proguard4.7/src/proguard/ant/ConfigurationTask.java +0 -441
  151. data/lib/proguard4.7/src/proguard/ant/FilterElement.java +0 -85
  152. data/lib/proguard4.7/src/proguard/ant/KeepSpecificationElement.java +0 -87
  153. data/lib/proguard4.7/src/proguard/ant/MemberSpecificationElement.java +0 -218
  154. data/lib/proguard4.7/src/proguard/ant/ProGuardTask.java +0 -352
  155. data/lib/proguard4.7/src/proguard/ant/package.html +0 -3
  156. data/lib/proguard4.7/src/proguard/ant/task.properties +0 -2
  157. data/lib/proguard4.7/src/proguard/classfile/ClassConstants.java +0 -316
  158. data/lib/proguard4.7/src/proguard/classfile/ClassPool.java +0 -152
  159. data/lib/proguard4.7/src/proguard/classfile/Clazz.java +0 -261
  160. data/lib/proguard4.7/src/proguard/classfile/Field.java +0 -32
  161. data/lib/proguard4.7/src/proguard/classfile/LibraryClass.java +0 -548
  162. data/lib/proguard4.7/src/proguard/classfile/LibraryField.java +0 -77
  163. data/lib/proguard4.7/src/proguard/classfile/LibraryMember.java +0 -108
  164. data/lib/proguard4.7/src/proguard/classfile/LibraryMethod.java +0 -83
  165. data/lib/proguard4.7/src/proguard/classfile/Member.java +0 -57
  166. data/lib/proguard4.7/src/proguard/classfile/Method.java +0 -32
  167. data/lib/proguard4.7/src/proguard/classfile/ProgramClass.java +0 -572
  168. data/lib/proguard4.7/src/proguard/classfile/ProgramField.java +0 -93
  169. data/lib/proguard4.7/src/proguard/classfile/ProgramMember.java +0 -168
  170. data/lib/proguard4.7/src/proguard/classfile/ProgramMethod.java +0 -99
  171. data/lib/proguard4.7/src/proguard/classfile/VisitorAccepter.java +0 -47
  172. data/lib/proguard4.7/src/proguard/classfile/attribute/Attribute.java +0 -142
  173. data/lib/proguard4.7/src/proguard/classfile/attribute/BootstrapMethodInfo.java +0 -89
  174. data/lib/proguard4.7/src/proguard/classfile/attribute/BootstrapMethodsAttribute.java +0 -95
  175. data/lib/proguard4.7/src/proguard/classfile/attribute/CodeAttribute.java +0 -202
  176. data/lib/proguard4.7/src/proguard/classfile/attribute/ConstantValueAttribute.java +0 -62
  177. data/lib/proguard4.7/src/proguard/classfile/attribute/DeprecatedAttribute.java +0 -66
  178. data/lib/proguard4.7/src/proguard/classfile/attribute/EnclosingMethodAttribute.java +0 -132
  179. data/lib/proguard4.7/src/proguard/classfile/attribute/ExceptionInfo.java +0 -100
  180. data/lib/proguard4.7/src/proguard/classfile/attribute/ExceptionsAttribute.java +0 -80
  181. data/lib/proguard4.7/src/proguard/classfile/attribute/InnerClassesAttribute.java +0 -80
  182. data/lib/proguard4.7/src/proguard/classfile/attribute/InnerClassesInfo.java +0 -119
  183. data/lib/proguard4.7/src/proguard/classfile/attribute/LineNumberInfo.java +0 -50
  184. data/lib/proguard4.7/src/proguard/classfile/attribute/LineNumberTableAttribute.java +0 -100
  185. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableInfo.java +0 -99
  186. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTableAttribute.java +0 -79
  187. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTypeInfo.java +0 -107
  188. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTypeTableAttribute.java +0 -79
  189. data/lib/proguard4.7/src/proguard/classfile/attribute/SignatureAttribute.java +0 -100
  190. data/lib/proguard4.7/src/proguard/classfile/attribute/SourceDirAttribute.java +0 -62
  191. data/lib/proguard4.7/src/proguard/classfile/attribute/SourceFileAttribute.java +0 -62
  192. data/lib/proguard4.7/src/proguard/classfile/attribute/SyntheticAttribute.java +0 -66
  193. data/lib/proguard4.7/src/proguard/classfile/attribute/UnknownAttribute.java +0 -82
  194. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/Annotation.java +0 -143
  195. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationDefaultAttribute.java +0 -73
  196. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationElementValue.java +0 -76
  197. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationsAttribute.java +0 -100
  198. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ArrayElementValue.java +0 -82
  199. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ClassElementValue.java +0 -95
  200. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ConstantElementValue.java +0 -71
  201. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ElementValue.java +0 -126
  202. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/EnumConstantElementValue.java +0 -99
  203. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ParameterAnnotationsAttribute.java +0 -83
  204. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeInvisibleAnnotationsAttribute.java +0 -70
  205. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeInvisibleParameterAnnotationsAttribute.java +0 -62
  206. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeVisibleAnnotationsAttribute.java +0 -70
  207. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeVisibleParameterAnnotationsAttribute.java +0 -62
  208. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/package.html +0 -4
  209. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AllAnnotationVisitor.java +0 -100
  210. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotatedClassVisitor.java +0 -62
  211. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationToMemberVisitor.java +0 -62
  212. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationTypeFilter.java +0 -102
  213. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationVisitor.java +0 -40
  214. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/ElementValueVisitor.java +0 -51
  215. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/package.html +0 -3
  216. data/lib/proguard4.7/src/proguard/classfile/attribute/package.html +0 -3
  217. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/DoubleType.java +0 -66
  218. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/FloatType.java +0 -66
  219. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/FullFrame.java +0 -202
  220. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/IntegerType.java +0 -66
  221. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/LessZeroFrame.java +0 -103
  222. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/LongType.java +0 -66
  223. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/MoreZeroFrame.java +0 -161
  224. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/NullType.java +0 -66
  225. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/ObjectType.java +0 -107
  226. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/SameOneFrame.java +0 -115
  227. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/SameZeroFrame.java +0 -74
  228. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapAttribute.java +0 -91
  229. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapFrame.java +0 -117
  230. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapTableAttribute.java +0 -93
  231. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/TopType.java +0 -66
  232. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/UninitializedThisType.java +0 -66
  233. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/UninitializedType.java +0 -106
  234. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/VerificationType.java +0 -103
  235. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/VerificationTypeFactory.java +0 -112
  236. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/visitor/StackMapFrameVisitor.java +0 -40
  237. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/visitor/VerificationTypeVisitor.java +0 -65
  238. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java +0 -117
  239. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java +0 -55
  240. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java +0 -55
  241. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java +0 -55
  242. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java +0 -368
  243. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AttributeVisitor.java +0 -90
  244. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java +0 -40
  245. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java +0 -37
  246. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java +0 -38
  247. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java +0 -38
  248. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java +0 -38
  249. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java +0 -38
  250. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java +0 -365
  251. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java +0 -293
  252. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java +0 -360
  253. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/StackSizeComputer.java +0 -378
  254. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/package.html +0 -3
  255. data/lib/proguard4.7/src/proguard/classfile/constant/ClassConstant.java +0 -105
  256. data/lib/proguard4.7/src/proguard/classfile/constant/Constant.java +0 -68
  257. data/lib/proguard4.7/src/proguard/classfile/constant/DoubleConstant.java +0 -82
  258. data/lib/proguard4.7/src/proguard/classfile/constant/FieldrefConstant.java +0 -71
  259. data/lib/proguard4.7/src/proguard/classfile/constant/FloatConstant.java +0 -82
  260. data/lib/proguard4.7/src/proguard/classfile/constant/IntegerConstant.java +0 -82
  261. data/lib/proguard4.7/src/proguard/classfile/constant/InterfaceMethodrefConstant.java +0 -71
  262. data/lib/proguard4.7/src/proguard/classfile/constant/InvokeDynamicConstant.java +0 -148
  263. data/lib/proguard4.7/src/proguard/classfile/constant/LongConstant.java +0 -82
  264. data/lib/proguard4.7/src/proguard/classfile/constant/MethodHandleConstant.java +0 -124
  265. data/lib/proguard4.7/src/proguard/classfile/constant/MethodTypeConstant.java +0 -93
  266. data/lib/proguard4.7/src/proguard/classfile/constant/MethodrefConstant.java +0 -71
  267. data/lib/proguard4.7/src/proguard/classfile/constant/NameAndTypeConstant.java +0 -119
  268. data/lib/proguard4.7/src/proguard/classfile/constant/RefConstant.java +0 -130
  269. data/lib/proguard4.7/src/proguard/classfile/constant/StringConstant.java +0 -135
  270. data/lib/proguard4.7/src/proguard/classfile/constant/Utf8Constant.java +0 -285
  271. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/AllConstantVisitor.java +0 -53
  272. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/BootstrapMethodHandleTraveler.java +0 -100
  273. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ConstantTagFilter.java +0 -86
  274. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ConstantVisitor.java +0 -49
  275. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ExceptClassConstantFilter.java +0 -69
  276. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/MethodrefTraveler.java +0 -60
  277. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/package.html +0 -3
  278. data/lib/proguard4.7/src/proguard/classfile/editor/AccessFixer.java +0 -180
  279. data/lib/proguard4.7/src/proguard/classfile/editor/AnnotationAdder.java +0 -153
  280. data/lib/proguard4.7/src/proguard/classfile/editor/AnnotationsAttributeEditor.java +0 -67
  281. data/lib/proguard4.7/src/proguard/classfile/editor/AttributeAdder.java +0 -457
  282. data/lib/proguard4.7/src/proguard/classfile/editor/AttributeSorter.java +0 -89
  283. data/lib/proguard4.7/src/proguard/classfile/editor/AttributesEditor.java +0 -269
  284. data/lib/proguard4.7/src/proguard/classfile/editor/BridgeMethodFixer.java +0 -117
  285. data/lib/proguard4.7/src/proguard/classfile/editor/ClassEditor.java +0 -255
  286. data/lib/proguard4.7/src/proguard/classfile/editor/ClassElementSorter.java +0 -52
  287. data/lib/proguard4.7/src/proguard/classfile/editor/ClassMemberSorter.java +0 -69
  288. data/lib/proguard4.7/src/proguard/classfile/editor/ClassReferenceFixer.java +0 -546
  289. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeComposer.java +0 -843
  290. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeEditor.java +0 -1104
  291. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeEditorResetter.java +0 -60
  292. data/lib/proguard4.7/src/proguard/classfile/editor/ComparableConstant.java +0 -249
  293. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantAdder.java +0 -239
  294. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolEditor.java +0 -782
  295. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolRemapper.java +0 -662
  296. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolShrinker.java +0 -578
  297. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolSorter.java +0 -123
  298. data/lib/proguard4.7/src/proguard/classfile/editor/ElementValueAdder.java +0 -217
  299. data/lib/proguard4.7/src/proguard/classfile/editor/ElementValuesEditor.java +0 -238
  300. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionAdder.java +0 -65
  301. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionInfoAdder.java +0 -67
  302. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionsAttributeEditor.java +0 -68
  303. data/lib/proguard4.7/src/proguard/classfile/editor/InnerClassesAccessFixer.java +0 -83
  304. data/lib/proguard4.7/src/proguard/classfile/editor/InstructionAdder.java +0 -76
  305. data/lib/proguard4.7/src/proguard/classfile/editor/InstructionWriter.java +0 -278
  306. data/lib/proguard4.7/src/proguard/classfile/editor/InterfaceAdder.java +0 -62
  307. data/lib/proguard4.7/src/proguard/classfile/editor/InterfaceSorter.java +0 -152
  308. data/lib/proguard4.7/src/proguard/classfile/editor/InterfacesEditor.java +0 -122
  309. data/lib/proguard4.7/src/proguard/classfile/editor/LineNumberInfoAdder.java +0 -59
  310. data/lib/proguard4.7/src/proguard/classfile/editor/LineNumberTableAttributeEditor.java +0 -67
  311. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableInfoAdder.java +0 -67
  312. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTableAttributeEditor.java +0 -67
  313. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTypeInfoAdder.java +0 -68
  314. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTypeTableAttributeEditor.java +0 -68
  315. data/lib/proguard4.7/src/proguard/classfile/editor/MemberAdder.java +0 -288
  316. data/lib/proguard4.7/src/proguard/classfile/editor/MemberReferenceFixer.java +0 -447
  317. data/lib/proguard4.7/src/proguard/classfile/editor/MethodInvocationFixer.java +0 -243
  318. data/lib/proguard4.7/src/proguard/classfile/editor/NameAndTypeShrinker.java +0 -188
  319. data/lib/proguard4.7/src/proguard/classfile/editor/NamedAttributeDeleter.java +0 -54
  320. data/lib/proguard4.7/src/proguard/classfile/editor/ParameterAnnotationsAttributeEditor.java +0 -71
  321. data/lib/proguard4.7/src/proguard/classfile/editor/StackSizeUpdater.java +0 -54
  322. data/lib/proguard4.7/src/proguard/classfile/editor/SubclassAdder.java +0 -59
  323. data/lib/proguard4.7/src/proguard/classfile/editor/SubclassToAdder.java +0 -60
  324. data/lib/proguard4.7/src/proguard/classfile/editor/Utf8Shrinker.java +0 -455
  325. data/lib/proguard4.7/src/proguard/classfile/editor/VariableCleaner.java +0 -267
  326. data/lib/proguard4.7/src/proguard/classfile/editor/VariableEditor.java +0 -130
  327. data/lib/proguard4.7/src/proguard/classfile/editor/VariableRemapper.java +0 -156
  328. data/lib/proguard4.7/src/proguard/classfile/editor/VariableSizeUpdater.java +0 -105
  329. data/lib/proguard4.7/src/proguard/classfile/editor/package.html +0 -3
  330. data/lib/proguard4.7/src/proguard/classfile/instruction/BranchInstruction.java +0 -180
  331. data/lib/proguard4.7/src/proguard/classfile/instruction/ConstantInstruction.java +0 -309
  332. data/lib/proguard4.7/src/proguard/classfile/instruction/Instruction.java +0 -920
  333. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionConstants.java +0 -449
  334. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionFactory.java +0 -300
  335. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionUtil.java +0 -67
  336. data/lib/proguard4.7/src/proguard/classfile/instruction/LookUpSwitchInstruction.java +0 -135
  337. data/lib/proguard4.7/src/proguard/classfile/instruction/SimpleInstruction.java +0 -255
  338. data/lib/proguard4.7/src/proguard/classfile/instruction/SwitchInstruction.java +0 -83
  339. data/lib/proguard4.7/src/proguard/classfile/instruction/TableSwitchInstruction.java +0 -139
  340. data/lib/proguard4.7/src/proguard/classfile/instruction/VariableInstruction.java +0 -372
  341. data/lib/proguard4.7/src/proguard/classfile/instruction/package.html +0 -9
  342. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/AllInstructionVisitor.java +0 -56
  343. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/InstructionCounter.java +0 -59
  344. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/InstructionVisitor.java +0 -42
  345. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/MultiInstructionVisitor.java +0 -131
  346. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/package.html +0 -3
  347. data/lib/proguard4.7/src/proguard/classfile/io/LibraryClassReader.java +0 -383
  348. data/lib/proguard4.7/src/proguard/classfile/io/ProgramClassReader.java +0 -919
  349. data/lib/proguard4.7/src/proguard/classfile/io/ProgramClassWriter.java +0 -735
  350. data/lib/proguard4.7/src/proguard/classfile/io/RuntimeDataInput.java +0 -223
  351. data/lib/proguard4.7/src/proguard/classfile/io/RuntimeDataOutput.java +0 -224
  352. data/lib/proguard4.7/src/proguard/classfile/io/package.html +0 -3
  353. data/lib/proguard4.7/src/proguard/classfile/package.html +0 -15
  354. data/lib/proguard4.7/src/proguard/classfile/util/AccessUtil.java +0 -105
  355. data/lib/proguard4.7/src/proguard/classfile/util/ClassReferenceInitializer.java +0 -559
  356. data/lib/proguard4.7/src/proguard/classfile/util/ClassSubHierarchyInitializer.java +0 -77
  357. data/lib/proguard4.7/src/proguard/classfile/util/ClassSuperHierarchyInitializer.java +0 -163
  358. data/lib/proguard4.7/src/proguard/classfile/util/ClassUtil.java +0 -1227
  359. data/lib/proguard4.7/src/proguard/classfile/util/DescriptorClassEnumeration.java +0 -236
  360. data/lib/proguard4.7/src/proguard/classfile/util/DynamicClassReferenceInitializer.java +0 -485
  361. data/lib/proguard4.7/src/proguard/classfile/util/DynamicMemberReferenceInitializer.java +0 -944
  362. data/lib/proguard4.7/src/proguard/classfile/util/ExternalTypeEnumeration.java +0 -106
  363. data/lib/proguard4.7/src/proguard/classfile/util/InstructionSequenceMatcher.java +0 -754
  364. data/lib/proguard4.7/src/proguard/classfile/util/InternalTypeEnumeration.java +0 -204
  365. data/lib/proguard4.7/src/proguard/classfile/util/MemberFinder.java +0 -197
  366. data/lib/proguard4.7/src/proguard/classfile/util/MethodLinker.java +0 -160
  367. data/lib/proguard4.7/src/proguard/classfile/util/SimplifiedVisitor.java +0 -834
  368. data/lib/proguard4.7/src/proguard/classfile/util/StringReferenceInitializer.java +0 -90
  369. data/lib/proguard4.7/src/proguard/classfile/util/StringSharer.java +0 -172
  370. data/lib/proguard4.7/src/proguard/classfile/util/WarningPrinter.java +0 -136
  371. data/lib/proguard4.7/src/proguard/classfile/util/package.html +0 -3
  372. data/lib/proguard4.7/src/proguard/classfile/visitor/AllClassVisitor.java +0 -47
  373. data/lib/proguard4.7/src/proguard/classfile/visitor/AllFieldVisitor.java +0 -55
  374. data/lib/proguard4.7/src/proguard/classfile/visitor/AllMemberVisitor.java +0 -57
  375. data/lib/proguard4.7/src/proguard/classfile/visitor/AllMethodVisitor.java +0 -55
  376. data/lib/proguard4.7/src/proguard/classfile/visitor/BottomClassFilter.java +0 -69
  377. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassAccessFilter.java +0 -88
  378. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCleaner.java +0 -275
  379. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCollector.java +0 -58
  380. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCounter.java +0 -56
  381. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassHierarchyTraveler.java +0 -91
  382. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassNameFilter.java +0 -112
  383. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPoolFiller.java +0 -55
  384. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPoolVisitor.java +0 -37
  385. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPresenceFilter.java +0 -93
  386. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPrinter.java +0 -1011
  387. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVersionFilter.java +0 -85
  388. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVersionSetter.java +0 -83
  389. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVisitor.java +0 -36
  390. data/lib/proguard4.7/src/proguard/classfile/visitor/ConcreteClassDownTraveler.java +0 -100
  391. data/lib/proguard4.7/src/proguard/classfile/visitor/DotClassClassVisitor.java +0 -89
  392. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptClassFilter.java +0 -69
  393. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptClassesFilter.java +0 -90
  394. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionCounter.java +0 -52
  395. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionExcludedOffsetFilter.java +0 -64
  396. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionHandlerConstantVisitor.java +0 -62
  397. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionHandlerFilter.java +0 -70
  398. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionOffsetFilter.java +0 -64
  399. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionRangeFilter.java +0 -68
  400. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementedClassConstantFilter.java +0 -69
  401. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementedClassFilter.java +0 -71
  402. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementingClassConstantFilter.java +0 -70
  403. data/lib/proguard4.7/src/proguard/classfile/visitor/LibraryClassFilter.java +0 -60
  404. data/lib/proguard4.7/src/proguard/classfile/visitor/LibraryMemberFilter.java +0 -73
  405. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberAccessFilter.java +0 -122
  406. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberClassAccessFilter.java +0 -106
  407. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberCollector.java +0 -59
  408. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberCounter.java +0 -72
  409. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberDescriptorFilter.java +0 -113
  410. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberNameFilter.java +0 -113
  411. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberToClassVisitor.java +0 -90
  412. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberVisitor.java +0 -40
  413. data/lib/proguard4.7/src/proguard/classfile/visitor/MethodImplementationFilter.java +0 -70
  414. data/lib/proguard4.7/src/proguard/classfile/visitor/MethodImplementationTraveler.java +0 -128
  415. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiClassPoolVisitor.java +0 -88
  416. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiClassVisitor.java +0 -97
  417. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiMemberVisitor.java +0 -113
  418. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedClassVisitor.java +0 -49
  419. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedFieldVisitor.java +0 -61
  420. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedMethodVisitor.java +0 -61
  421. data/lib/proguard4.7/src/proguard/classfile/visitor/ProgramClassFilter.java +0 -60
  422. data/lib/proguard4.7/src/proguard/classfile/visitor/ProgramMemberFilter.java +0 -73
  423. data/lib/proguard4.7/src/proguard/classfile/visitor/ReferencedClassVisitor.java +0 -255
  424. data/lib/proguard4.7/src/proguard/classfile/visitor/ReferencedMemberVisitor.java +0 -73
  425. data/lib/proguard4.7/src/proguard/classfile/visitor/SimilarMemberVisitor.java +0 -125
  426. data/lib/proguard4.7/src/proguard/classfile/visitor/SimpleClassPrinter.java +0 -167
  427. data/lib/proguard4.7/src/proguard/classfile/visitor/SubclassFilter.java +0 -91
  428. data/lib/proguard4.7/src/proguard/classfile/visitor/SubclassTraveler.java +0 -60
  429. data/lib/proguard4.7/src/proguard/classfile/visitor/VariableClassVisitor.java +0 -78
  430. data/lib/proguard4.7/src/proguard/classfile/visitor/VariableMemberVisitor.java +0 -96
  431. data/lib/proguard4.7/src/proguard/classfile/visitor/package.html +0 -40
  432. data/lib/proguard4.7/src/proguard/evaluation/BasicBranchUnit.java +0 -126
  433. data/lib/proguard4.7/src/proguard/evaluation/BasicInvocationUnit.java +0 -425
  434. data/lib/proguard4.7/src/proguard/evaluation/BranchUnit.java +0 -63
  435. data/lib/proguard4.7/src/proguard/evaluation/ClassConstantValueFactory.java +0 -53
  436. data/lib/proguard4.7/src/proguard/evaluation/ConstantValueFactory.java +0 -113
  437. data/lib/proguard4.7/src/proguard/evaluation/InvocationUnit.java +0 -62
  438. data/lib/proguard4.7/src/proguard/evaluation/Processor.java +0 -908
  439. data/lib/proguard4.7/src/proguard/evaluation/Stack.java +0 -560
  440. data/lib/proguard4.7/src/proguard/evaluation/TracedStack.java +0 -342
  441. data/lib/proguard4.7/src/proguard/evaluation/TracedVariables.java +0 -199
  442. data/lib/proguard4.7/src/proguard/evaluation/Variables.java +0 -347
  443. data/lib/proguard4.7/src/proguard/evaluation/value/Category1Value.java +0 -41
  444. data/lib/proguard4.7/src/proguard/evaluation/value/Category2Value.java +0 -41
  445. data/lib/proguard4.7/src/proguard/evaluation/value/ComparisonValue.java +0 -69
  446. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeDoubleValue.java +0 -81
  447. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeFloatValue.java +0 -81
  448. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeIntegerValue.java +0 -87
  449. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeLongValue.java +0 -87
  450. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedByteValue.java +0 -64
  451. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedCharacterValue.java +0 -64
  452. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedDoubleValue.java +0 -64
  453. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedFloatValue.java +0 -64
  454. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedIntegerValue.java +0 -64
  455. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedLongValue.java +0 -64
  456. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedShortValue.java +0 -64
  457. data/lib/proguard4.7/src/proguard/evaluation/value/DoubleValue.java +0 -359
  458. data/lib/proguard4.7/src/proguard/evaluation/value/FloatValue.java +0 -359
  459. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedDoubleValue.java +0 -67
  460. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedFloatValue.java +0 -67
  461. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedIntegerValue.java +0 -67
  462. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedLongValue.java +0 -67
  463. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedReferenceValue.java +0 -102
  464. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedValueFactory.java +0 -75
  465. data/lib/proguard4.7/src/proguard/evaluation/value/InstructionOffsetValue.java +0 -307
  466. data/lib/proguard4.7/src/proguard/evaluation/value/IntegerValue.java +0 -1002
  467. data/lib/proguard4.7/src/proguard/evaluation/value/LongValue.java +0 -554
  468. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedDoubleValue.java +0 -71
  469. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedFloatValue.java +0 -71
  470. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedIntegerValue.java +0 -71
  471. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedLongValue.java +0 -71
  472. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularDoubleValue.java +0 -216
  473. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularFloatValue.java +0 -216
  474. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularIntegerValue.java +0 -383
  475. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularLongValue.java +0 -271
  476. data/lib/proguard4.7/src/proguard/evaluation/value/ReferenceValue.java +0 -540
  477. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificDoubleValue.java +0 -186
  478. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificFloatValue.java +0 -186
  479. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificIntegerValue.java +0 -354
  480. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificLongValue.java +0 -259
  481. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificValueFactory.java +0 -97
  482. data/lib/proguard4.7/src/proguard/evaluation/value/TopValue.java +0 -79
  483. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownDoubleValue.java +0 -125
  484. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownFloatValue.java +0 -125
  485. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownIntegerValue.java +0 -216
  486. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownLongValue.java +0 -160
  487. data/lib/proguard4.7/src/proguard/evaluation/value/Value.java +0 -169
  488. data/lib/proguard4.7/src/proguard/evaluation/value/ValueFactory.java +0 -193
  489. data/lib/proguard4.7/src/proguard/evaluation/value/package.html +0 -3
  490. data/lib/proguard4.7/src/proguard/gui/ClassPathPanel.java +0 -441
  491. data/lib/proguard4.7/src/proguard/gui/ClassSpecificationDialog.java +0 -546
  492. data/lib/proguard4.7/src/proguard/gui/ClassSpecificationsPanel.java +0 -231
  493. data/lib/proguard4.7/src/proguard/gui/ExtensionFileFilter.java +0 -78
  494. data/lib/proguard4.7/src/proguard/gui/FilterBuilder.java +0 -208
  495. data/lib/proguard4.7/src/proguard/gui/FilterDialog.java +0 -320
  496. data/lib/proguard4.7/src/proguard/gui/GUIResources.java +0 -56
  497. data/lib/proguard4.7/src/proguard/gui/GUIResources.properties +0 -643
  498. data/lib/proguard4.7/src/proguard/gui/KeepSpecificationsPanel.java +0 -81
  499. data/lib/proguard4.7/src/proguard/gui/ListPanel.java +0 -341
  500. data/lib/proguard4.7/src/proguard/gui/MANIFEST.MF +0 -3
  501. data/lib/proguard4.7/src/proguard/gui/MemberSpecificationDialog.java +0 -509
  502. data/lib/proguard4.7/src/proguard/gui/MemberSpecificationsPanel.java +0 -304
  503. data/lib/proguard4.7/src/proguard/gui/MessageDialogRunnable.java +0 -90
  504. data/lib/proguard4.7/src/proguard/gui/OptimizationsDialog.java +0 -251
  505. data/lib/proguard4.7/src/proguard/gui/ProGuardGUI.java +0 -1777
  506. data/lib/proguard4.7/src/proguard/gui/ProGuardRunnable.java +0 -154
  507. data/lib/proguard4.7/src/proguard/gui/ReTraceRunnable.java +0 -149
  508. data/lib/proguard4.7/src/proguard/gui/SwingUtil.java +0 -82
  509. data/lib/proguard4.7/src/proguard/gui/TabbedPane.java +0 -229
  510. data/lib/proguard4.7/src/proguard/gui/TextAreaOutputStream.java +0 -81
  511. data/lib/proguard4.7/src/proguard/gui/arrow.gif +0 -0
  512. data/lib/proguard4.7/src/proguard/gui/boilerplate.pro +0 -410
  513. data/lib/proguard4.7/src/proguard/gui/default.pro +0 -318
  514. data/lib/proguard4.7/src/proguard/gui/package.html +0 -3
  515. data/lib/proguard4.7/src/proguard/gui/splash/BufferedSprite.java +0 -145
  516. data/lib/proguard4.7/src/proguard/gui/splash/CircleSprite.java +0 -74
  517. data/lib/proguard4.7/src/proguard/gui/splash/ClipSprite.java +0 -85
  518. data/lib/proguard4.7/src/proguard/gui/splash/ColorSprite.java +0 -65
  519. data/lib/proguard4.7/src/proguard/gui/splash/CompositeSprite.java +0 -56
  520. data/lib/proguard4.7/src/proguard/gui/splash/ConstantColor.java +0 -51
  521. data/lib/proguard4.7/src/proguard/gui/splash/ConstantDouble.java +0 -49
  522. data/lib/proguard4.7/src/proguard/gui/splash/ConstantFont.java +0 -46
  523. data/lib/proguard4.7/src/proguard/gui/splash/ConstantInt.java +0 -49
  524. data/lib/proguard4.7/src/proguard/gui/splash/ConstantString.java +0 -49
  525. data/lib/proguard4.7/src/proguard/gui/splash/ConstantTiming.java +0 -57
  526. data/lib/proguard4.7/src/proguard/gui/splash/FontSprite.java +0 -65
  527. data/lib/proguard4.7/src/proguard/gui/splash/ImageSprite.java +0 -76
  528. data/lib/proguard4.7/src/proguard/gui/splash/LinearColor.java +0 -72
  529. data/lib/proguard4.7/src/proguard/gui/splash/LinearDouble.java +0 -55
  530. data/lib/proguard4.7/src/proguard/gui/splash/LinearInt.java +0 -55
  531. data/lib/proguard4.7/src/proguard/gui/splash/LinearTiming.java +0 -55
  532. data/lib/proguard4.7/src/proguard/gui/splash/OverrideGraphics2D.java +0 -598
  533. data/lib/proguard4.7/src/proguard/gui/splash/RectangleSprite.java +0 -114
  534. data/lib/proguard4.7/src/proguard/gui/splash/SawToothTiming.java +0 -53
  535. data/lib/proguard4.7/src/proguard/gui/splash/ShadowedSprite.java +0 -109
  536. data/lib/proguard4.7/src/proguard/gui/splash/SineTiming.java +0 -53
  537. data/lib/proguard4.7/src/proguard/gui/splash/SmoothTiming.java +0 -66
  538. data/lib/proguard4.7/src/proguard/gui/splash/SplashPanel.java +0 -235
  539. data/lib/proguard4.7/src/proguard/gui/splash/Sprite.java +0 -41
  540. data/lib/proguard4.7/src/proguard/gui/splash/TextSprite.java +0 -89
  541. data/lib/proguard4.7/src/proguard/gui/splash/TimeSwitchSprite.java +0 -75
  542. data/lib/proguard4.7/src/proguard/gui/splash/Timing.java +0 -34
  543. data/lib/proguard4.7/src/proguard/gui/splash/TypeWriterString.java +0 -71
  544. data/lib/proguard4.7/src/proguard/gui/splash/VariableColor.java +0 -36
  545. data/lib/proguard4.7/src/proguard/gui/splash/VariableDouble.java +0 -34
  546. data/lib/proguard4.7/src/proguard/gui/splash/VariableFont.java +0 -36
  547. data/lib/proguard4.7/src/proguard/gui/splash/VariableInt.java +0 -34
  548. data/lib/proguard4.7/src/proguard/gui/splash/VariableSizeFont.java +0 -65
  549. data/lib/proguard4.7/src/proguard/gui/splash/VariableString.java +0 -34
  550. data/lib/proguard4.7/src/proguard/gui/splash/package.html +0 -4
  551. data/lib/proguard4.7/src/proguard/gui/vtitle.png +0 -0
  552. data/lib/proguard4.7/src/proguard/io/CascadingDataEntryWriter.java +0 -94
  553. data/lib/proguard4.7/src/proguard/io/ClassFilter.java +0 -59
  554. data/lib/proguard4.7/src/proguard/io/ClassReader.java +0 -115
  555. data/lib/proguard4.7/src/proguard/io/ClassRewriter.java +0 -80
  556. data/lib/proguard4.7/src/proguard/io/DataEntry.java +0 -62
  557. data/lib/proguard4.7/src/proguard/io/DataEntryClassWriter.java +0 -85
  558. data/lib/proguard4.7/src/proguard/io/DataEntryCopier.java +0 -247
  559. data/lib/proguard4.7/src/proguard/io/DataEntryDirectoryFilter.java +0 -40
  560. data/lib/proguard4.7/src/proguard/io/DataEntryFilter.java +0 -38
  561. data/lib/proguard4.7/src/proguard/io/DataEntryNameFilter.java +0 -54
  562. data/lib/proguard4.7/src/proguard/io/DataEntryObfuscator.java +0 -150
  563. data/lib/proguard4.7/src/proguard/io/DataEntryParentFilter.java +0 -51
  564. data/lib/proguard4.7/src/proguard/io/DataEntryPump.java +0 -43
  565. data/lib/proguard4.7/src/proguard/io/DataEntryReader.java +0 -38
  566. data/lib/proguard4.7/src/proguard/io/DataEntryRenamer.java +0 -104
  567. data/lib/proguard4.7/src/proguard/io/DataEntryRewriter.java +0 -148
  568. data/lib/proguard4.7/src/proguard/io/DataEntryWriter.java +0 -73
  569. data/lib/proguard4.7/src/proguard/io/DirectoryFilter.java +0 -58
  570. data/lib/proguard4.7/src/proguard/io/DirectoryPump.java +0 -78
  571. data/lib/proguard4.7/src/proguard/io/DirectoryWriter.java +0 -165
  572. data/lib/proguard4.7/src/proguard/io/FileDataEntry.java +0 -96
  573. data/lib/proguard4.7/src/proguard/io/FilteredDataEntryReader.java +0 -90
  574. data/lib/proguard4.7/src/proguard/io/FilteredDataEntryWriter.java +0 -125
  575. data/lib/proguard4.7/src/proguard/io/Finisher.java +0 -37
  576. data/lib/proguard4.7/src/proguard/io/JarReader.java +0 -75
  577. data/lib/proguard4.7/src/proguard/io/JarWriter.java +0 -235
  578. data/lib/proguard4.7/src/proguard/io/ManifestRewriter.java +0 -216
  579. data/lib/proguard4.7/src/proguard/io/NameFilter.java +0 -83
  580. data/lib/proguard4.7/src/proguard/io/ParentDataEntryWriter.java +0 -75
  581. data/lib/proguard4.7/src/proguard/io/RenamedDataEntry.java +0 -83
  582. data/lib/proguard4.7/src/proguard/io/ZipDataEntry.java +0 -98
  583. data/lib/proguard4.7/src/proguard/io/package.html +0 -4
  584. data/lib/proguard4.7/src/proguard/obfuscate/AttributeShrinker.java +0 -120
  585. data/lib/proguard4.7/src/proguard/obfuscate/AttributeUsageMarker.java +0 -71
  586. data/lib/proguard4.7/src/proguard/obfuscate/ClassObfuscator.java +0 -533
  587. data/lib/proguard4.7/src/proguard/obfuscate/ClassRenamer.java +0 -109
  588. data/lib/proguard4.7/src/proguard/obfuscate/DictionaryNameFactory.java +0 -189
  589. data/lib/proguard4.7/src/proguard/obfuscate/MapCleaner.java +0 -57
  590. data/lib/proguard4.7/src/proguard/obfuscate/MappingKeeper.java +0 -177
  591. data/lib/proguard4.7/src/proguard/obfuscate/MappingPrinter.java +0 -147
  592. data/lib/proguard4.7/src/proguard/obfuscate/MappingProcessor.java +0 -79
  593. data/lib/proguard4.7/src/proguard/obfuscate/MappingReader.java +0 -199
  594. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameCleaner.java +0 -60
  595. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameCollector.java +0 -106
  596. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameConflictFixer.java +0 -159
  597. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameFilter.java +0 -120
  598. data/lib/proguard4.7/src/proguard/obfuscate/MemberObfuscator.java +0 -230
  599. data/lib/proguard4.7/src/proguard/obfuscate/MemberSpecialNameFilter.java +0 -101
  600. data/lib/proguard4.7/src/proguard/obfuscate/MultiMappingProcessor.java +0 -96
  601. data/lib/proguard4.7/src/proguard/obfuscate/NameFactory.java +0 -34
  602. data/lib/proguard4.7/src/proguard/obfuscate/NameFactoryResetter.java +0 -59
  603. data/lib/proguard4.7/src/proguard/obfuscate/NameMarker.java +0 -166
  604. data/lib/proguard4.7/src/proguard/obfuscate/NumericNameFactory.java +0 -49
  605. data/lib/proguard4.7/src/proguard/obfuscate/Obfuscator.java +0 -445
  606. data/lib/proguard4.7/src/proguard/obfuscate/ParameterNameMarker.java +0 -128
  607. data/lib/proguard4.7/src/proguard/obfuscate/SimpleNameFactory.java +0 -156
  608. data/lib/proguard4.7/src/proguard/obfuscate/SourceFileRenamer.java +0 -84
  609. data/lib/proguard4.7/src/proguard/obfuscate/SpecialNameFactory.java +0 -83
  610. data/lib/proguard4.7/src/proguard/obfuscate/package.html +0 -3
  611. data/lib/proguard4.7/src/proguard/optimize/BootstrapMethodArgumentShrinker.java +0 -103
  612. data/lib/proguard4.7/src/proguard/optimize/ChangedCodePrinter.java +0 -297
  613. data/lib/proguard4.7/src/proguard/optimize/ConstantMemberFilter.java +0 -77
  614. data/lib/proguard4.7/src/proguard/optimize/ConstantParameterFilter.java +0 -79
  615. data/lib/proguard4.7/src/proguard/optimize/DuplicateInitializerFixer.java +0 -215
  616. data/lib/proguard4.7/src/proguard/optimize/DuplicateInitializerInvocationFixer.java +0 -161
  617. data/lib/proguard4.7/src/proguard/optimize/KeepMarker.java +0 -95
  618. data/lib/proguard4.7/src/proguard/optimize/KeptClassFilter.java +0 -69
  619. data/lib/proguard4.7/src/proguard/optimize/KeptMemberFilter.java +0 -88
  620. data/lib/proguard4.7/src/proguard/optimize/MemberDescriptorSpecializer.java +0 -138
  621. data/lib/proguard4.7/src/proguard/optimize/MethodDescriptorShrinker.java +0 -317
  622. data/lib/proguard4.7/src/proguard/optimize/MethodStaticizer.java +0 -87
  623. data/lib/proguard4.7/src/proguard/optimize/OptimizationInfoMemberFilter.java +0 -94
  624. data/lib/proguard4.7/src/proguard/optimize/Optimizer.java +0 -963
  625. data/lib/proguard4.7/src/proguard/optimize/ParameterShrinker.java +0 -146
  626. data/lib/proguard4.7/src/proguard/optimize/TailRecursionSimplifier.java +0 -356
  627. data/lib/proguard4.7/src/proguard/optimize/WriteOnlyFieldFilter.java +0 -65
  628. data/lib/proguard4.7/src/proguard/optimize/evaluation/EvaluationShrinker.java +0 -2082
  629. data/lib/proguard4.7/src/proguard/optimize/evaluation/EvaluationSimplifier.java +0 -973
  630. data/lib/proguard4.7/src/proguard/optimize/evaluation/LivenessAnalyzer.java +0 -526
  631. data/lib/proguard4.7/src/proguard/optimize/evaluation/LoadingInvocationUnit.java +0 -195
  632. data/lib/proguard4.7/src/proguard/optimize/evaluation/PartialEvaluator.java +0 -1282
  633. data/lib/proguard4.7/src/proguard/optimize/evaluation/StoringInvocationUnit.java +0 -207
  634. data/lib/proguard4.7/src/proguard/optimize/evaluation/TracedBranchUnit.java +0 -59
  635. data/lib/proguard4.7/src/proguard/optimize/evaluation/VariableOptimizer.java +0 -345
  636. data/lib/proguard4.7/src/proguard/optimize/evaluation/package.html +0 -4
  637. data/lib/proguard4.7/src/proguard/optimize/info/AccessMethodMarker.java +0 -202
  638. data/lib/proguard4.7/src/proguard/optimize/info/BackwardBranchMarker.java +0 -90
  639. data/lib/proguard4.7/src/proguard/optimize/info/CatchExceptionMarker.java +0 -69
  640. data/lib/proguard4.7/src/proguard/optimize/info/CaughtClassFilter.java +0 -63
  641. data/lib/proguard4.7/src/proguard/optimize/info/CaughtClassMarker.java +0 -64
  642. data/lib/proguard4.7/src/proguard/optimize/info/ClassOptimizationInfo.java +0 -165
  643. data/lib/proguard4.7/src/proguard/optimize/info/ClassOptimizationInfoSetter.java +0 -47
  644. data/lib/proguard4.7/src/proguard/optimize/info/DotClassFilter.java +0 -63
  645. data/lib/proguard4.7/src/proguard/optimize/info/DotClassMarker.java +0 -96
  646. data/lib/proguard4.7/src/proguard/optimize/info/ExceptionInstructionChecker.java +0 -193
  647. data/lib/proguard4.7/src/proguard/optimize/info/FieldOptimizationInfo.java +0 -204
  648. data/lib/proguard4.7/src/proguard/optimize/info/InstanceofClassFilter.java +0 -63
  649. data/lib/proguard4.7/src/proguard/optimize/info/InstanceofClassMarker.java +0 -93
  650. data/lib/proguard4.7/src/proguard/optimize/info/InstantiationClassFilter.java +0 -62
  651. data/lib/proguard4.7/src/proguard/optimize/info/InstantiationClassMarker.java +0 -93
  652. data/lib/proguard4.7/src/proguard/optimize/info/MemberOptimizationInfoSetter.java +0 -59
  653. data/lib/proguard4.7/src/proguard/optimize/info/MethodInvocationMarker.java +0 -107
  654. data/lib/proguard4.7/src/proguard/optimize/info/MethodOptimizationInfo.java +0 -302
  655. data/lib/proguard4.7/src/proguard/optimize/info/NoSideEffectMethodMarker.java +0 -91
  656. data/lib/proguard4.7/src/proguard/optimize/info/NonPrivateMemberMarker.java +0 -171
  657. data/lib/proguard4.7/src/proguard/optimize/info/PackageVisibleMemberContainingClassMarker.java +0 -85
  658. data/lib/proguard4.7/src/proguard/optimize/info/PackageVisibleMemberInvokingClassMarker.java +0 -129
  659. data/lib/proguard4.7/src/proguard/optimize/info/ParameterUsageMarker.java +0 -285
  660. data/lib/proguard4.7/src/proguard/optimize/info/ReadWriteFieldMarker.java +0 -163
  661. data/lib/proguard4.7/src/proguard/optimize/info/SideEffectInstructionChecker.java +0 -245
  662. data/lib/proguard4.7/src/proguard/optimize/info/SideEffectMethodMarker.java +0 -175
  663. data/lib/proguard4.7/src/proguard/optimize/info/StaticInitializerContainingClassFilter.java +0 -62
  664. data/lib/proguard4.7/src/proguard/optimize/info/StaticInitializerContainingClassMarker.java +0 -65
  665. data/lib/proguard4.7/src/proguard/optimize/info/SuperInvocationMarker.java +0 -93
  666. data/lib/proguard4.7/src/proguard/optimize/info/VariableUsageMarker.java +0 -96
  667. data/lib/proguard4.7/src/proguard/optimize/info/package.html +0 -4
  668. data/lib/proguard4.7/src/proguard/optimize/package.html +0 -4
  669. data/lib/proguard4.7/src/proguard/optimize/peephole/BranchTargetFinder.java +0 -687
  670. data/lib/proguard4.7/src/proguard/optimize/peephole/ClassFinalizer.java +0 -84
  671. data/lib/proguard4.7/src/proguard/optimize/peephole/ClassMerger.java +0 -576
  672. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoCommonCodeReplacer.java +0 -266
  673. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoGotoReplacer.java +0 -115
  674. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoReturnReplacer.java +0 -115
  675. data/lib/proguard4.7/src/proguard/optimize/peephole/HorizontalClassMerger.java +0 -90
  676. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequenceConstants.java +0 -4424
  677. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequenceReplacer.java +0 -420
  678. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequencesReplacer.java +0 -138
  679. data/lib/proguard4.7/src/proguard/optimize/peephole/MemberPrivatizer.java +0 -103
  680. data/lib/proguard4.7/src/proguard/optimize/peephole/MethodFinalizer.java +0 -93
  681. data/lib/proguard4.7/src/proguard/optimize/peephole/MethodInliner.java +0 -597
  682. data/lib/proguard4.7/src/proguard/optimize/peephole/NopRemover.java +0 -89
  683. data/lib/proguard4.7/src/proguard/optimize/peephole/PeepholeOptimizer.java +0 -103
  684. data/lib/proguard4.7/src/proguard/optimize/peephole/ReachableCodeMarker.java +0 -262
  685. data/lib/proguard4.7/src/proguard/optimize/peephole/RetargetedInnerClassAttributeRemover.java +0 -170
  686. data/lib/proguard4.7/src/proguard/optimize/peephole/TargetClassChanger.java +0 -455
  687. data/lib/proguard4.7/src/proguard/optimize/peephole/UnreachableCodeRemover.java +0 -143
  688. data/lib/proguard4.7/src/proguard/optimize/peephole/UnreachableExceptionRemover.java +0 -163
  689. data/lib/proguard4.7/src/proguard/optimize/peephole/VariableShrinker.java +0 -129
  690. data/lib/proguard4.7/src/proguard/optimize/peephole/VerticalClassMerger.java +0 -88
  691. data/lib/proguard4.7/src/proguard/optimize/peephole/package.html +0 -3
  692. data/lib/proguard4.7/src/proguard/package.html +0 -5
  693. data/lib/proguard4.7/src/proguard/preverify/CodePreverifier.java +0 -611
  694. data/lib/proguard4.7/src/proguard/preverify/CodeSubroutineInliner.java +0 -406
  695. data/lib/proguard4.7/src/proguard/preverify/Preverifier.java +0 -73
  696. data/lib/proguard4.7/src/proguard/preverify/SubroutineInliner.java +0 -73
  697. data/lib/proguard4.7/src/proguard/retrace/MANIFEST.MF +0 -3
  698. data/lib/proguard4.7/src/proguard/retrace/ReTrace.java +0 -749
  699. data/lib/proguard4.7/src/proguard/retrace/package.html +0 -4
  700. data/lib/proguard4.7/src/proguard/shrink/AnnotationUsageMarker.java +0 -333
  701. data/lib/proguard4.7/src/proguard/shrink/ClassShrinker.java +0 -458
  702. data/lib/proguard4.7/src/proguard/shrink/InnerUsageMarker.java +0 -174
  703. data/lib/proguard4.7/src/proguard/shrink/InterfaceUsageMarker.java +0 -152
  704. data/lib/proguard4.7/src/proguard/shrink/ShortestUsageMark.java +0 -183
  705. data/lib/proguard4.7/src/proguard/shrink/ShortestUsageMarker.java +0 -277
  706. data/lib/proguard4.7/src/proguard/shrink/ShortestUsagePrinter.java +0 -210
  707. data/lib/proguard4.7/src/proguard/shrink/Shrinker.java +0 -181
  708. data/lib/proguard4.7/src/proguard/shrink/UsageMarker.java +0 -1036
  709. data/lib/proguard4.7/src/proguard/shrink/UsagePrinter.java +0 -177
  710. data/lib/proguard4.7/src/proguard/shrink/UsedClassFilter.java +0 -74
  711. data/lib/proguard4.7/src/proguard/shrink/UsedMemberFilter.java +0 -93
  712. data/lib/proguard4.7/src/proguard/shrink/package.html +0 -3
  713. data/lib/proguard4.7/src/proguard/util/AndMatcher.java +0 -49
  714. data/lib/proguard4.7/src/proguard/util/ClassNameParser.java +0 -216
  715. data/lib/proguard4.7/src/proguard/util/ConstantMatcher.java +0 -48
  716. data/lib/proguard4.7/src/proguard/util/EmptyStringMatcher.java +0 -36
  717. data/lib/proguard4.7/src/proguard/util/ExtensionMatcher.java +0 -63
  718. data/lib/proguard4.7/src/proguard/util/FileNameParser.java +0 -121
  719. data/lib/proguard4.7/src/proguard/util/FixedStringMatcher.java +0 -56
  720. data/lib/proguard4.7/src/proguard/util/ListMatcher.java +0 -69
  721. data/lib/proguard4.7/src/proguard/util/ListParser.java +0 -137
  722. data/lib/proguard4.7/src/proguard/util/ListUtil.java +0 -180
  723. data/lib/proguard4.7/src/proguard/util/NameParser.java +0 -106
  724. data/lib/proguard4.7/src/proguard/util/NotMatcher.java +0 -46
  725. data/lib/proguard4.7/src/proguard/util/OrMatcher.java +0 -49
  726. data/lib/proguard4.7/src/proguard/util/SettableMatcher.java +0 -46
  727. data/lib/proguard4.7/src/proguard/util/StringMatcher.java +0 -38
  728. data/lib/proguard4.7/src/proguard/util/StringParser.java +0 -35
  729. data/lib/proguard4.7/src/proguard/util/VariableStringMatcher.java +0 -126
  730. data/lib/proguard4.7/src/proguard/util/package.html +0 -3
  731. data/lib/proguard4.7/src/proguard/wtk/ProGuardObfuscator.java +0 -141
  732. data/lib/proguard4.7/src/proguard/wtk/default.pro +0 -114
  733. data/lib/proguard4.7/src/proguard/wtk/package.html +0 -3
@@ -1,1285 +0,0 @@
1
- /*
2
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
3
- * of Java bytecode.
4
- *
5
- * Copyright (c) 2002-2011 Eric Lafortune (eric@graphics.cornell.edu)
6
- *
7
- * This program is free software; you can redistribute it and/or modify it
8
- * under the terms of the GNU General Public License as published by the Free
9
- * Software Foundation; either version 2 of the License, or (at your option)
10
- * any later version.
11
- *
12
- * This program is distributed in the hope that it will be useful, but WITHOUT
13
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15
- * more details.
16
- *
17
- * You should have received a copy of the GNU General Public License along
18
- * with this program; if not, write to the Free Software Foundation, Inc.,
19
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
- */
21
- package proguard;
22
-
23
- import proguard.classfile.ClassConstants;
24
- import proguard.classfile.util.ClassUtil;
25
- import proguard.util.ListUtil;
26
-
27
- import java.io.*;
28
- import java.net.URL;
29
- import java.util.*;
30
-
31
-
32
- /**
33
- * This class parses ProGuard configurations. Configurations can be read from an
34
- * array of arguments or from a configuration file or URL.
35
- *
36
- * @author Eric Lafortune
37
- */
38
- public class ConfigurationParser
39
- {
40
- private WordReader reader;
41
- private String nextWord;
42
- private String lastComments;
43
-
44
-
45
- /**
46
- * Creates a new ConfigurationParser for the given String arguments.
47
- */
48
- public ConfigurationParser(String[] args) throws IOException
49
- {
50
- this(args, null);
51
- }
52
-
53
-
54
- /**
55
- * Creates a new ConfigurationParser for the given String arguments,
56
- * with the given base directory.
57
- */
58
- public ConfigurationParser(String[] args,
59
- File baseDir) throws IOException
60
- {
61
- this(new ArgumentWordReader(args, baseDir));
62
- }
63
-
64
-
65
- /**
66
- * Creates a new ConfigurationParser for the given lines,
67
- * with the given base directory.
68
- */
69
- public ConfigurationParser(String lines,
70
- String description,
71
- File baseDir) throws IOException
72
- {
73
- this(new LineWordReader(new LineNumberReader(new StringReader(lines)),
74
- description,
75
- baseDir));
76
- }
77
-
78
-
79
- /**
80
- * Creates a new ConfigurationParser for the given file.
81
- */
82
- public ConfigurationParser(File file) throws IOException
83
- {
84
- this(new FileWordReader(file));
85
- }
86
-
87
-
88
- /**
89
- * Creates a new ConfigurationParser for the given URL.
90
- */
91
- public ConfigurationParser(URL url) throws IOException
92
- {
93
- this(new FileWordReader(url));
94
- }
95
-
96
-
97
- /**
98
- * Creates a new ConfigurationParser for the given word reader.
99
- */
100
- public ConfigurationParser(WordReader reader) throws IOException
101
- {
102
- this.reader = reader;
103
-
104
- readNextWord();
105
- }
106
-
107
-
108
- /**
109
- * Parses and returns the configuration.
110
- * @param configuration the configuration that is updated as a side-effect.
111
- * @throws ParseException if the any of the configuration settings contains
112
- * a syntax error.
113
- * @throws IOException if an IO error occurs while reading a configuration.
114
- */
115
- public void parse(Configuration configuration)
116
- throws ParseException, IOException
117
- {
118
- while (nextWord != null)
119
- {
120
- lastComments = reader.lastComments();
121
-
122
- // First include directives.
123
- if (ConfigurationConstants.AT_DIRECTIVE .startsWith(nextWord) ||
124
- ConfigurationConstants.INCLUDE_DIRECTIVE .startsWith(nextWord)) configuration.lastModified = parseIncludeArgument(configuration.lastModified);
125
- else if (ConfigurationConstants.BASE_DIRECTORY_DIRECTIVE .startsWith(nextWord)) parseBaseDirectoryArgument();
126
-
127
- // Then configuration options with or without arguments.
128
- else if (ConfigurationConstants.INJARS_OPTION .startsWith(nextWord)) configuration.programJars = parseClassPathArgument(configuration.programJars, false);
129
- else if (ConfigurationConstants.OUTJARS_OPTION .startsWith(nextWord)) configuration.programJars = parseClassPathArgument(configuration.programJars, true);
130
- else if (ConfigurationConstants.LIBRARYJARS_OPTION .startsWith(nextWord)) configuration.libraryJars = parseClassPathArgument(configuration.libraryJars, false);
131
- else if (ConfigurationConstants.RESOURCEJARS_OPTION .startsWith(nextWord)) throw new ParseException("The '-resourcejars' option is no longer supported. Please use the '-injars' option for all input");
132
- else if (ConfigurationConstants.SKIP_NON_PUBLIC_LIBRARY_CLASSES_OPTION .startsWith(nextWord)) configuration.skipNonPublicLibraryClasses = parseNoArgument(true);
133
- else if (ConfigurationConstants.DONT_SKIP_NON_PUBLIC_LIBRARY_CLASSES_OPTION .startsWith(nextWord)) configuration.skipNonPublicLibraryClasses = parseNoArgument(false);
134
- else if (ConfigurationConstants.DONT_SKIP_NON_PUBLIC_LIBRARY_CLASS_MEMBERS_OPTION.startsWith(nextWord)) configuration.skipNonPublicLibraryClassMembers = parseNoArgument(false);
135
- else if (ConfigurationConstants.TARGET_OPTION .startsWith(nextWord)) configuration.targetClassVersion = parseClassVersion();
136
- else if (ConfigurationConstants.FORCE_PROCESSING_OPTION .startsWith(nextWord)) configuration.lastModified = parseNoArgument(Long.MAX_VALUE);
137
-
138
- else if (ConfigurationConstants.KEEP_OPTION .startsWith(nextWord)) configuration.keep = parseKeepClassSpecificationArguments(configuration.keep, true, false, false);
139
- else if (ConfigurationConstants.KEEP_CLASS_MEMBERS_OPTION .startsWith(nextWord)) configuration.keep = parseKeepClassSpecificationArguments(configuration.keep, false, false, false);
140
- else if (ConfigurationConstants.KEEP_CLASSES_WITH_MEMBERS_OPTION .startsWith(nextWord)) configuration.keep = parseKeepClassSpecificationArguments(configuration.keep, false, true, false);
141
- else if (ConfigurationConstants.KEEP_NAMES_OPTION .startsWith(nextWord)) configuration.keep = parseKeepClassSpecificationArguments(configuration.keep, true, false, true);
142
- else if (ConfigurationConstants.KEEP_CLASS_MEMBER_NAMES_OPTION .startsWith(nextWord)) configuration.keep = parseKeepClassSpecificationArguments(configuration.keep, false, false, true);
143
- else if (ConfigurationConstants.KEEP_CLASSES_WITH_MEMBER_NAMES_OPTION .startsWith(nextWord)) configuration.keep = parseKeepClassSpecificationArguments(configuration.keep, false, true, true);
144
- else if (ConfigurationConstants.PRINT_SEEDS_OPTION .startsWith(nextWord)) configuration.printSeeds = parseOptionalFile();
145
-
146
- // After '-keep'.
147
- else if (ConfigurationConstants.KEEP_DIRECTORIES_OPTION .startsWith(nextWord)) configuration.keepDirectories = parseCommaSeparatedList("directory name", true, true, false, true, false, true, false, false, configuration.keepDirectories);
148
-
149
- else if (ConfigurationConstants.DONT_SHRINK_OPTION .startsWith(nextWord)) configuration.shrink = parseNoArgument(false);
150
- else if (ConfigurationConstants.PRINT_USAGE_OPTION .startsWith(nextWord)) configuration.printUsage = parseOptionalFile();
151
- else if (ConfigurationConstants.WHY_ARE_YOU_KEEPING_OPTION .startsWith(nextWord)) configuration.whyAreYouKeeping = parseClassSpecificationArguments(configuration.whyAreYouKeeping);
152
-
153
- else if (ConfigurationConstants.DONT_OPTIMIZE_OPTION .startsWith(nextWord)) configuration.optimize = parseNoArgument(false);
154
- else if (ConfigurationConstants.OPTIMIZATION_PASSES .startsWith(nextWord)) configuration.optimizationPasses = parseIntegerArgument();
155
- else if (ConfigurationConstants.OPTIMIZATIONS .startsWith(nextWord)) configuration.optimizations = parseCommaSeparatedList("optimization name", true, false, false, false, false, false, false, false, configuration.optimizations);
156
- else if (ConfigurationConstants.ASSUME_NO_SIDE_EFFECTS_OPTION .startsWith(nextWord)) configuration.assumeNoSideEffects = parseClassSpecificationArguments(configuration.assumeNoSideEffects);
157
- else if (ConfigurationConstants.ALLOW_ACCESS_MODIFICATION_OPTION .startsWith(nextWord)) configuration.allowAccessModification = parseNoArgument(true);
158
- else if (ConfigurationConstants.MERGE_INTERFACES_AGGRESSIVELY_OPTION .startsWith(nextWord)) configuration.mergeInterfacesAggressively = parseNoArgument(true);
159
-
160
- else if (ConfigurationConstants.DONT_OBFUSCATE_OPTION .startsWith(nextWord)) configuration.obfuscate = parseNoArgument(false);
161
- else if (ConfigurationConstants.PRINT_MAPPING_OPTION .startsWith(nextWord)) configuration.printMapping = parseOptionalFile();
162
- else if (ConfigurationConstants.APPLY_MAPPING_OPTION .startsWith(nextWord)) configuration.applyMapping = parseFile();
163
- else if (ConfigurationConstants.OBFUSCATION_DICTIONARY_OPTION .startsWith(nextWord)) configuration.obfuscationDictionary = parseFile();
164
- else if (ConfigurationConstants.CLASS_OBFUSCATION_DICTIONARY_OPTION .startsWith(nextWord)) configuration.classObfuscationDictionary = parseFile();
165
- else if (ConfigurationConstants.PACKAGE_OBFUSCATION_DICTIONARY_OPTION .startsWith(nextWord)) configuration.packageObfuscationDictionary = parseFile();
166
- else if (ConfigurationConstants.OVERLOAD_AGGRESSIVELY_OPTION .startsWith(nextWord)) configuration.overloadAggressively = parseNoArgument(true);
167
- else if (ConfigurationConstants.USE_UNIQUE_CLASS_MEMBER_NAMES_OPTION .startsWith(nextWord)) configuration.useUniqueClassMemberNames = parseNoArgument(true);
168
- else if (ConfigurationConstants.DONT_USE_MIXED_CASE_CLASS_NAMES_OPTION .startsWith(nextWord)) configuration.useMixedCaseClassNames = parseNoArgument(false);
169
- else if (ConfigurationConstants.KEEP_PACKAGE_NAMES_OPTION .startsWith(nextWord)) configuration.keepPackageNames = parseCommaSeparatedList("package name", true, true, false, false, true, false, true, false, configuration.keepPackageNames);
170
- else if (ConfigurationConstants.FLATTEN_PACKAGE_HIERARCHY_OPTION .startsWith(nextWord)) configuration.flattenPackageHierarchy = ClassUtil.internalClassName(parseOptionalArgument());
171
- else if (ConfigurationConstants.REPACKAGE_CLASSES_OPTION .startsWith(nextWord)) configuration.repackageClasses = ClassUtil.internalClassName(parseOptionalArgument());
172
- else if (ConfigurationConstants.DEFAULT_PACKAGE_OPTION .startsWith(nextWord)) configuration.repackageClasses = ClassUtil.internalClassName(parseOptionalArgument());
173
- else if (ConfigurationConstants.KEEP_ATTRIBUTES_OPTION .startsWith(nextWord)) configuration.keepAttributes = parseCommaSeparatedList("attribute name", true, true, false, false, true, false, false, false, configuration.keepAttributes);
174
- else if (ConfigurationConstants.KEEP_PARAMETER_NAMES_OPTION .startsWith(nextWord)) configuration.keepParameterNames = parseNoArgument(true);
175
- else if (ConfigurationConstants.RENAME_SOURCE_FILE_ATTRIBUTE_OPTION .startsWith(nextWord)) configuration.newSourceFileAttribute = parseOptionalArgument();
176
- else if (ConfigurationConstants.ADAPT_CLASS_STRINGS_OPTION .startsWith(nextWord)) configuration.adaptClassStrings = parseCommaSeparatedList("class name", true, true, false, false, true, false, true, false, configuration.adaptClassStrings);
177
- else if (ConfigurationConstants.ADAPT_RESOURCE_FILE_NAMES_OPTION .startsWith(nextWord)) configuration.adaptResourceFileNames = parseCommaSeparatedList("resource file name", true, true, false, true, false, false, false, false, configuration.adaptResourceFileNames);
178
- else if (ConfigurationConstants.ADAPT_RESOURCE_FILE_CONTENTS_OPTION .startsWith(nextWord)) configuration.adaptResourceFileContents = parseCommaSeparatedList("resource file name", true, true, false, true, false, false, false, false, configuration.adaptResourceFileContents);
179
-
180
- else if (ConfigurationConstants.DONT_PREVERIFY_OPTION .startsWith(nextWord)) configuration.preverify = parseNoArgument(false);
181
- else if (ConfigurationConstants.MICRO_EDITION_OPTION .startsWith(nextWord)) configuration.microEdition = parseNoArgument(true);
182
-
183
- else if (ConfigurationConstants.VERBOSE_OPTION .startsWith(nextWord)) configuration.verbose = parseNoArgument(true);
184
- else if (ConfigurationConstants.DONT_NOTE_OPTION .startsWith(nextWord)) configuration.note = parseCommaSeparatedList("class name", true, true, false, false, true, false, true, false, configuration.note);
185
- else if (ConfigurationConstants.DONT_WARN_OPTION .startsWith(nextWord)) configuration.warn = parseCommaSeparatedList("class name", true, true, false, false, true, false, true, false, configuration.warn);
186
- else if (ConfigurationConstants.IGNORE_WARNINGS_OPTION .startsWith(nextWord)) configuration.ignoreWarnings = parseNoArgument(true);
187
- else if (ConfigurationConstants.PRINT_CONFIGURATION_OPTION .startsWith(nextWord)) configuration.printConfiguration = parseOptionalFile();
188
- else if (ConfigurationConstants.DUMP_OPTION .startsWith(nextWord)) configuration.dump = parseOptionalFile();
189
- else
190
- {
191
- throw new ParseException("Unknown option " + reader.locationDescription());
192
- }
193
- }
194
- }
195
-
196
-
197
-
198
- /**
199
- * Closes the configuration.
200
- * @throws IOException if an IO error occurs while closing the configuration.
201
- */
202
- public void close() throws IOException
203
- {
204
- if (reader != null)
205
- {
206
- reader.close();
207
- }
208
- }
209
-
210
-
211
- private long parseIncludeArgument(long lastModified) throws ParseException, IOException
212
- {
213
- // Read the configuation file name.
214
- readNextWord("configuration file name", true, false);
215
-
216
- File file = file(nextWord);
217
- reader.includeWordReader(new FileWordReader(file));
218
-
219
- readNextWord();
220
-
221
- return Math.max(lastModified, file.lastModified());
222
- }
223
-
224
-
225
- private void parseBaseDirectoryArgument() throws ParseException, IOException
226
- {
227
- // Read the base directory name.
228
- readNextWord("base directory name", true, false);
229
-
230
- reader.setBaseDir(file(nextWord));
231
-
232
- readNextWord();
233
- }
234
-
235
-
236
- private ClassPath parseClassPathArgument(ClassPath classPath,
237
- boolean isOutput)
238
- throws ParseException, IOException
239
- {
240
- // Create a new List if necessary.
241
- if (classPath == null)
242
- {
243
- classPath = new ClassPath();
244
- }
245
-
246
- while (true)
247
- {
248
- // Read the next jar name.
249
- readNextWord("jar or directory name", true, false);
250
-
251
- // Create a new class path entry.
252
- ClassPathEntry entry = new ClassPathEntry(file(nextWord), isOutput);
253
-
254
- // Read the opening parenthesis or the separator, if any.
255
- readNextWord();
256
-
257
- // Read the optional filters.
258
- if (!configurationEnd() &&
259
- ConfigurationConstants.OPEN_ARGUMENTS_KEYWORD.equals(nextWord))
260
- {
261
- // Read all filters in an array.
262
- List[] filters = new List[5];
263
-
264
- int counter = 0;
265
- do
266
- {
267
- // Read the filter.
268
- filters[counter++] =
269
- parseCommaSeparatedList("filter", true, false, true, true, false, true, false, false, null);
270
- }
271
- while (counter < filters.length &&
272
- ConfigurationConstants.SEPARATOR_KEYWORD.equals(nextWord));
273
-
274
- // Make sure there is a closing parenthesis.
275
- if (!ConfigurationConstants.CLOSE_ARGUMENTS_KEYWORD.equals(nextWord))
276
- {
277
- throw new ParseException("Expecting separating '" + ConfigurationConstants.ARGUMENT_SEPARATOR_KEYWORD +
278
- "' or '" + ConfigurationConstants.SEPARATOR_KEYWORD +
279
- "', or closing '" + ConfigurationConstants.CLOSE_ARGUMENTS_KEYWORD +
280
- "' before " + reader.locationDescription());
281
- }
282
-
283
- // Set all filters from the array on the entry.
284
- entry.setFilter(filters[--counter]);
285
- if (counter > 0)
286
- {
287
- entry.setJarFilter(filters[--counter]);
288
- if (counter > 0)
289
- {
290
- entry.setWarFilter(filters[--counter]);
291
- if (counter > 0)
292
- {
293
- entry.setEarFilter(filters[--counter]);
294
- if (counter > 0)
295
- {
296
- entry.setZipFilter(filters[--counter]);
297
- }
298
- }
299
- }
300
- }
301
-
302
- // Read the separator, if any.
303
- readNextWord();
304
- }
305
-
306
- // Add the entry to the list.
307
- classPath.add(entry);
308
-
309
- if (configurationEnd())
310
- {
311
- return classPath;
312
- }
313
-
314
- if (!nextWord.equals(ConfigurationConstants.JAR_SEPARATOR_KEYWORD))
315
- {
316
- throw new ParseException("Expecting class path separator '" + ConfigurationConstants.JAR_SEPARATOR_KEYWORD +
317
- "' before " + reader.locationDescription());
318
- }
319
- }
320
- }
321
-
322
-
323
- private int parseClassVersion()
324
- throws ParseException, IOException
325
- {
326
- // Read the obligatory target.
327
- readNextWord("java version");
328
-
329
- int classVersion = ClassUtil.internalClassVersion(nextWord);
330
- if (classVersion == 0)
331
- {
332
- throw new ParseException("Unsupported java version " + reader.locationDescription());
333
- }
334
-
335
- readNextWord();
336
-
337
- return classVersion;
338
- }
339
-
340
-
341
- private int parseIntegerArgument()
342
- throws ParseException, IOException
343
- {
344
- try
345
- {
346
- // Read the obligatory integer.
347
- readNextWord("integer");
348
-
349
- int integer = Integer.parseInt(nextWord);
350
-
351
- readNextWord();
352
-
353
- return integer;
354
- }
355
- catch (NumberFormatException e)
356
- {
357
- throw new ParseException("Expecting integer argument instead of '" + nextWord +
358
- "' before " + reader.locationDescription());
359
- }
360
- }
361
-
362
-
363
- private File parseFile()
364
- throws ParseException, IOException
365
- {
366
- // Read the obligatory file name.
367
- readNextWord("file name", true, false);
368
-
369
- // Make sure the file is properly resolved.
370
- File file = file(nextWord);
371
-
372
- readNextWord();
373
-
374
- return file;
375
- }
376
-
377
-
378
- private File parseOptionalFile()
379
- throws ParseException, IOException
380
- {
381
- // Read the optional file name.
382
- readNextWord(true);
383
-
384
- // Didn't the user specify a file name?
385
- if (configurationEnd())
386
- {
387
- return new File("");
388
- }
389
-
390
- // Make sure the file is properly resolved.
391
- File file = file(nextWord);
392
-
393
- readNextWord();
394
-
395
- return file;
396
- }
397
-
398
-
399
- private String parseOptionalArgument() throws IOException
400
- {
401
- // Read the optional argument.
402
- readNextWord();
403
-
404
- // Didn't the user specify an argument?
405
- if (configurationEnd())
406
- {
407
- return "";
408
- }
409
-
410
- String argument = nextWord;
411
-
412
- readNextWord();
413
-
414
- return argument;
415
- }
416
-
417
-
418
- private boolean parseNoArgument(boolean value) throws IOException
419
- {
420
- readNextWord();
421
-
422
- return value;
423
- }
424
-
425
-
426
- private long parseNoArgument(long value) throws IOException
427
- {
428
- readNextWord();
429
-
430
- return value;
431
- }
432
-
433
-
434
- private List parseKeepClassSpecificationArguments(List keepClassSpecifications,
435
- boolean markClasses,
436
- boolean markConditionally,
437
- boolean allowShrinking)
438
- throws ParseException, IOException
439
- {
440
- // Create a new List if necessary.
441
- if (keepClassSpecifications == null)
442
- {
443
- keepClassSpecifications = new ArrayList();
444
- }
445
-
446
- //boolean allowShrinking = false;
447
- boolean allowOptimization = false;
448
- boolean allowObfuscation = false;
449
-
450
- // Read the keep modifiers.
451
- while (true)
452
- {
453
- readNextWord("keyword '" + ConfigurationConstants.CLASS_KEYWORD +
454
- "', '" + ClassConstants.EXTERNAL_ACC_INTERFACE +
455
- "', or '" + ClassConstants.EXTERNAL_ACC_ENUM + "'",
456
- false, true);
457
-
458
- if (!ConfigurationConstants.ARGUMENT_SEPARATOR_KEYWORD.equals(nextWord))
459
- {
460
- // Not a comma. Stop parsing the keep modifiers.
461
- break;
462
- }
463
-
464
- readNextWord("keyword '" + ConfigurationConstants.ALLOW_SHRINKING_SUBOPTION +
465
- "', '" + ConfigurationConstants.ALLOW_OPTIMIZATION_SUBOPTION +
466
- "', or '" + ConfigurationConstants.ALLOW_OBFUSCATION_SUBOPTION + "'");
467
-
468
- if (ConfigurationConstants.ALLOW_SHRINKING_SUBOPTION .startsWith(nextWord))
469
- {
470
- allowShrinking = true;
471
- }
472
- else if (ConfigurationConstants.ALLOW_OPTIMIZATION_SUBOPTION.startsWith(nextWord))
473
- {
474
- allowOptimization = true;
475
- }
476
- else if (ConfigurationConstants.ALLOW_OBFUSCATION_SUBOPTION .startsWith(nextWord))
477
- {
478
- allowObfuscation = true;
479
- }
480
- else
481
- {
482
- throw new ParseException("Expecting keyword '" + ConfigurationConstants.ALLOW_SHRINKING_SUBOPTION +
483
- "', '" + ConfigurationConstants.ALLOW_OPTIMIZATION_SUBOPTION +
484
- "', or '" + ConfigurationConstants.ALLOW_OBFUSCATION_SUBOPTION +
485
- "' before " + reader.locationDescription());
486
- }
487
- }
488
-
489
- // Read the class configuration.
490
- ClassSpecification classSpecification =
491
- parseClassSpecificationArguments();
492
-
493
- // Create and add the keep configuration.
494
- keepClassSpecifications.add(new KeepClassSpecification(markClasses,
495
- markConditionally,
496
- allowShrinking,
497
- allowOptimization,
498
- allowObfuscation,
499
- classSpecification));
500
- return keepClassSpecifications;
501
- }
502
-
503
-
504
- private List parseClassSpecificationArguments(List classSpecifications)
505
- throws ParseException, IOException
506
- {
507
- // Create a new List if necessary.
508
- if (classSpecifications == null)
509
- {
510
- classSpecifications = new ArrayList();
511
- }
512
-
513
- // Read and add the class configuration.
514
- readNextWord("keyword '" + ConfigurationConstants.CLASS_KEYWORD +
515
- "', '" + ClassConstants.EXTERNAL_ACC_INTERFACE +
516
- "', or '" + ClassConstants.EXTERNAL_ACC_ENUM + "'",
517
- false, true);
518
-
519
- classSpecifications.add(parseClassSpecificationArguments());
520
-
521
- return classSpecifications;
522
- }
523
-
524
-
525
- private ClassSpecification parseClassSpecificationArguments()
526
- throws ParseException, IOException
527
- {
528
- // Clear the annotation type.
529
- String annotationType = null;
530
-
531
- // Clear the class access modifiers.
532
- int requiredSetClassAccessFlags = 0;
533
- int requiredUnsetClassAccessFlags = 0;
534
-
535
- // Parse the class annotations and access modifiers until the class keyword.
536
- while (!ConfigurationConstants.CLASS_KEYWORD.equals(nextWord))
537
- {
538
- // Strip the negating sign, if any.
539
- boolean negated =
540
- nextWord.startsWith(ConfigurationConstants.NEGATOR_KEYWORD);
541
-
542
- String strippedWord = negated ?
543
- nextWord.substring(1) :
544
- nextWord;
545
-
546
- // Parse the class access modifiers.
547
- int accessFlag =
548
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_PUBLIC) ? ClassConstants.INTERNAL_ACC_PUBLIC :
549
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_FINAL) ? ClassConstants.INTERNAL_ACC_FINAL :
550
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_INTERFACE) ? ClassConstants.INTERNAL_ACC_INTERFACE :
551
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_ABSTRACT) ? ClassConstants.INTERNAL_ACC_ABSTRACT :
552
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_SYNTHETIC) ? ClassConstants.INTERNAL_ACC_SYNTHETIC :
553
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_ANNOTATION) ? ClassConstants.INTERNAL_ACC_ANNOTATTION :
554
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_ENUM) ? ClassConstants.INTERNAL_ACC_ENUM :
555
- unknownAccessFlag();
556
-
557
- // Is it an annotation modifier?
558
- if (accessFlag == ClassConstants.INTERNAL_ACC_ANNOTATTION)
559
- {
560
- // Already read the next word.
561
- readNextWord("annotation type or keyword '" + ClassConstants.EXTERNAL_ACC_INTERFACE + "'",
562
- false, false);
563
-
564
- // Is the next word actually an annotation type?
565
- if (!nextWord.equals(ClassConstants.EXTERNAL_ACC_INTERFACE) &&
566
- !nextWord.equals(ClassConstants.EXTERNAL_ACC_ENUM) &&
567
- !nextWord.equals(ConfigurationConstants.CLASS_KEYWORD))
568
- {
569
- // Parse the annotation type.
570
- annotationType =
571
- ListUtil.commaSeparatedString(
572
- parseCommaSeparatedList("annotation type",
573
- false, false, false, false, true, false, false, true, null), false);
574
-
575
- // Continue parsing the access modifier that we just read
576
- // in the next cycle.
577
- continue;
578
- }
579
-
580
- // Otherwise just handle the annotation modifier.
581
- }
582
-
583
- if (!negated)
584
- {
585
- requiredSetClassAccessFlags |= accessFlag;
586
- }
587
- else
588
- {
589
- requiredUnsetClassAccessFlags |= accessFlag;
590
- }
591
-
592
- if ((requiredSetClassAccessFlags &
593
- requiredUnsetClassAccessFlags) != 0)
594
- {
595
- throw new ParseException("Conflicting class access modifiers for '" + strippedWord +
596
- "' before " + reader.locationDescription());
597
- }
598
-
599
- if (strippedWord.equals(ClassConstants.EXTERNAL_ACC_INTERFACE) ||
600
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_ENUM) ||
601
- strippedWord.equals(ConfigurationConstants.CLASS_KEYWORD))
602
- {
603
- // The interface or enum keyword. Stop parsing the class flags.
604
- break;
605
- }
606
-
607
- // Should we read the next word?
608
- if (accessFlag != ClassConstants.INTERNAL_ACC_ANNOTATTION)
609
- {
610
- readNextWord("keyword '" + ConfigurationConstants.CLASS_KEYWORD +
611
- "', '" + ClassConstants.EXTERNAL_ACC_INTERFACE +
612
- "', or '" + ClassConstants.EXTERNAL_ACC_ENUM + "'",
613
- false, true);
614
- }
615
- }
616
-
617
- // Parse the class name part.
618
- String externalClassName =
619
- ListUtil.commaSeparatedString(
620
- parseCommaSeparatedList("class name or interface name",
621
- true, false, false, false, true, false, false, false, null), false);
622
-
623
- // For backward compatibility, allow a single "*" wildcard to match any
624
- // class.
625
- String className = ConfigurationConstants.ANY_CLASS_KEYWORD.equals(externalClassName) ?
626
- null :
627
- ClassUtil.internalClassName(externalClassName);
628
-
629
- // Clear the annotation type and the class name of the extends part.
630
- String extendsAnnotationType = null;
631
- String extendsClassName = null;
632
-
633
- if (!configurationEnd())
634
- {
635
- // Parse 'implements ...' or 'extends ...' part, if any.
636
- if (ConfigurationConstants.IMPLEMENTS_KEYWORD.equals(nextWord) ||
637
- ConfigurationConstants.EXTENDS_KEYWORD.equals(nextWord))
638
- {
639
- readNextWord("class name or interface name", false, true);
640
-
641
- // Parse the annotation type, if any.
642
- if (ConfigurationConstants.ANNOTATION_KEYWORD.equals(nextWord))
643
- {
644
- extendsAnnotationType =
645
- ListUtil.commaSeparatedString(
646
- parseCommaSeparatedList("annotation type",
647
- true, false, false, false, true, false, false, true, null), false);
648
- }
649
-
650
- String externalExtendsClassName =
651
- ListUtil.commaSeparatedString(
652
- parseCommaSeparatedList("class name or interface name",
653
- false, false, false, false, true, false, false, false, null), false);
654
-
655
- extendsClassName = ConfigurationConstants.ANY_CLASS_KEYWORD.equals(externalExtendsClassName) ?
656
- null :
657
- ClassUtil.internalClassName(externalExtendsClassName);
658
- }
659
- }
660
-
661
- // Create the basic class specification.
662
- ClassSpecification classSpecification =
663
- new ClassSpecification(lastComments,
664
- requiredSetClassAccessFlags,
665
- requiredUnsetClassAccessFlags,
666
- annotationType,
667
- className,
668
- extendsAnnotationType,
669
- extendsClassName);
670
-
671
-
672
- // Now add any class members to this class specification.
673
- if (!configurationEnd())
674
- {
675
- // Check the class member opening part.
676
- if (!ConfigurationConstants.OPEN_KEYWORD.equals(nextWord))
677
- {
678
- throw new ParseException("Expecting opening '" + ConfigurationConstants.OPEN_KEYWORD +
679
- "' at " + reader.locationDescription());
680
- }
681
-
682
- // Parse all class members.
683
- while (true)
684
- {
685
- readNextWord("class member description" +
686
- " or closing '" + ConfigurationConstants.CLOSE_KEYWORD + "'",
687
- false, true);
688
-
689
- if (nextWord.equals(ConfigurationConstants.CLOSE_KEYWORD))
690
- {
691
- // The closing brace. Stop parsing the class members.
692
- readNextWord();
693
-
694
- break;
695
- }
696
-
697
- parseMemberSpecificationArguments(externalClassName,
698
- classSpecification);
699
- }
700
- }
701
-
702
- return classSpecification;
703
- }
704
-
705
-
706
- private void parseMemberSpecificationArguments(String externalClassName,
707
- ClassSpecification classSpecification)
708
- throws ParseException, IOException
709
- {
710
- // Clear the annotation name.
711
- String annotationType = null;
712
-
713
- // Parse the class member access modifiers, if any.
714
- int requiredSetMemberAccessFlags = 0;
715
- int requiredUnsetMemberAccessFlags = 0;
716
-
717
- while (!configurationEnd(true))
718
- {
719
- // Parse the annotation type, if any.
720
- if (ConfigurationConstants.ANNOTATION_KEYWORD.equals(nextWord))
721
- {
722
- annotationType =
723
- ListUtil.commaSeparatedString(
724
- parseCommaSeparatedList("annotation type",
725
- true, false, false, false, true, false, false, true, null), false);
726
- continue;
727
- }
728
-
729
- String strippedWord = nextWord.startsWith("!") ?
730
- nextWord.substring(1) :
731
- nextWord;
732
-
733
- // Parse the class member access modifiers.
734
- int accessFlag =
735
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_PUBLIC) ? ClassConstants.INTERNAL_ACC_PUBLIC :
736
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_PRIVATE) ? ClassConstants.INTERNAL_ACC_PRIVATE :
737
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_PROTECTED) ? ClassConstants.INTERNAL_ACC_PROTECTED :
738
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_STATIC) ? ClassConstants.INTERNAL_ACC_STATIC :
739
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_FINAL) ? ClassConstants.INTERNAL_ACC_FINAL :
740
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_SYNCHRONIZED) ? ClassConstants.INTERNAL_ACC_SYNCHRONIZED :
741
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_VOLATILE) ? ClassConstants.INTERNAL_ACC_VOLATILE :
742
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_TRANSIENT) ? ClassConstants.INTERNAL_ACC_TRANSIENT :
743
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_BRIDGE) ? ClassConstants.INTERNAL_ACC_BRIDGE :
744
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_VARARGS) ? ClassConstants.INTERNAL_ACC_VARARGS :
745
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_NATIVE) ? ClassConstants.INTERNAL_ACC_NATIVE :
746
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_ABSTRACT) ? ClassConstants.INTERNAL_ACC_ABSTRACT :
747
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_STRICT) ? ClassConstants.INTERNAL_ACC_STRICT :
748
- strippedWord.equals(ClassConstants.EXTERNAL_ACC_SYNTHETIC) ? ClassConstants.INTERNAL_ACC_SYNTHETIC :
749
- 0;
750
- if (accessFlag == 0)
751
- {
752
- // Not a class member access modifier. Stop parsing them.
753
- break;
754
- }
755
-
756
- if (strippedWord.equals(nextWord))
757
- {
758
- requiredSetMemberAccessFlags |= accessFlag;
759
- }
760
- else
761
- {
762
- requiredUnsetMemberAccessFlags |= accessFlag;
763
- }
764
-
765
- // Make sure the user doesn't try to set and unset the same
766
- // access flags simultaneously.
767
- if ((requiredSetMemberAccessFlags &
768
- requiredUnsetMemberAccessFlags) != 0)
769
- {
770
- throw new ParseException("Conflicting class member access modifiers for " +
771
- reader.locationDescription());
772
- }
773
-
774
- readNextWord("class member description");
775
- }
776
-
777
- // Parse the class member type and name part.
778
-
779
- // Did we get a special wildcard?
780
- if (ConfigurationConstants.ANY_CLASS_MEMBER_KEYWORD.equals(nextWord) ||
781
- ConfigurationConstants.ANY_FIELD_KEYWORD .equals(nextWord) ||
782
- ConfigurationConstants.ANY_METHOD_KEYWORD .equals(nextWord))
783
- {
784
- // Act according to the type of wildcard..
785
- if (ConfigurationConstants.ANY_CLASS_MEMBER_KEYWORD.equals(nextWord))
786
- {
787
- checkFieldAccessFlags(requiredSetMemberAccessFlags,
788
- requiredUnsetMemberAccessFlags);
789
- checkMethodAccessFlags(requiredSetMemberAccessFlags,
790
- requiredUnsetMemberAccessFlags);
791
-
792
- classSpecification.addField(
793
- new MemberSpecification(requiredSetMemberAccessFlags,
794
- requiredUnsetMemberAccessFlags,
795
- annotationType,
796
- null,
797
- null));
798
- classSpecification.addMethod(
799
- new MemberSpecification(requiredSetMemberAccessFlags,
800
- requiredUnsetMemberAccessFlags,
801
- annotationType,
802
- null,
803
- null));
804
- }
805
- else if (ConfigurationConstants.ANY_FIELD_KEYWORD.equals(nextWord))
806
- {
807
- checkFieldAccessFlags(requiredSetMemberAccessFlags,
808
- requiredUnsetMemberAccessFlags);
809
-
810
- classSpecification.addField(
811
- new MemberSpecification(requiredSetMemberAccessFlags,
812
- requiredUnsetMemberAccessFlags,
813
- annotationType,
814
- null,
815
- null));
816
- }
817
- else if (ConfigurationConstants.ANY_METHOD_KEYWORD.equals(nextWord))
818
- {
819
- checkMethodAccessFlags(requiredSetMemberAccessFlags,
820
- requiredUnsetMemberAccessFlags);
821
-
822
- classSpecification.addMethod(
823
- new MemberSpecification(requiredSetMemberAccessFlags,
824
- requiredUnsetMemberAccessFlags,
825
- annotationType,
826
- null,
827
- null));
828
- }
829
-
830
- // We still have to read the closing separator.
831
- readNextWord("separator '" + ConfigurationConstants.SEPARATOR_KEYWORD + "'");
832
-
833
- if (!ConfigurationConstants.SEPARATOR_KEYWORD.equals(nextWord))
834
- {
835
- throw new ParseException("Expecting separator '" + ConfigurationConstants.SEPARATOR_KEYWORD +
836
- "' before " + reader.locationDescription());
837
- }
838
- }
839
- else
840
- {
841
- // Make sure we have a proper type.
842
- checkJavaIdentifier("java type");
843
- String type = nextWord;
844
-
845
- readNextWord("class member name");
846
- String name = nextWord;
847
-
848
- // Did we get just one word before the opening parenthesis?
849
- if (ConfigurationConstants.OPEN_ARGUMENTS_KEYWORD.equals(name))
850
- {
851
- // This must be a constructor then.
852
- // Make sure the type is a proper constructor name.
853
- if (!(type.equals(ClassConstants.INTERNAL_METHOD_NAME_INIT) ||
854
- type.equals(externalClassName) ||
855
- type.equals(ClassUtil.externalShortClassName(externalClassName))))
856
- {
857
- throw new ParseException("Expecting type and name " +
858
- "instead of just '" + type +
859
- "' before " + reader.locationDescription());
860
- }
861
-
862
- // Assign the fixed constructor type and name.
863
- type = ClassConstants.EXTERNAL_TYPE_VOID;
864
- name = ClassConstants.INTERNAL_METHOD_NAME_INIT;
865
- }
866
- else
867
- {
868
- // It's not a constructor.
869
- // Make sure we have a proper name.
870
- checkJavaIdentifier("class member name");
871
-
872
- // Read the opening parenthesis or the separating
873
- // semi-colon.
874
- readNextWord("opening '" + ConfigurationConstants.OPEN_ARGUMENTS_KEYWORD +
875
- "' or separator '" + ConfigurationConstants.SEPARATOR_KEYWORD + "'");
876
- }
877
-
878
- // Are we looking at a field, a method, or something else?
879
- if (ConfigurationConstants.SEPARATOR_KEYWORD.equals(nextWord))
880
- {
881
- // It's a field.
882
- checkFieldAccessFlags(requiredSetMemberAccessFlags,
883
- requiredUnsetMemberAccessFlags);
884
-
885
- // We already have a field descriptor.
886
- String descriptor = ClassUtil.internalType(type);
887
-
888
- // Add the field.
889
- classSpecification.addField(
890
- new MemberSpecification(requiredSetMemberAccessFlags,
891
- requiredUnsetMemberAccessFlags,
892
- annotationType,
893
- name,
894
- descriptor));
895
- }
896
- else if (ConfigurationConstants.OPEN_ARGUMENTS_KEYWORD.equals(nextWord))
897
- {
898
- // It's a method.
899
- checkMethodAccessFlags(requiredSetMemberAccessFlags,
900
- requiredUnsetMemberAccessFlags);
901
-
902
- // Parse the method arguments.
903
- String descriptor =
904
- ClassUtil.internalMethodDescriptor(type,
905
- parseCommaSeparatedList("argument", true, true, true, false, true, false, false, false, null));
906
-
907
- if (!ConfigurationConstants.CLOSE_ARGUMENTS_KEYWORD.equals(nextWord))
908
- {
909
- throw new ParseException("Expecting separating '" + ConfigurationConstants.ARGUMENT_SEPARATOR_KEYWORD +
910
- "' or closing '" + ConfigurationConstants.CLOSE_ARGUMENTS_KEYWORD +
911
- "' before " + reader.locationDescription());
912
- }
913
-
914
- // Read the separator after the closing parenthesis.
915
- readNextWord("separator '" + ConfigurationConstants.SEPARATOR_KEYWORD + "'");
916
-
917
- if (!ConfigurationConstants.SEPARATOR_KEYWORD.equals(nextWord))
918
- {
919
- throw new ParseException("Expecting separator '" + ConfigurationConstants.SEPARATOR_KEYWORD +
920
- "' before " + reader.locationDescription());
921
- }
922
-
923
- // Add the method.
924
- classSpecification.addMethod(
925
- new MemberSpecification(requiredSetMemberAccessFlags,
926
- requiredUnsetMemberAccessFlags,
927
- annotationType,
928
- name,
929
- descriptor));
930
- }
931
- else
932
- {
933
- // It doesn't look like a field or a method.
934
- throw new ParseException("Expecting opening '" + ConfigurationConstants.OPEN_ARGUMENTS_KEYWORD +
935
- "' or separator '" + ConfigurationConstants.SEPARATOR_KEYWORD +
936
- "' before " + reader.locationDescription());
937
- }
938
- }
939
- }
940
-
941
-
942
- /**
943
- * Reads a comma-separated list of java identifiers or of file names. If an
944
- * empty list is allowed, the reading will end after a closing parenthesis
945
- * or semi-colon.
946
- */
947
- private List parseCommaSeparatedList(String expectedDescription,
948
- boolean readFirstWord,
949
- boolean allowEmptyList,
950
- boolean expectClosingParenthesis,
951
- boolean isFileName,
952
- boolean checkJavaIdentifiers,
953
- boolean replaceSystemProperties,
954
- boolean replaceExternalClassNames,
955
- boolean replaceExternalTypes,
956
- List list)
957
- throws ParseException, IOException
958
- {
959
- if (list == null)
960
- {
961
- list = new ArrayList();
962
- }
963
-
964
- if (readFirstWord)
965
- {
966
- if (expectClosingParenthesis || !allowEmptyList)
967
- {
968
- // Read the first list entry.
969
- readNextWord(expectedDescription, isFileName, false);
970
- }
971
- else
972
- {
973
- // Read the first list entry, if there is any.
974
- readNextWord(isFileName);
975
-
976
- // Check if the list is empty.
977
- if (configurationEnd() ||
978
- nextWord.equals(ConfigurationConstants.ANY_ATTRIBUTE_KEYWORD))
979
- {
980
- return list;
981
- }
982
- }
983
- }
984
-
985
- while (true)
986
- {
987
- if (expectClosingParenthesis &&
988
- list.size() == 0 &&
989
- (ConfigurationConstants.CLOSE_ARGUMENTS_KEYWORD.equals(nextWord) ||
990
- ConfigurationConstants.SEPARATOR_KEYWORD.equals(nextWord)))
991
- {
992
- break;
993
- }
994
-
995
- if (checkJavaIdentifiers)
996
- {
997
- checkJavaIdentifier("java type");
998
- }
999
-
1000
- if (replaceSystemProperties)
1001
- {
1002
- nextWord = replaceSystemProperties(nextWord);
1003
- }
1004
-
1005
- if (replaceExternalClassNames)
1006
- {
1007
- nextWord = ClassUtil.internalClassName(nextWord);
1008
- }
1009
-
1010
- if (replaceExternalTypes)
1011
- {
1012
- nextWord = ClassUtil.internalType(nextWord);
1013
- }
1014
-
1015
- list.add(nextWord);
1016
-
1017
- if (expectClosingParenthesis)
1018
- {
1019
- // Read a comma (or a closing parenthesis, or a different word).
1020
- readNextWord("separating '" + ConfigurationConstants.ARGUMENT_SEPARATOR_KEYWORD +
1021
- "' or closing '" + ConfigurationConstants.CLOSE_ARGUMENTS_KEYWORD +
1022
- "'");
1023
- }
1024
- else
1025
- {
1026
- // Read a comma (or a different word).
1027
- readNextWord();
1028
- }
1029
-
1030
- if (!ConfigurationConstants.ARGUMENT_SEPARATOR_KEYWORD.equals(nextWord))
1031
- {
1032
- break;
1033
- }
1034
-
1035
- // Read the next list entry.
1036
- readNextWord(expectedDescription, isFileName, false);
1037
- }
1038
-
1039
- return list;
1040
- }
1041
-
1042
-
1043
- /**
1044
- * Throws a ParseException for an unexpected keyword.
1045
- */
1046
- private int unknownAccessFlag() throws ParseException
1047
- {
1048
- throw new ParseException("Unexpected keyword " + reader.locationDescription());
1049
- }
1050
-
1051
-
1052
- /**
1053
- * Creates a properly resolved File, based on the given word.
1054
- */
1055
- private File file(String word) throws ParseException
1056
- {
1057
- String fileName = replaceSystemProperties(word);
1058
- File file = new File(fileName);
1059
-
1060
- // Try to get an absolute file.
1061
- if (!file.isAbsolute())
1062
- {
1063
- file = new File(reader.getBaseDir(), fileName);
1064
- }
1065
-
1066
- return file;
1067
- }
1068
-
1069
-
1070
- /**
1071
- * Replaces any system properties in the given word by their values
1072
- * (e.g. the substring "<java.home>" is replaced by its value).
1073
- */
1074
- private String replaceSystemProperties(String word) throws ParseException
1075
- {
1076
- int fromIndex = 0;
1077
- while (true)
1078
- {
1079
- fromIndex = word.indexOf(ConfigurationConstants.OPEN_SYSTEM_PROPERTY, fromIndex);
1080
- if (fromIndex < 0)
1081
- {
1082
- break;
1083
- }
1084
-
1085
- int toIndex = word.indexOf(ConfigurationConstants.CLOSE_SYSTEM_PROPERTY, fromIndex+1);
1086
- if (toIndex < 0)
1087
- {
1088
- throw new ParseException("Expecting closing '" + ConfigurationConstants.CLOSE_SYSTEM_PROPERTY +
1089
- "' after opening '" + ConfigurationConstants.OPEN_SYSTEM_PROPERTY +
1090
- "' in " + reader.locationDescription());
1091
- }
1092
-
1093
- String propertyName = word.substring(fromIndex+1, toIndex);
1094
- String propertyValue = System.getProperty(propertyName);
1095
- if (propertyValue == null)
1096
- {
1097
- throw new ParseException("Value of system property '" + propertyName +
1098
- "' is undefined in " + reader.locationDescription());
1099
- }
1100
-
1101
- word = word.substring(0, fromIndex) +
1102
- propertyValue +
1103
- word.substring(toIndex+1);
1104
- }
1105
-
1106
- return word;
1107
- }
1108
-
1109
-
1110
- /**
1111
- * Reads the next word of the configuration in the 'nextWord' field,
1112
- * throwing an exception if there is no next word.
1113
- */
1114
- private void readNextWord(String expectedDescription)
1115
- throws ParseException, IOException
1116
- {
1117
- readNextWord(expectedDescription, false, false);
1118
- }
1119
-
1120
-
1121
- /**
1122
- * Reads the next word of the configuration in the 'nextWord' field,
1123
- * throwing an exception if there is no next word.
1124
- */
1125
- private void readNextWord(String expectedDescription,
1126
- boolean isFileName,
1127
- boolean expectingAtCharacter)
1128
- throws ParseException, IOException
1129
- {
1130
- readNextWord(isFileName);
1131
- if (configurationEnd(expectingAtCharacter))
1132
- {
1133
- throw new ParseException("Expecting " + expectedDescription +
1134
- " before " + reader.locationDescription());
1135
- }
1136
- }
1137
-
1138
-
1139
- /**
1140
- * Reads the next word of the configuration in the 'nextWord' field.
1141
- */
1142
- private void readNextWord() throws IOException
1143
- {
1144
- readNextWord(false);
1145
- }
1146
-
1147
-
1148
- /**
1149
- * Reads the next word of the configuration in the 'nextWord' field.
1150
- */
1151
- private void readNextWord(boolean isFileName) throws IOException
1152
- {
1153
- nextWord = reader.nextWord(isFileName);
1154
- }
1155
-
1156
-
1157
- /**
1158
- * Returns whether the end of the configuration has been reached.
1159
- */
1160
- private boolean configurationEnd()
1161
- {
1162
- return configurationEnd(false);
1163
- }
1164
-
1165
-
1166
- /**
1167
- * Returns whether the end of the configuration has been reached.
1168
- */
1169
- private boolean configurationEnd(boolean expectingAtCharacter)
1170
- {
1171
- return nextWord == null ||
1172
- nextWord.startsWith(ConfigurationConstants.OPTION_PREFIX) ||
1173
- (!expectingAtCharacter &&
1174
- nextWord.equals(ConfigurationConstants.AT_DIRECTIVE));
1175
- }
1176
-
1177
-
1178
- /**
1179
- * Checks whether the given word is a valid Java identifier and throws
1180
- * a ParseException if it isn't. Wildcard characters are accepted.
1181
- */
1182
- private void checkJavaIdentifier(String expectedDescription)
1183
- throws ParseException
1184
- {
1185
- if (!isJavaIdentifier(nextWord))
1186
- {
1187
- throw new ParseException("Expecting " + expectedDescription +
1188
- " before " + reader.locationDescription());
1189
- }
1190
- }
1191
-
1192
-
1193
- /**
1194
- * Returns whether the given word is a valid Java identifier.
1195
- * Wildcard characters are accepted.
1196
- */
1197
- private boolean isJavaIdentifier(String aWord)
1198
- {
1199
- for (int index = 0; index < aWord.length(); index++)
1200
- {
1201
- char c = aWord.charAt(index);
1202
- if (!(Character.isJavaIdentifierPart(c) ||
1203
- c == '.' ||
1204
- c == '[' ||
1205
- c == ']' ||
1206
- c == '<' ||
1207
- c == '>' ||
1208
- c == '-' ||
1209
- c == '!' ||
1210
- c == '*' ||
1211
- c == '?' ||
1212
- c == '%'))
1213
- {
1214
- return false;
1215
- }
1216
- }
1217
-
1218
- return true;
1219
- }
1220
-
1221
-
1222
- /**
1223
- * Checks whether the given access flags are valid field access flags,
1224
- * throwing a ParseException if they aren't.
1225
- */
1226
- private void checkFieldAccessFlags(int requiredSetMemberAccessFlags,
1227
- int requiredUnsetMemberAccessFlags)
1228
- throws ParseException
1229
- {
1230
- if (((requiredSetMemberAccessFlags |
1231
- requiredUnsetMemberAccessFlags) &
1232
- ~ClassConstants.VALID_INTERNAL_ACC_FIELD) != 0)
1233
- {
1234
- throw new ParseException("Invalid method access modifier for field before " +
1235
- reader.locationDescription());
1236
- }
1237
- }
1238
-
1239
-
1240
- /**
1241
- * Checks whether the given access flags are valid method access flags,
1242
- * throwing a ParseException if they aren't.
1243
- */
1244
- private void checkMethodAccessFlags(int requiredSetMemberAccessFlags,
1245
- int requiredUnsetMemberAccessFlags)
1246
- throws ParseException
1247
- {
1248
- if (((requiredSetMemberAccessFlags |
1249
- requiredUnsetMemberAccessFlags) &
1250
- ~ClassConstants.VALID_INTERNAL_ACC_METHOD) != 0)
1251
- {
1252
- throw new ParseException("Invalid field access modifier for method before " +
1253
- reader.locationDescription());
1254
- }
1255
- }
1256
-
1257
-
1258
- /**
1259
- * A main method for testing configuration parsing.
1260
- */
1261
- public static void main(String[] args)
1262
- {
1263
- try
1264
- {
1265
- ConfigurationParser parser = new ConfigurationParser(args);
1266
-
1267
- try
1268
- {
1269
- parser.parse(new Configuration());
1270
- }
1271
- catch (ParseException ex)
1272
- {
1273
- ex.printStackTrace();
1274
- }
1275
- finally
1276
- {
1277
- parser.close();
1278
- }
1279
- }
1280
- catch (IOException ex)
1281
- {
1282
- ex.printStackTrace();
1283
- }
1284
- }
1285
- }