clojure 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1378) hide show
  1. data/.document +5 -0
  2. data/.gitignore +21 -0
  3. data/LICENSE +23 -0
  4. data/README.rdoc +18 -0
  5. data/Rakefile +18 -0
  6. data/VERSION +1 -0
  7. data/bin/clj +13 -0
  8. data/epl-v10.html +261 -0
  9. data/lib/clojure/asm/AnnotationVisitor.class +0 -0
  10. data/lib/clojure/asm/AnnotationWriter.class +0 -0
  11. data/lib/clojure/asm/Attribute.class +0 -0
  12. data/lib/clojure/asm/ByteVector.class +0 -0
  13. data/lib/clojure/asm/ClassAdapter.class +0 -0
  14. data/lib/clojure/asm/ClassReader.class +0 -0
  15. data/lib/clojure/asm/ClassVisitor.class +0 -0
  16. data/lib/clojure/asm/ClassWriter.class +0 -0
  17. data/lib/clojure/asm/Edge.class +0 -0
  18. data/lib/clojure/asm/FieldVisitor.class +0 -0
  19. data/lib/clojure/asm/FieldWriter.class +0 -0
  20. data/lib/clojure/asm/Frame.class +0 -0
  21. data/lib/clojure/asm/Handler.class +0 -0
  22. data/lib/clojure/asm/Item.class +0 -0
  23. data/lib/clojure/asm/Label.class +0 -0
  24. data/lib/clojure/asm/MethodAdapter.class +0 -0
  25. data/lib/clojure/asm/MethodVisitor.class +0 -0
  26. data/lib/clojure/asm/MethodWriter.class +0 -0
  27. data/lib/clojure/asm/Opcodes.class +0 -0
  28. data/lib/clojure/asm/Type.class +0 -0
  29. data/lib/clojure/asm/commons/AdviceAdapter.class +0 -0
  30. data/lib/clojure/asm/commons/AnalyzerAdapter.class +0 -0
  31. data/lib/clojure/asm/commons/CodeSizeEvaluator.class +0 -0
  32. data/lib/clojure/asm/commons/EmptyVisitor.class +0 -0
  33. data/lib/clojure/asm/commons/GeneratorAdapter.class +0 -0
  34. data/lib/clojure/asm/commons/LocalVariablesSorter.class +0 -0
  35. data/lib/clojure/asm/commons/Method.class +0 -0
  36. data/lib/clojure/asm/commons/SerialVersionUIDAdder$Item.class +0 -0
  37. data/lib/clojure/asm/commons/SerialVersionUIDAdder.class +0 -0
  38. data/lib/clojure/asm/commons/StaticInitMerger.class +0 -0
  39. data/lib/clojure/asm/commons/TableSwitchGenerator.class +0 -0
  40. data/lib/clojure/core$_DOT__DOT___3630.class +0 -0
  41. data/lib/clojure/core$_EQ__EQ___3398.class +0 -0
  42. data/lib/clojure/core$_EQ___3291.class +0 -0
  43. data/lib/clojure/core$_GT__EQ___3390.class +0 -0
  44. data/lib/clojure/core$_GT___3382.class +0 -0
  45. data/lib/clojure/core$_LT__EQ___3374.class +0 -0
  46. data/lib/clojure/core$_LT___3366.class +0 -0
  47. data/lib/clojure/core$_PLUS___3332.class +0 -0
  48. data/lib/clojure/core$_SLASH___3350.class +0 -0
  49. data/lib/clojure/core$_STAR___3341.class +0 -0
  50. data/lib/clojure/core$__GT___3634.class +0 -0
  51. data/lib/clojure/core$___3358.class +0 -0
  52. data/lib/clojure/core$accessor__4294.class +0 -0
  53. data/lib/clojure/core$aclone__4211.class +0 -0
  54. data/lib/clojure/core$add_classpath__4707.class +0 -0
  55. data/lib/clojure/core$add_doc__5153.class +0 -0
  56. data/lib/clojure/core$add_watch__3697.class +0 -0
  57. data/lib/clojure/core$add_watcher__3703$fn__3705.class +0 -0
  58. data/lib/clojure/core$add_watcher__3703.class +0 -0
  59. data/lib/clojure/core$agent__3684.class +0 -0
  60. data/lib/clojure/core$agent_errors__3712.class +0 -0
  61. data/lib/clojure/core$aget__4217.class +0 -0
  62. data/lib/clojure/core$alength__4205.class +0 -0
  63. data/lib/clojure/core$alias__4367.class +0 -0
  64. data/lib/clojure/core$all_ns__4318.class +0 -0
  65. data/lib/clojure/core$alter__3759.class +0 -0
  66. data/lib/clojure/core$alter_meta_BANG___3750.class +0 -0
  67. data/lib/clojure/core$alter_var_root__4827.class +0 -0
  68. data/lib/clojure/core$amap__4725.class +0 -0
  69. data/lib/clojure/core$ancestors__4866$fn__4869.class +0 -0
  70. data/lib/clojure/core$ancestors__4866.class +0 -0
  71. data/lib/clojure/core$and__3308.class +0 -0
  72. data/lib/clojure/core$apply__3243.class +0 -0
  73. data/lib/clojure/core$areduce__4729.class +0 -0
  74. data/lib/clojure/core$array__4040.class +0 -0
  75. data/lib/clojure/core$array_map__4401.class +0 -0
  76. data/lib/clojure/core$aset__4224.class +0 -0
  77. data/lib/clojure/core$aset_boolean__4244.class +0 -0
  78. data/lib/clojure/core$aset_byte__4260.class +0 -0
  79. data/lib/clojure/core$aset_char__4264.class +0 -0
  80. data/lib/clojure/core$aset_double__4252.class +0 -0
  81. data/lib/clojure/core$aset_float__4248.class +0 -0
  82. data/lib/clojure/core$aset_int__4236.class +0 -0
  83. data/lib/clojure/core$aset_long__4240.class +0 -0
  84. data/lib/clojure/core$aset_short__4256.class +0 -0
  85. data/lib/clojure/core$asm_type__5683.class +0 -0
  86. data/lib/clojure/core$assert__4528.class +0 -0
  87. data/lib/clojure/core$assert_args__3659.class +0 -0
  88. data/lib/clojure/core$assoc__3148.class +0 -0
  89. data/lib/clojure/core$assoc_in__5075.class +0 -0
  90. data/lib/clojure/core$associative_QMARK___5102.class +0 -0
  91. data/lib/clojure/core$atom__3728.class +0 -0
  92. data/lib/clojure/core$await1__4014.class +0 -0
  93. data/lib/clojure/core$await__4007$count_down__4009.class +0 -0
  94. data/lib/clojure/core$await__4007.class +0 -0
  95. data/lib/clojure/core$await_for__4017$count_down__4019.class +0 -0
  96. data/lib/clojure/core$await_for__4017.class +0 -0
  97. data/lib/clojure/core$bases__4836.class +0 -0
  98. data/lib/clojure/core$bean__5303$fn__5305$fn__5307.class +0 -0
  99. data/lib/clojure/core$bean__5303$fn__5305.class +0 -0
  100. data/lib/clojure/core$bean__5303$fn__5321$thisfn__5323$fn__5324.class +0 -0
  101. data/lib/clojure/core$bean__5303$fn__5321$thisfn__5323.class +0 -0
  102. data/lib/clojure/core$bean__5303$fn__5321.class +0 -0
  103. data/lib/clojure/core$bean__5303$fn__5330.class +0 -0
  104. data/lib/clojure/core$bean__5303$fn__5333.class +0 -0
  105. data/lib/clojure/core$bean__5303$fn__5336.class +0 -0
  106. data/lib/clojure/core$bean__5303$fn__5339.class +0 -0
  107. data/lib/clojure/core$bean__5303$fn__5342.class +0 -0
  108. data/lib/clojure/core$bean__5303$fn__5346.class +0 -0
  109. data/lib/clojure/core$bean__5303$fn__5349.class +0 -0
  110. data/lib/clojure/core$bean__5303$snapshot__5315$fn__5317.class +0 -0
  111. data/lib/clojure/core$bean__5303$snapshot__5315.class +0 -0
  112. data/lib/clojure/core$bean__5303$v__5312.class +0 -0
  113. data/lib/clojure/core$bean__5303.class +0 -0
  114. data/lib/clojure/core$bigdec__4136.class +0 -0
  115. data/lib/clojure/core$bigint__4133.class +0 -0
  116. data/lib/clojure/core$binding__3672$var_ize__3674.class +0 -0
  117. data/lib/clojure/core$binding__3672.class +0 -0
  118. data/lib/clojure/core$bit_and__3509.class +0 -0
  119. data/lib/clojure/core$bit_and_not__3524.class +0 -0
  120. data/lib/clojure/core$bit_clear__3527.class +0 -0
  121. data/lib/clojure/core$bit_flip__3533.class +0 -0
  122. data/lib/clojure/core$bit_not__3503.class +0 -0
  123. data/lib/clojure/core$bit_or__3515.class +0 -0
  124. data/lib/clojure/core$bit_set__3530.class +0 -0
  125. data/lib/clojure/core$bit_shift_left__3539.class +0 -0
  126. data/lib/clojure/core$bit_shift_right__3542.class +0 -0
  127. data/lib/clojure/core$bit_test__3536.class +0 -0
  128. data/lib/clojure/core$bit_xor__3521.class +0 -0
  129. data/lib/clojure/core$boolean__4101.class +0 -0
  130. data/lib/clojure/core$bound_fn__4679$fn__4681.class +0 -0
  131. data/lib/clojure/core$bound_fn__4679.class +0 -0
  132. data/lib/clojure/core$butlast__3156.class +0 -0
  133. data/lib/clojure/core$byte__4089.class +0 -0
  134. data/lib/clojure/core$cast__3160.class +0 -0
  135. data/lib/clojure/core$char__4095.class +0 -0
  136. data/lib/clojure/core$class_QMARK___4824.class +0 -0
  137. data/lib/clojure/core$class__4043.class +0 -0
  138. data/lib/clojure/core$clear_agent_errors__3715.class +0 -0
  139. data/lib/clojure/core$clojure_version__5781.class +0 -0
  140. data/lib/clojure/core$coll_QMARK___5087.class +0 -0
  141. data/lib/clojure/core$comment__4501.class +0 -0
  142. data/lib/clojure/core$commute__3756.class +0 -0
  143. data/lib/clojure/core$comp__3775$fn__3777.class +0 -0
  144. data/lib/clojure/core$comp__3775.class +0 -0
  145. data/lib/clojure/core$comparator__3965$fn__3967.class +0 -0
  146. data/lib/clojure/core$comparator__3965.class +0 -0
  147. data/lib/clojure/core$compare__3304.class +0 -0
  148. data/lib/clojure/core$compare_and_set_BANG___3738.class +0 -0
  149. data/lib/clojure/core$compile__5065$fn__5067.class +0 -0
  150. data/lib/clojure/core$compile__5065.class +0 -0
  151. data/lib/clojure/core$complement__3551$fn__3553.class +0 -0
  152. data/lib/clojure/core$complement__3551.class +0 -0
  153. data/lib/clojure/core$concat__3255$cat__3269$fn__3270.class +0 -0
  154. data/lib/clojure/core$concat__3255$cat__3269.class +0 -0
  155. data/lib/clojure/core$concat__3255$fn__3257.class +0 -0
  156. data/lib/clojure/core$concat__3255$fn__3261.class +0 -0
  157. data/lib/clojure/core$concat__3255$fn__3265.class +0 -0
  158. data/lib/clojure/core$concat__3255.class +0 -0
  159. data/lib/clojure/core$cond__3237.class +0 -0
  160. data/lib/clojure/core$condp__5146$emit__5148.class +0 -0
  161. data/lib/clojure/core$condp__5146.class +0 -0
  162. data/lib/clojure/core$conj__3121.class +0 -0
  163. data/lib/clojure/core$cons__3107.class +0 -0
  164. data/lib/clojure/core$constantly__3560$fn__3562.class +0 -0
  165. data/lib/clojure/core$constantly__3560.class +0 -0
  166. data/lib/clojure/core$construct_proxy__5265.class +0 -0
  167. data/lib/clojure/core$contains_QMARK___3582.class +0 -0
  168. data/lib/clojure/core$count__3569.class +0 -0
  169. data/lib/clojure/core$counted_QMARK___5111.class +0 -0
  170. data/lib/clojure/core$create_ns__4312.class +0 -0
  171. data/lib/clojure/core$create_struct__4282.class +0 -0
  172. data/lib/clojure/core$ctor_sigs__5565$iter__5567__5569$fn__5570.class +0 -0
  173. data/lib/clojure/core$ctor_sigs__5565$iter__5567__5569.class +0 -0
  174. data/lib/clojure/core$ctor_sigs__5565.class +0 -0
  175. data/lib/clojure/core$cycle__3899$fn__3901.class +0 -0
  176. data/lib/clojure/core$cycle__3899.class +0 -0
  177. data/lib/clojure/core$dec__3422.class +0 -0
  178. data/lib/clojure/core$decimal_QMARK___4121.class +0 -0
  179. data/lib/clojure/core$declare__5118$fn__5120.class +0 -0
  180. data/lib/clojure/core$declare__5118.class +0 -0
  181. data/lib/clojure/core$def_aset__4233.class +0 -0
  182. data/lib/clojure/core$definline__4716.class +0 -0
  183. data/lib/clojure/core$defmacro__3190.class +0 -0
  184. data/lib/clojure/core$defmethod__3641.class +0 -0
  185. data/lib/clojure/core$defmulti__3638.class +0 -0
  186. data/lib/clojure/core$defn__3158.class +0 -0
  187. data/lib/clojure/core$defn___4565.class +0 -0
  188. data/lib/clojure/core$defonce__4973.class +0 -0
  189. data/lib/clojure/core$defstruct__4285.class +0 -0
  190. data/lib/clojure/core$delay_QMARK___3278.class +0 -0
  191. data/lib/clojure/core$delay__3275.class +0 -0
  192. data/lib/clojure/core$deref__3725.class +0 -0
  193. data/lib/clojure/core$derive__4877$tf__4880$fn__4882.class +0 -0
  194. data/lib/clojure/core$derive__4877$tf__4880.class +0 -0
  195. data/lib/clojure/core$derive__4877.class +0 -0
  196. data/lib/clojure/core$descendants__4873.class +0 -0
  197. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4421$fn__4423.class +0 -0
  198. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4421.class +0 -0
  199. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4427.class +0 -0
  200. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4430.class +0 -0
  201. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419.class +0 -0
  202. data/lib/clojure/core$destructure__4413$pb__4415$pvec__4416.class +0 -0
  203. data/lib/clojure/core$destructure__4413$pb__4415.class +0 -0
  204. data/lib/clojure/core$destructure__4413$process_entry__4436.class +0 -0
  205. data/lib/clojure/core$destructure__4413.class +0 -0
  206. data/lib/clojure/core$disj__3594.class +0 -0
  207. data/lib/clojure/core$dissoc__3589.class +0 -0
  208. data/lib/clojure/core$distinct_QMARK___4901.class +0 -0
  209. data/lib/clojure/core$distinct__4646$step__4648$fn__4649$fn__4652.class +0 -0
  210. data/lib/clojure/core$distinct__4646$step__4648$fn__4649.class +0 -0
  211. data/lib/clojure/core$distinct__4646$step__4648.class +0 -0
  212. data/lib/clojure/core$distinct__4646.class +0 -0
  213. data/lib/clojure/core$doall__4003.class +0 -0
  214. data/lib/clojure/core$doc__4590.class +0 -0
  215. data/lib/clojure/core$dorun__3998.class +0 -0
  216. data/lib/clojure/core$doseq__3993$step__3995.class +0 -0
  217. data/lib/clojure/core$doseq__3993.class +0 -0
  218. data/lib/clojure/core$dosync__4672.class +0 -0
  219. data/lib/clojure/core$dotimes__4025.class +0 -0
  220. data/lib/clojure/core$doto__4187$fn__4189.class +0 -0
  221. data/lib/clojure/core$doto__4187.class +0 -0
  222. data/lib/clojure/core$double__4077.class +0 -0
  223. data/lib/clojure/core$double_array__4742.class +0 -0
  224. data/lib/clojure/core$doubles__4790.class +0 -0
  225. data/lib/clojure/core$drop__3872$fn__3878.class +0 -0
  226. data/lib/clojure/core$drop__3872$step__3874.class +0 -0
  227. data/lib/clojure/core$drop__3872.class +0 -0
  228. data/lib/clojure/core$drop_last__3882$fn__3885.class +0 -0
  229. data/lib/clojure/core$drop_last__3882.class +0 -0
  230. data/lib/clojure/core$drop_while__3889$fn__3895.class +0 -0
  231. data/lib/clojure/core$drop_while__3889$step__3891.class +0 -0
  232. data/lib/clojure/core$drop_while__3889.class +0 -0
  233. data/lib/clojure/core$empty_QMARK___5084.class +0 -0
  234. data/lib/clojure/core$empty__4721.class +0 -0
  235. data/lib/clojure/core$ensure__3765.class +0 -0
  236. data/lib/clojure/core$enumeration_seq__4935.class +0 -0
  237. data/lib/clojure/core$escape_class_name__5576.class +0 -0
  238. data/lib/clojure/core$eval__3990.class +0 -0
  239. data/lib/clojure/core$eval__4760$fn__4762.class +0 -0
  240. data/lib/clojure/core$eval__4760.class +0 -0
  241. data/lib/clojure/core$eval__4772$fn__4774.class +0 -0
  242. data/lib/clojure/core$eval__4772.class +0 -0
  243. data/lib/clojure/core$eval__4784$fn__4786.class +0 -0
  244. data/lib/clojure/core$eval__4784.class +0 -0
  245. data/lib/clojure/core$eval__4796$fn__4798.class +0 -0
  246. data/lib/clojure/core$eval__4796.class +0 -0
  247. data/lib/clojure/core$even_QMARK___3545.class +0 -0
  248. data/lib/clojure/core$every_QMARK___3806.class +0 -0
  249. data/lib/clojure/core$false_QMARK___3202.class +0 -0
  250. data/lib/clojure/core$ffirst__3125.class +0 -0
  251. data/lib/clojure/core$file_seq__4601$fn__4603.class +0 -0
  252. data/lib/clojure/core$file_seq__4601$fn__4606.class +0 -0
  253. data/lib/clojure/core$file_seq__4601.class +0 -0
  254. data/lib/clojure/core$filter__3845$fn__3851.class +0 -0
  255. data/lib/clojure/core$filter__3845$step__3847.class +0 -0
  256. data/lib/clojure/core$filter__3845.class +0 -0
  257. data/lib/clojure/core$filter_key__4306.class +0 -0
  258. data/lib/clojure/core$find__3599.class +0 -0
  259. data/lib/clojure/core$find_doc__4571.class +0 -0
  260. data/lib/clojure/core$find_field__5583$fn__5585.class +0 -0
  261. data/lib/clojure/core$find_field__5583.class +0 -0
  262. data/lib/clojure/core$find_ns__4309.class +0 -0
  263. data/lib/clojure/core$find_var__3678.class +0 -0
  264. data/lib/clojure/core$first__3115.class +0 -0
  265. data/lib/clojure/core$float_QMARK___4124.class +0 -0
  266. data/lib/clojure/core$float__4071.class +0 -0
  267. data/lib/clojure/core$float_array__4735.class +0 -0
  268. data/lib/clojure/core$floats__4766.class +0 -0
  269. data/lib/clojure/core$flush__4156.class +0 -0
  270. data/lib/clojure/core$fn_QMARK___5099.class +0 -0
  271. data/lib/clojure/core$fn__3113.class +0 -0
  272. data/lib/clojure/core$fn__3288.class +0 -0
  273. data/lib/clojure/core$fn__3301.class +0 -0
  274. data/lib/clojure/core$fn__3329.class +0 -0
  275. data/lib/clojure/core$fn__3338.class +0 -0
  276. data/lib/clojure/core$fn__3347.class +0 -0
  277. data/lib/clojure/core$fn__3355.class +0 -0
  278. data/lib/clojure/core$fn__3363.class +0 -0
  279. data/lib/clojure/core$fn__3371.class +0 -0
  280. data/lib/clojure/core$fn__3379.class +0 -0
  281. data/lib/clojure/core$fn__3387.class +0 -0
  282. data/lib/clojure/core$fn__3395.class +0 -0
  283. data/lib/clojure/core$fn__3413.class +0 -0
  284. data/lib/clojure/core$fn__3419.class +0 -0
  285. data/lib/clojure/core$fn__3425.class +0 -0
  286. data/lib/clojure/core$fn__3431.class +0 -0
  287. data/lib/clojure/core$fn__3437.class +0 -0
  288. data/lib/clojure/core$fn__3443.class +0 -0
  289. data/lib/clojure/core$fn__3449.class +0 -0
  290. data/lib/clojure/core$fn__3455.class +0 -0
  291. data/lib/clojure/core$fn__3461.class +0 -0
  292. data/lib/clojure/core$fn__3467.class +0 -0
  293. data/lib/clojure/core$fn__3473.class +0 -0
  294. data/lib/clojure/core$fn__3479.class +0 -0
  295. data/lib/clojure/core$fn__3485.class +0 -0
  296. data/lib/clojure/core$fn__3500.class +0 -0
  297. data/lib/clojure/core$fn__3506.class +0 -0
  298. data/lib/clojure/core$fn__3512.class +0 -0
  299. data/lib/clojure/core$fn__3518.class +0 -0
  300. data/lib/clojure/core$fn__4050.class +0 -0
  301. data/lib/clojure/core$fn__4056.class +0 -0
  302. data/lib/clojure/core$fn__4062.class +0 -0
  303. data/lib/clojure/core$fn__4068.class +0 -0
  304. data/lib/clojure/core$fn__4074.class +0 -0
  305. data/lib/clojure/core$fn__4080.class +0 -0
  306. data/lib/clojure/core$fn__4086.class +0 -0
  307. data/lib/clojure/core$fn__4092.class +0 -0
  308. data/lib/clojure/core$fn__4098.class +0 -0
  309. data/lib/clojure/core$fn__4139.class +0 -0
  310. data/lib/clojure/core$fn__4142.class +0 -0
  311. data/lib/clojure/core$fn__4202.class +0 -0
  312. data/lib/clojure/core$fn__4208.class +0 -0
  313. data/lib/clojure/core$fn__4214.class +0 -0
  314. data/lib/clojure/core$fn__4221.class +0 -0
  315. data/lib/clojure/core$fn__4443$psig__4445.class +0 -0
  316. data/lib/clojure/core$fn__4443.class +0 -0
  317. data/lib/clojure/core$fn__4732.class +0 -0
  318. data/lib/clojure/core$fn__4739.class +0 -0
  319. data/lib/clojure/core$fn__4746.class +0 -0
  320. data/lib/clojure/core$fn__4753.class +0 -0
  321. data/lib/clojure/core$fn__4769.class +0 -0
  322. data/lib/clojure/core$fn__4781.class +0 -0
  323. data/lib/clojure/core$fn__4793.class +0 -0
  324. data/lib/clojure/core$fn__4805.class +0 -0
  325. data/lib/clojure/core$fn__4976.class +0 -0
  326. data/lib/clojure/core$fn__4980.class +0 -0
  327. data/lib/clojure/core$fn__4984.class +0 -0
  328. data/lib/clojure/core$fn__5379$fn__5381.class +0 -0
  329. data/lib/clojure/core$fn__5379.class +0 -0
  330. data/lib/clojure/core$fn__5385.class +0 -0
  331. data/lib/clojure/core$fn__5388.class +0 -0
  332. data/lib/clojure/core$fn__5394.class +0 -0
  333. data/lib/clojure/core$fn__5397.class +0 -0
  334. data/lib/clojure/core$fn__5400.class +0 -0
  335. data/lib/clojure/core$fn__5403.class +0 -0
  336. data/lib/clojure/core$fn__5406$fn__5408.class +0 -0
  337. data/lib/clojure/core$fn__5406.class +0 -0
  338. data/lib/clojure/core$fn__5412$fn__5414.class +0 -0
  339. data/lib/clojure/core$fn__5412.class +0 -0
  340. data/lib/clojure/core$fn__5418.class +0 -0
  341. data/lib/clojure/core$fn__5421.class +0 -0
  342. data/lib/clojure/core$fn__5427.class +0 -0
  343. data/lib/clojure/core$fn__5430.class +0 -0
  344. data/lib/clojure/core$fn__5433.class +0 -0
  345. data/lib/clojure/core$fn__5436.class +0 -0
  346. data/lib/clojure/core$fn__5439.class +0 -0
  347. data/lib/clojure/core$fn__5442.class +0 -0
  348. data/lib/clojure/core$fn__5445.class +0 -0
  349. data/lib/clojure/core$fn__5448.class +0 -0
  350. data/lib/clojure/core$fn__5453$fn__5455.class +0 -0
  351. data/lib/clojure/core$fn__5453.class +0 -0
  352. data/lib/clojure/core$fn__5459.class +0 -0
  353. data/lib/clojure/core$fn__5462.class +0 -0
  354. data/lib/clojure/core$fn__5467.class +0 -0
  355. data/lib/clojure/core$fn__5470.class +0 -0
  356. data/lib/clojure/core$fn__5479.class +0 -0
  357. data/lib/clojure/core$fn__5484$fn__5486.class +0 -0
  358. data/lib/clojure/core$fn__5484.class +0 -0
  359. data/lib/clojure/core$fn__5490.class +0 -0
  360. data/lib/clojure/core$fn__5493.class +0 -0
  361. data/lib/clojure/core$fn__5496.class +0 -0
  362. data/lib/clojure/core$fn__5500.class +0 -0
  363. data/lib/clojure/core$fn__5503.class +0 -0
  364. data/lib/clojure/core$fn__5506.class +0 -0
  365. data/lib/clojure/core$fn__5509.class +0 -0
  366. data/lib/clojure/core$fn__5512.class +0 -0
  367. data/lib/clojure/core$fn__5515.class +0 -0
  368. data/lib/clojure/core$fn__5518.class +0 -0
  369. data/lib/clojure/core$fn__5521.class +0 -0
  370. data/lib/clojure/core$fn__5524.class +0 -0
  371. data/lib/clojure/core$fn__5527.class +0 -0
  372. data/lib/clojure/core$fn__5530.class +0 -0
  373. data/lib/clojure/core$fn__5533.class +0 -0
  374. data/lib/clojure/core$fn__5536.class +0 -0
  375. data/lib/clojure/core$fn__5544.class +0 -0
  376. data/lib/clojure/core$fn__5547.class +0 -0
  377. data/lib/clojure/core$fn__5550.class +0 -0
  378. data/lib/clojure/core$fn__5774$prop__5777.class +0 -0
  379. data/lib/clojure/core$fn__5774.class +0 -0
  380. data/lib/clojure/core$fnext__3129.class +0 -0
  381. data/lib/clojure/core$for__4475$emit_bind__4489$do_mod__4495.class +0 -0
  382. data/lib/clojure/core$for__4475$emit_bind__4489.class +0 -0
  383. data/lib/clojure/core$for__4475$err__4485.class +0 -0
  384. data/lib/clojure/core$for__4475$to_groups__4477$fn__4480.class +0 -0
  385. data/lib/clojure/core$for__4475$to_groups__4477.class +0 -0
  386. data/lib/clojure/core$for__4475.class +0 -0
  387. data/lib/clojure/core$force__3281.class +0 -0
  388. data/lib/clojure/core$format__4938.class +0 -0
  389. data/lib/clojure/core$future__5722.class +0 -0
  390. data/lib/clojure/core$future_call__5702$fn__5704.class +0 -0
  391. data/lib/clojure/core$future_call__5702$fn__5707.class +0 -0
  392. data/lib/clojure/core$future_call__5702$fn__5710.class +0 -0
  393. data/lib/clojure/core$future_call__5702$fn__5713.class +0 -0
  394. data/lib/clojure/core$future_call__5702$fn__5717.class +0 -0
  395. data/lib/clojure/core$future_call__5702.class +0 -0
  396. data/lib/clojure/core$gen_class__5679.class +0 -0
  397. data/lib/clojure/core$gen_interface__5698.class +0 -0
  398. data/lib/clojure/core$generate_class__5596$arg_types__5608.class +0 -0
  399. data/lib/clojure/core$generate_class__5596$emit_forwarding_method__5642.class +0 -0
  400. data/lib/clojure/core$generate_class__5596$emit_get_var__5636.class +0 -0
  401. data/lib/clojure/core$generate_class__5596$emit_unsupported__5639.class +0 -0
  402. data/lib/clojure/core$generate_class__5596$fn__5614.class +0 -0
  403. data/lib/clojure/core$generate_class__5596$fn__5619.class +0 -0
  404. data/lib/clojure/core$generate_class__5596$fn__5624.class +0 -0
  405. data/lib/clojure/core$generate_class__5596$fn__5629$fn__5632.class +0 -0
  406. data/lib/clojure/core$generate_class__5596$fn__5629.class +0 -0
  407. data/lib/clojure/core$generate_class__5596$fn__5651.class +0 -0
  408. data/lib/clojure/core$generate_class__5596$fn__5654.class +0 -0
  409. data/lib/clojure/core$generate_class__5596$fn__5657.class +0 -0
  410. data/lib/clojure/core$generate_class__5596$fn__5664.class +0 -0
  411. data/lib/clojure/core$generate_class__5596$iname__5599.class +0 -0
  412. data/lib/clojure/core$generate_class__5596$to_types__5605.class +0 -0
  413. data/lib/clojure/core$generate_class__5596$totype__5602.class +0 -0
  414. data/lib/clojure/core$generate_class__5596$var_name__5611.class +0 -0
  415. data/lib/clojure/core$generate_class__5596.class +0 -0
  416. data/lib/clojure/core$generate_interface__5689$fn__5692.class +0 -0
  417. data/lib/clojure/core$generate_interface__5689.class +0 -0
  418. data/lib/clojure/core$generate_proxy__5188$fn__5209$fn__5212.class +0 -0
  419. data/lib/clojure/core$generate_proxy__5188$fn__5209.class +0 -0
  420. data/lib/clojure/core$generate_proxy__5188$fn__5237.class +0 -0
  421. data/lib/clojure/core$generate_proxy__5188$fn__5240.class +0 -0
  422. data/lib/clojure/core$generate_proxy__5188$fn__5247.class +0 -0
  423. data/lib/clojure/core$generate_proxy__5188$fn__5251.class +0 -0
  424. data/lib/clojure/core$generate_proxy__5188$gen_bridge__5199.class +0 -0
  425. data/lib/clojure/core$generate_proxy__5188$gen_method__5203.class +0 -0
  426. data/lib/clojure/core$generate_proxy__5188$iname__5190.class +0 -0
  427. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225$fn__5226$iter__5223__5228$fn__5229.class +0 -0
  428. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225$fn__5226$iter__5223__5228.class +0 -0
  429. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225$fn__5226.class +0 -0
  430. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225.class +0 -0
  431. data/lib/clojure/core$generate_proxy__5188$to_types__5196.class +0 -0
  432. data/lib/clojure/core$generate_proxy__5188$totype__5193.class +0 -0
  433. data/lib/clojure/core$generate_proxy__5188.class +0 -0
  434. data/lib/clojure/core$gensym__3233.class +0 -0
  435. data/lib/clojure/core$get__3585.class +0 -0
  436. data/lib/clojure/core$get_in__5071.class +0 -0
  437. data/lib/clojure/core$get_method__3653.class +0 -0
  438. data/lib/clojure/core$get_proxy_class__5259.class +0 -0
  439. data/lib/clojure/core$get_super_and_interfaces__5256.class +0 -0
  440. data/lib/clojure/core$get_validator__3747.class +0 -0
  441. data/lib/clojure/core$group_by_sig__5170$fn__5173.class +0 -0
  442. data/lib/clojure/core$group_by_sig__5170.class +0 -0
  443. data/lib/clojure/core$hash__4710.class +0 -0
  444. data/lib/clojure/core$hash_map__3173.class +0 -0
  445. data/lib/clojure/core$hash_set__3177.class +0 -0
  446. data/lib/clojure/core$identity__3566.class +0 -0
  447. data/lib/clojure/core$if_let__3663.class +0 -0
  448. data/lib/clojure/core$if_not__3284.class +0 -0
  449. data/lib/clojure/core$ifn_QMARK___5096.class +0 -0
  450. data/lib/clojure/core$import__4028.class +0 -0
  451. data/lib/clojure/core$inc__3416.class +0 -0
  452. data/lib/clojure/core$init_proxy__5268.class +0 -0
  453. data/lib/clojure/core$instance_QMARK___3135.class +0 -0
  454. data/lib/clojure/core$int__4059.class +0 -0
  455. data/lib/clojure/core$int_array__4749.class +0 -0
  456. data/lib/clojure/core$integer_QMARK___4107.class +0 -0
  457. data/lib/clojure/core$interleave__4383.class +0 -0
  458. data/lib/clojure/core$intern__5131.class +0 -0
  459. data/lib/clojure/core$interpose__4713.class +0 -0
  460. data/lib/clojure/core$into__4037.class +0 -0
  461. data/lib/clojure/core$into_array__4033.class +0 -0
  462. data/lib/clojure/core$ints__4778.class +0 -0
  463. data/lib/clojure/core$io_BANG___3771.class +0 -0
  464. data/lib/clojure/core$isa_QMARK___4843$fn__4846.class +0 -0
  465. data/lib/clojure/core$isa_QMARK___4843.class +0 -0
  466. data/lib/clojure/core$iterate__3922$fn__3924.class +0 -0
  467. data/lib/clojure/core$iterate__3922.class +0 -0
  468. data/lib/clojure/core$iterator_seq__4932.class +0 -0
  469. data/lib/clojure/core$key__3611.class +0 -0
  470. data/lib/clojure/core$keys__3605.class +0 -0
  471. data/lib/clojure/core$keyword_QMARK___3222.class +0 -0
  472. data/lib/clojure/core$keyword__3229.class +0 -0
  473. data/lib/clojure/core$last__3154.class +0 -0
  474. data/lib/clojure/core$lazy_cat__4466$fn__4468.class +0 -0
  475. data/lib/clojure/core$lazy_cat__4466.class +0 -0
  476. data/lib/clojure/core$lazy_seq__3252.class +0 -0
  477. data/lib/clojure/core$let__3109.class +0 -0
  478. data/lib/clojure/core$let__4440.class +0 -0
  479. data/lib/clojure/core$letfn__5768$fn__5770.class +0 -0
  480. data/lib/clojure/core$letfn__5768.class +0 -0
  481. data/lib/clojure/core$libspec_QMARK___4995.class +0 -0
  482. data/lib/clojure/core$line_seq__3959$fn__3961.class +0 -0
  483. data/lib/clojure/core$line_seq__3959.class +0 -0
  484. data/lib/clojure/core$list_QMARK___5090.class +0 -0
  485. data/lib/clojure/core$list_STAR___3249.class +0 -0
  486. data/lib/clojure/core$load__5058$fn__5061.class +0 -0
  487. data/lib/clojure/core$load__5058.class +0 -0
  488. data/lib/clojure/core$load_all__5019$fn__5021$fn__5023.class +0 -0
  489. data/lib/clojure/core$load_all__5019$fn__5021$fn__5026.class +0 -0
  490. data/lib/clojure/core$load_all__5019$fn__5021.class +0 -0
  491. data/lib/clojure/core$load_all__5019.class +0 -0
  492. data/lib/clojure/core$load_lib__5031.class +0 -0
  493. data/lib/clojure/core$load_libs__5043.class +0 -0
  494. data/lib/clojure/core$load_one__5010$fn__5012.class +0 -0
  495. data/lib/clojure/core$load_one__5010.class +0 -0
  496. data/lib/clojure/core$load_reader__4297.class +0 -0
  497. data/lib/clojure/core$load_string__4300.class +0 -0
  498. data/lib/clojure/core$loaded_libs__5055.class +0 -0
  499. data/lib/clojure/core$locking__3627.class +0 -0
  500. data/lib/clojure/core$long__4065.class +0 -0
  501. data/lib/clojure/core$long_array__4756.class +0 -0
  502. data/lib/clojure/core$longs__4802.class +0 -0
  503. data/lib/clojure/core$loop__3111.class +0 -0
  504. data/lib/clojure/core$loop__4450$fn__4452.class +0 -0
  505. data/lib/clojure/core$loop__4450$fn__4456.class +0 -0
  506. data/lib/clojure/core$loop__4450.class +0 -0
  507. data/lib/clojure/core$macroexpand_1__4276.class +0 -0
  508. data/lib/clojure/core$macroexpand__4279.class +0 -0
  509. data/lib/clojure/core$make_array__4268.class +0 -0
  510. data/lib/clojure/core$make_hierarchy__4830.class +0 -0
  511. data/lib/clojure/core$map_QMARK___3141.class +0 -0
  512. data/lib/clojure/core$map__3815$fn__3817.class +0 -0
  513. data/lib/clojure/core$map__3815$fn__3822.class +0 -0
  514. data/lib/clojure/core$map__3815$fn__3827.class +0 -0
  515. data/lib/clojure/core$map__3815$fn__3838.class +0 -0
  516. data/lib/clojure/core$map__3815$step__3833$fn__3834.class +0 -0
  517. data/lib/clojure/core$map__3815$step__3833.class +0 -0
  518. data/lib/clojure/core$map__3815.class +0 -0
  519. data/lib/clojure/core$mapcat__3842.class +0 -0
  520. data/lib/clojure/core$max__3403.class +0 -0
  521. data/lib/clojure/core$max_key__4628$fn__4632.class +0 -0
  522. data/lib/clojure/core$max_key__4628.class +0 -0
  523. data/lib/clojure/core$memfn__4194.class +0 -0
  524. data/lib/clojure/core$memoize__5138$fn__5140.class +0 -0
  525. data/lib/clojure/core$memoize__5138.class +0 -0
  526. data/lib/clojure/core$merge__3938$fn__3940.class +0 -0
  527. data/lib/clojure/core$merge__3938.class +0 -0
  528. data/lib/clojure/core$merge_with__3945$merge2__3950.class +0 -0
  529. data/lib/clojure/core$merge_with__3945$merge_entry__3947.class +0 -0
  530. data/lib/clojure/core$merge_with__3945.class +0 -0
  531. data/lib/clojure/core$meta__3150.class +0 -0
  532. data/lib/clojure/core$method_sig__5156.class +0 -0
  533. data/lib/clojure/core$methods__3650.class +0 -0
  534. data/lib/clojure/core$min__3408.class +0 -0
  535. data/lib/clojure/core$min_key__4638$fn__4642.class +0 -0
  536. data/lib/clojure/core$min_key__4638.class +0 -0
  537. data/lib/clojure/core$mod__4114.class +0 -0
  538. data/lib/clojure/core$most_specific__5160$fn__5162$fn__5164.class +0 -0
  539. data/lib/clojure/core$most_specific__5160$fn__5162.class +0 -0
  540. data/lib/clojure/core$most_specific__5160.class +0 -0
  541. data/lib/clojure/core$name__3620.class +0 -0
  542. data/lib/clojure/core$namespace__3623.class +0 -0
  543. data/lib/clojure/core$neg_QMARK___3482.class +0 -0
  544. data/lib/clojure/core$newline__4153.class +0 -0
  545. data/lib/clojure/core$next__3117.class +0 -0
  546. data/lib/clojure/core$nfirst__3127.class +0 -0
  547. data/lib/clojure/core$nil_QMARK___3199.class +0 -0
  548. data/lib/clojure/core$nnext__3131.class +0 -0
  549. data/lib/clojure/core$non_private_methods__5553$fn__5556.class +0 -0
  550. data/lib/clojure/core$non_private_methods__5553.class +0 -0
  551. data/lib/clojure/core$not_EQ___3296.class +0 -0
  552. data/lib/clojure/core$not__3208.class +0 -0
  553. data/lib/clojure/core$not_empty__4833.class +0 -0
  554. data/lib/clojure/core$ns__4948$fn__4958.class +0 -0
  555. data/lib/clojure/core$ns__4948$fn__4961.class +0 -0
  556. data/lib/clojure/core$ns__4948$fn__4964.class +0 -0
  557. data/lib/clojure/core$ns__4948$process_reference__4951$fn__4954.class +0 -0
  558. data/lib/clojure/core$ns__4948$process_reference__4951.class +0 -0
  559. data/lib/clojure/core$ns__4948.class +0 -0
  560. data/lib/clojure/core$ns_aliases__4370.class +0 -0
  561. data/lib/clojure/core$ns_imports__4342.class +0 -0
  562. data/lib/clojure/core$ns_interns__4360$fn__4362.class +0 -0
  563. data/lib/clojure/core$ns_interns__4360.class +0 -0
  564. data/lib/clojure/core$ns_map__4328.class +0 -0
  565. data/lib/clojure/core$ns_name__4325.class +0 -0
  566. data/lib/clojure/core$ns_publics__4334$fn__4336.class +0 -0
  567. data/lib/clojure/core$ns_publics__4334.class +0 -0
  568. data/lib/clojure/core$ns_refers__4353$fn__4355.class +0 -0
  569. data/lib/clojure/core$ns_refers__4353.class +0 -0
  570. data/lib/clojure/core$ns_resolve__4395.class +0 -0
  571. data/lib/clojure/core$ns_unalias__4373.class +0 -0
  572. data/lib/clojure/core$ns_unmap__4331.class +0 -0
  573. data/lib/clojure/core$nth__3578.class +0 -0
  574. data/lib/clojure/core$nthnext__4405.class +0 -0
  575. data/lib/clojure/core$num__4053.class +0 -0
  576. data/lib/clojure/core$number_QMARK___4104.class +0 -0
  577. data/lib/clojure/core$odd_QMARK___3548.class +0 -0
  578. data/lib/clojure/core$or__3314.class +0 -0
  579. data/lib/clojure/core$overload_name__5579.class +0 -0
  580. data/lib/clojure/core$parents__4861.class +0 -0
  581. data/lib/clojure/core$partial__3781$fn__3783.class +0 -0
  582. data/lib/clojure/core$partial__3781$fn__3787.class +0 -0
  583. data/lib/clojure/core$partial__3781$fn__3791.class +0 -0
  584. data/lib/clojure/core$partial__3781$fn__3795.class +0 -0
  585. data/lib/clojure/core$partial__3781.class +0 -0
  586. data/lib/clojure/core$partition__3982$fn__3985.class +0 -0
  587. data/lib/clojure/core$partition__3982.class +0 -0
  588. data/lib/clojure/core$pcalls__5754$fn__5756.class +0 -0
  589. data/lib/clojure/core$pcalls__5754.class +0 -0
  590. data/lib/clojure/core$peek__3572.class +0 -0
  591. data/lib/clojure/core$pmap__5727$fn__5729$fn__5731.class +0 -0
  592. data/lib/clojure/core$pmap__5727$fn__5729.class +0 -0
  593. data/lib/clojure/core$pmap__5727$fn__5749.class +0 -0
  594. data/lib/clojure/core$pmap__5727$step__5736$fn__5738.class +0 -0
  595. data/lib/clojure/core$pmap__5727$step__5736.class +0 -0
  596. data/lib/clojure/core$pmap__5727$step__5744$fn__5745.class +0 -0
  597. data/lib/clojure/core$pmap__5727$step__5744.class +0 -0
  598. data/lib/clojure/core$pmap__5727.class +0 -0
  599. data/lib/clojure/core$pop__3575.class +0 -0
  600. data/lib/clojure/core$pos_QMARK___3476.class +0 -0
  601. data/lib/clojure/core$pr__4148.class +0 -0
  602. data/lib/clojure/core$pr_on__4145.class +0 -0
  603. data/lib/clojure/core$pr_str__4512.class +0 -0
  604. data/lib/clojure/core$prefer_method__3647.class +0 -0
  605. data/lib/clojure/core$prefers__3656.class +0 -0
  606. data/lib/clojure/core$prependss__5001.class +0 -0
  607. data/lib/clojure/core$print__4162.class +0 -0
  608. data/lib/clojure/core$print_ctor__5391.class +0 -0
  609. data/lib/clojure/core$print_doc__4568.class +0 -0
  610. data/lib/clojure/core$print_map__5473$fn__5475.class +0 -0
  611. data/lib/clojure/core$print_map__5473.class +0 -0
  612. data/lib/clojure/core$print_meta__5370.class +0 -0
  613. data/lib/clojure/core$print_namespace_doc__4587.class +0 -0
  614. data/lib/clojure/core$print_sequential__5354.class +0 -0
  615. data/lib/clojure/core$print_simple__5424.class +0 -0
  616. data/lib/clojure/core$print_special_doc__4584.class +0 -0
  617. data/lib/clojure/core$print_str__4520.class +0 -0
  618. data/lib/clojure/core$printf__4941.class +0 -0
  619. data/lib/clojure/core$println__4165.class +0 -0
  620. data/lib/clojure/core$println_str__4524.class +0 -0
  621. data/lib/clojure/core$prn__4159.class +0 -0
  622. data/lib/clojure/core$prn_str__4516.class +0 -0
  623. data/lib/clojure/core$proxy__5279$fn__5282.class +0 -0
  624. data/lib/clojure/core$proxy__5279$fn__5287$fn__5291.class +0 -0
  625. data/lib/clojure/core$proxy__5279$fn__5287.class +0 -0
  626. data/lib/clojure/core$proxy__5279.class +0 -0
  627. data/lib/clojure/core$proxy_call_with_super__5297.class +0 -0
  628. data/lib/clojure/core$proxy_mappings__5274.class +0 -0
  629. data/lib/clojure/core$proxy_name__5179$fn__5181.class +0 -0
  630. data/lib/clojure/core$proxy_name__5179.class +0 -0
  631. data/lib/clojure/core$proxy_super__5300.class +0 -0
  632. data/lib/clojure/core$pvalues__5761$fn__5763.class +0 -0
  633. data/lib/clojure/core$pvalues__5761.class +0 -0
  634. data/lib/clojure/core$quot__3491.class +0 -0
  635. data/lib/clojure/core$rand__4558.class +0 -0
  636. data/lib/clojure/core$rand_int__4562.class +0 -0
  637. data/lib/clojure/core$range__3928.class +0 -0
  638. data/lib/clojure/core$ratio_QMARK___4118.class +0 -0
  639. data/lib/clojure/core$rational_QMARK___4128.class +0 -0
  640. data/lib/clojure/core$rationalize__3497.class +0 -0
  641. data/lib/clojure/core$re_find__4554.class +0 -0
  642. data/lib/clojure/core$re_groups__4540.class +0 -0
  643. data/lib/clojure/core$re_matcher__4537.class +0 -0
  644. data/lib/clojure/core$re_matches__4551.class +0 -0
  645. data/lib/clojure/core$re_pattern__4534.class +0 -0
  646. data/lib/clojure/core$re_seq__4543$step__4545$fn__4546.class +0 -0
  647. data/lib/clojure/core$re_seq__4543$step__4545.class +0 -0
  648. data/lib/clojure/core$re_seq__4543.class +0 -0
  649. data/lib/clojure/core$read__4168.class +0 -0
  650. data/lib/clojure/core$read_line__4174.class +0 -0
  651. data/lib/clojure/core$read_string__4177.class +0 -0
  652. data/lib/clojure/core$reduce__3319$fn__3322.class +0 -0
  653. data/lib/clojure/core$reduce__3319.class +0 -0
  654. data/lib/clojure/core$ref__3721.class +0 -0
  655. data/lib/clojure/core$ref_set__3762.class +0 -0
  656. data/lib/clojure/core$refer__4345.class +0 -0
  657. data/lib/clojure/core$refer_clojure__4969.class +0 -0
  658. data/lib/clojure/core$release_pending_sends__3694.class +0 -0
  659. data/lib/clojure/core$rem__3494.class +0 -0
  660. data/lib/clojure/core$remove__3855.class +0 -0
  661. data/lib/clojure/core$remove_method__3644.class +0 -0
  662. data/lib/clojure/core$remove_ns__4315.class +0 -0
  663. data/lib/clojure/core$remove_watch__3700.class +0 -0
  664. data/lib/clojure/core$remove_watcher__3709.class +0 -0
  665. data/lib/clojure/core$repeat__3912$fn__3914.class +0 -0
  666. data/lib/clojure/core$repeat__3912.class +0 -0
  667. data/lib/clojure/core$repeatedly__4701$fn__4703.class +0 -0
  668. data/lib/clojure/core$repeatedly__4701.class +0 -0
  669. data/lib/clojure/core$replace__4661$fn__4663.class +0 -0
  670. data/lib/clojure/core$replace__4661$fn__4667.class +0 -0
  671. data/lib/clojure/core$replace__4661.class +0 -0
  672. data/lib/clojure/core$replicate__3919.class +0 -0
  673. data/lib/clojure/core$require__5049.class +0 -0
  674. data/lib/clojure/core$reset_BANG___3741.class +0 -0
  675. data/lib/clojure/core$reset_meta_BANG___3753.class +0 -0
  676. data/lib/clojure/core$resolve__4398.class +0 -0
  677. data/lib/clojure/core$rest__3119.class +0 -0
  678. data/lib/clojure/core$resultset_seq__4911$fn__4913.class +0 -0
  679. data/lib/clojure/core$resultset_seq__4911$fn__4916.class +0 -0
  680. data/lib/clojure/core$resultset_seq__4911$row_values__4919$fn__4921.class +0 -0
  681. data/lib/clojure/core$resultset_seq__4911$row_values__4919.class +0 -0
  682. data/lib/clojure/core$resultset_seq__4911$thisfn__4925$fn__4926.class +0 -0
  683. data/lib/clojure/core$resultset_seq__4911$thisfn__4925.class +0 -0
  684. data/lib/clojure/core$resultset_seq__4911.class +0 -0
  685. data/lib/clojure/core$reverse__3326.class +0 -0
  686. data/lib/clojure/core$reversible_QMARK___5114.class +0 -0
  687. data/lib/clojure/core$root_directory__5007.class +0 -0
  688. data/lib/clojure/core$root_resource__5004.class +0 -0
  689. data/lib/clojure/core$rseq__3617.class +0 -0
  690. data/lib/clojure/core$rsubseq__4693.class +0 -0
  691. data/lib/clojure/core$second__3123.class +0 -0
  692. data/lib/clojure/core$select_keys__3602.class +0 -0
  693. data/lib/clojure/core$send__3688.class +0 -0
  694. data/lib/clojure/core$send_off__3691.class +0 -0
  695. data/lib/clojure/core$seq_QMARK___3137.class +0 -0
  696. data/lib/clojure/core$seq__3133.class +0 -0
  697. data/lib/clojure/core$seque__4808$drain__4818$fn__4819.class +0 -0
  698. data/lib/clojure/core$seque__4808$drain__4818.class +0 -0
  699. data/lib/clojure/core$seque__4808$fill__4811.class +0 -0
  700. data/lib/clojure/core$seque__4808.class +0 -0
  701. data/lib/clojure/core$sequence__3802.class +0 -0
  702. data/lib/clojure/core$sequential_QMARK___5105.class +0 -0
  703. data/lib/clojure/core$set_QMARK___5093.class +0 -0
  704. data/lib/clojure/core$set__4303.class +0 -0
  705. data/lib/clojure/core$set_validator_BANG___3744.class +0 -0
  706. data/lib/clojure/core$setup_reference__3681.class +0 -0
  707. data/lib/clojure/core$short__4083.class +0 -0
  708. data/lib/clojure/core$shutdown_agents__3718.class +0 -0
  709. data/lib/clojure/core$sigs__3145.class +0 -0
  710. data/lib/clojure/core$slurp__4619.class +0 -0
  711. data/lib/clojure/core$some__3810.class +0 -0
  712. data/lib/clojure/core$sort__3971.class +0 -0
  713. data/lib/clojure/core$sort_by__3975$fn__3978.class +0 -0
  714. data/lib/clojure/core$sort_by__3975.class +0 -0
  715. data/lib/clojure/core$sorted_QMARK___5108.class +0 -0
  716. data/lib/clojure/core$sorted_map__3181.class +0 -0
  717. data/lib/clojure/core$sorted_map_by__3187.class +0 -0
  718. data/lib/clojure/core$sorted_set__3184.class +0 -0
  719. data/lib/clojure/core$special_form_anchor__4578.class +0 -0
  720. data/lib/clojure/core$special_symbol_QMARK___4613.class +0 -0
  721. data/lib/clojure/core$split_at__3906.class +0 -0
  722. data/lib/clojure/core$split_with__3909.class +0 -0
  723. data/lib/clojure/core$spread__3240.class +0 -0
  724. data/lib/clojure/core$str__3211$fn__3215.class +0 -0
  725. data/lib/clojure/core$str__3211.class +0 -0
  726. data/lib/clojure/core$stream_QMARK___3799.class +0 -0
  727. data/lib/clojure/core$string_QMARK___3139.class +0 -0
  728. data/lib/clojure/core$struct__4291.class +0 -0
  729. data/lib/clojure/core$struct_map__4288.class +0 -0
  730. data/lib/clojure/core$subs__4622.class +0 -0
  731. data/lib/clojure/core$subseq__4685.class +0 -0
  732. data/lib/clojure/core$subvec__4180.class +0 -0
  733. data/lib/clojure/core$supers__4839.class +0 -0
  734. data/lib/clojure/core$swap_BANG___3732.class +0 -0
  735. data/lib/clojure/core$symbol_QMARK___3219.class +0 -0
  736. data/lib/clojure/core$symbol__3225.class +0 -0
  737. data/lib/clojure/core$sync__3768.class +0 -0
  738. data/lib/clojure/core$syntax_symbol_anchor__4581.class +0 -0
  739. data/lib/clojure/core$take__3858$fn__3860.class +0 -0
  740. data/lib/clojure/core$take__3858.class +0 -0
  741. data/lib/clojure/core$take_nth__4376$fn__4378.class +0 -0
  742. data/lib/clojure/core$take_nth__4376.class +0 -0
  743. data/lib/clojure/core$take_while__3865$fn__3867.class +0 -0
  744. data/lib/clojure/core$take_while__3865.class +0 -0
  745. data/lib/clojure/core$test__4531.class +0 -0
  746. data/lib/clojure/core$the_class__5590.class +0 -0
  747. data/lib/clojure/core$the_ns__4321.class +0 -0
  748. data/lib/clojure/core$throw_if__4989$boring_QMARK___4991.class +0 -0
  749. data/lib/clojure/core$throw_if__4989.class +0 -0
  750. data/lib/clojure/core$time__4199.class +0 -0
  751. data/lib/clojure/core$to_array_2d__4273.class +0 -0
  752. data/lib/clojure/core$to_array__3163.class +0 -0
  753. data/lib/clojure/core$trampoline__5124$fn__5127.class +0 -0
  754. data/lib/clojure/core$trampoline__5124.class +0 -0
  755. data/lib/clojure/core$tree_seq__4593$walk__4595$fn__4596.class +0 -0
  756. data/lib/clojure/core$tree_seq__4593$walk__4595.class +0 -0
  757. data/lib/clojure/core$tree_seq__4593.class +0 -0
  758. data/lib/clojure/core$true_QMARK___3205.class +0 -0
  759. data/lib/clojure/core$type__4046.class +0 -0
  760. data/lib/clojure/core$unchecked_add__3446.class +0 -0
  761. data/lib/clojure/core$unchecked_dec__3434.class +0 -0
  762. data/lib/clojure/core$unchecked_divide__3464.class +0 -0
  763. data/lib/clojure/core$unchecked_inc__3428.class +0 -0
  764. data/lib/clojure/core$unchecked_multiply__3458.class +0 -0
  765. data/lib/clojure/core$unchecked_negate__3440.class +0 -0
  766. data/lib/clojure/core$unchecked_remainder__3470.class +0 -0
  767. data/lib/clojure/core$unchecked_subtract__3452.class +0 -0
  768. data/lib/clojure/core$underive__4891$tf__4894$fn__4896.class +0 -0
  769. data/lib/clojure/core$underive__4891$tf__4894.class +0 -0
  770. data/lib/clojure/core$underive__4891.class +0 -0
  771. data/lib/clojure/core$update_in__5080.class +0 -0
  772. data/lib/clojure/core$update_proxy__5271.class +0 -0
  773. data/lib/clojure/core$use__5052.class +0 -0
  774. data/lib/clojure/core$val__3614.class +0 -0
  775. data/lib/clojure/core$vals__3608.class +0 -0
  776. data/lib/clojure/core$var_QMARK___4616.class +0 -0
  777. data/lib/clojure/core$var_get__4386.class +0 -0
  778. data/lib/clojure/core$var_set__4389.class +0 -0
  779. data/lib/clojure/core$vary_meta__3246.class +0 -0
  780. data/lib/clojure/core$vec__3170.class +0 -0
  781. data/lib/clojure/core$vector_QMARK___3143.class +0 -0
  782. data/lib/clojure/core$vector__3166.class +0 -0
  783. data/lib/clojure/core$when__3193.class +0 -0
  784. data/lib/clojure/core$when_first__4461.class +0 -0
  785. data/lib/clojure/core$when_let__3669.class +0 -0
  786. data/lib/clojure/core$when_not__3196.class +0 -0
  787. data/lib/clojure/core$while__5135.class +0 -0
  788. data/lib/clojure/core$with_in_str__4509.class +0 -0
  789. data/lib/clojure/core$with_local_vars__4392.class +0 -0
  790. data/lib/clojure/core$with_meta__3152.class +0 -0
  791. data/lib/clojure/core$with_open__4184.class +0 -0
  792. data/lib/clojure/core$with_out_str__4505.class +0 -0
  793. data/lib/clojure/core$with_precision__4675.class +0 -0
  794. data/lib/clojure/core$xml_seq__4610.class +0 -0
  795. data/lib/clojure/core$zero_QMARK___3488.class +0 -0
  796. data/lib/clojure/core$zipmap__3955.class +0 -0
  797. data/lib/clojure/core.clj +4121 -0
  798. data/lib/clojure/core__init.class +0 -0
  799. data/lib/clojure/core_print.clj +317 -0
  800. data/lib/clojure/core_print__init.class +0 -0
  801. data/lib/clojure/core_proxy.clj +394 -0
  802. data/lib/clojure/core_proxy__init.class +0 -0
  803. data/lib/clojure/genclass.clj +683 -0
  804. data/lib/clojure/genclass__init.class +0 -0
  805. data/lib/clojure/inspector$atom_QMARK___6181.class +0 -0
  806. data/lib/clojure/inspector$collection_tag__6184.class +0 -0
  807. data/lib/clojure/inspector$fn__6187.class +0 -0
  808. data/lib/clojure/inspector$fn__6190.class +0 -0
  809. data/lib/clojure/inspector$fn__6193.class +0 -0
  810. data/lib/clojure/inspector$fn__6196.class +0 -0
  811. data/lib/clojure/inspector$fn__6199.class +0 -0
  812. data/lib/clojure/inspector$fn__6202.class +0 -0
  813. data/lib/clojure/inspector$fn__6205.class +0 -0
  814. data/lib/clojure/inspector$fn__6208.class +0 -0
  815. data/lib/clojure/inspector$fn__6211.class +0 -0
  816. data/lib/clojure/inspector$fn__6278$fn__6280.class +0 -0
  817. data/lib/clojure/inspector$fn__6278$fn__6283.class +0 -0
  818. data/lib/clojure/inspector$fn__6278.class +0 -0
  819. data/lib/clojure/inspector$fn__6287$fn__6289.class +0 -0
  820. data/lib/clojure/inspector$fn__6287$fn__6292.class +0 -0
  821. data/lib/clojure/inspector$fn__6287.class +0 -0
  822. data/lib/clojure/inspector$fn__6296$fn__6299.class +0 -0
  823. data/lib/clojure/inspector$fn__6296$fn__6303.class +0 -0
  824. data/lib/clojure/inspector$fn__6296$fn__6306.class +0 -0
  825. data/lib/clojure/inspector$fn__6296.class +0 -0
  826. data/lib/clojure/inspector$fn__6324$fn__6326.class +0 -0
  827. data/lib/clojure/inspector$fn__6324$fn__6329.class +0 -0
  828. data/lib/clojure/inspector$fn__6324$fn__6332.class +0 -0
  829. data/lib/clojure/inspector$fn__6324.class +0 -0
  830. data/lib/clojure/inspector$inspect__6337.class +0 -0
  831. data/lib/clojure/inspector$inspect_table__6274.class +0 -0
  832. data/lib/clojure/inspector$inspect_tree__6270.class +0 -0
  833. data/lib/clojure/inspector$list_model__6310$fn__6313.class +0 -0
  834. data/lib/clojure/inspector$list_model__6310$fn__6316.class +0 -0
  835. data/lib/clojure/inspector$list_model__6310$fn__6319.class +0 -0
  836. data/lib/clojure/inspector$list_model__6310.class +0 -0
  837. data/lib/clojure/inspector$old_table_model__6242$fn__6244.class +0 -0
  838. data/lib/clojure/inspector$old_table_model__6242$fn__6247.class +0 -0
  839. data/lib/clojure/inspector$old_table_model__6242$fn__6250.class +0 -0
  840. data/lib/clojure/inspector$old_table_model__6242$fn__6253.class +0 -0
  841. data/lib/clojure/inspector$old_table_model__6242$fn__6256.class +0 -0
  842. data/lib/clojure/inspector$old_table_model__6242$fn__6259.class +0 -0
  843. data/lib/clojure/inspector$old_table_model__6242$fn__6262.class +0 -0
  844. data/lib/clojure/inspector$old_table_model__6242$fn__6265.class +0 -0
  845. data/lib/clojure/inspector$old_table_model__6242.class +0 -0
  846. data/lib/clojure/inspector$tree_model__6214$fn__6216.class +0 -0
  847. data/lib/clojure/inspector$tree_model__6214$fn__6219.class +0 -0
  848. data/lib/clojure/inspector$tree_model__6214$fn__6222.class +0 -0
  849. data/lib/clojure/inspector$tree_model__6214$fn__6225.class +0 -0
  850. data/lib/clojure/inspector$tree_model__6214$fn__6228.class +0 -0
  851. data/lib/clojure/inspector$tree_model__6214$fn__6231.class +0 -0
  852. data/lib/clojure/inspector$tree_model__6214$fn__6234.class +0 -0
  853. data/lib/clojure/inspector$tree_model__6214$fn__6237.class +0 -0
  854. data/lib/clojure/inspector$tree_model__6214.class +0 -0
  855. data/lib/clojure/inspector.clj +180 -0
  856. data/lib/clojure/inspector__init.class +0 -0
  857. data/lib/clojure/lang/AFn.class +0 -0
  858. data/lib/clojure/lang/AFunction.class +0 -0
  859. data/lib/clojure/lang/AMapEntry.class +0 -0
  860. data/lib/clojure/lang/APersistentMap$1.class +0 -0
  861. data/lib/clojure/lang/APersistentMap$2$1.class +0 -0
  862. data/lib/clojure/lang/APersistentMap$2.class +0 -0
  863. data/lib/clojure/lang/APersistentMap$3$1.class +0 -0
  864. data/lib/clojure/lang/APersistentMap$3.class +0 -0
  865. data/lib/clojure/lang/APersistentMap$KeySeq.class +0 -0
  866. data/lib/clojure/lang/APersistentMap$ValSeq.class +0 -0
  867. data/lib/clojure/lang/APersistentMap.class +0 -0
  868. data/lib/clojure/lang/APersistentSet.class +0 -0
  869. data/lib/clojure/lang/APersistentVector$1.class +0 -0
  870. data/lib/clojure/lang/APersistentVector$2.class +0 -0
  871. data/lib/clojure/lang/APersistentVector$RSeq.class +0 -0
  872. data/lib/clojure/lang/APersistentVector$Seq.class +0 -0
  873. data/lib/clojure/lang/APersistentVector$Src.class +0 -0
  874. data/lib/clojure/lang/APersistentVector$SubVector.class +0 -0
  875. data/lib/clojure/lang/APersistentVector.class +0 -0
  876. data/lib/clojure/lang/ARef.class +0 -0
  877. data/lib/clojure/lang/AReference.class +0 -0
  878. data/lib/clojure/lang/ASeq$Src.class +0 -0
  879. data/lib/clojure/lang/ASeq.class +0 -0
  880. data/lib/clojure/lang/Agent$Action.class +0 -0
  881. data/lib/clojure/lang/Agent.class +0 -0
  882. data/lib/clojure/lang/ArraySeq$ArraySeq_double.class +0 -0
  883. data/lib/clojure/lang/ArraySeq$ArraySeq_float.class +0 -0
  884. data/lib/clojure/lang/ArraySeq$ArraySeq_int.class +0 -0
  885. data/lib/clojure/lang/ArraySeq$ArraySeq_long.class +0 -0
  886. data/lib/clojure/lang/ArraySeq.class +0 -0
  887. data/lib/clojure/lang/ArrayStream$ArrayStream_boolean.class +0 -0
  888. data/lib/clojure/lang/ArrayStream$ArrayStream_byte.class +0 -0
  889. data/lib/clojure/lang/ArrayStream$ArrayStream_char.class +0 -0
  890. data/lib/clojure/lang/ArrayStream$ArrayStream_double.class +0 -0
  891. data/lib/clojure/lang/ArrayStream$ArrayStream_float.class +0 -0
  892. data/lib/clojure/lang/ArrayStream$ArrayStream_int.class +0 -0
  893. data/lib/clojure/lang/ArrayStream$ArrayStream_long.class +0 -0
  894. data/lib/clojure/lang/ArrayStream$ArrayStream_short.class +0 -0
  895. data/lib/clojure/lang/ArrayStream.class +0 -0
  896. data/lib/clojure/lang/Associative.class +0 -0
  897. data/lib/clojure/lang/Atom.class +0 -0
  898. data/lib/clojure/lang/Binding.class +0 -0
  899. data/lib/clojure/lang/Box.class +0 -0
  900. data/lib/clojure/lang/Compile.class +0 -0
  901. data/lib/clojure/lang/Compiler$1.class +0 -0
  902. data/lib/clojure/lang/Compiler$AssignExpr$Parser.class +0 -0
  903. data/lib/clojure/lang/Compiler$AssignExpr.class +0 -0
  904. data/lib/clojure/lang/Compiler$AssignableExpr.class +0 -0
  905. data/lib/clojure/lang/Compiler$BindingInit.class +0 -0
  906. data/lib/clojure/lang/Compiler$BodyExpr$Parser.class +0 -0
  907. data/lib/clojure/lang/Compiler$BodyExpr.class +0 -0
  908. data/lib/clojure/lang/Compiler$BooleanExpr.class +0 -0
  909. data/lib/clojure/lang/Compiler$C.class +0 -0
  910. data/lib/clojure/lang/Compiler$CompilerException.class +0 -0
  911. data/lib/clojure/lang/Compiler$ConstantExpr$Parser.class +0 -0
  912. data/lib/clojure/lang/Compiler$ConstantExpr.class +0 -0
  913. data/lib/clojure/lang/Compiler$DefExpr$Parser.class +0 -0
  914. data/lib/clojure/lang/Compiler$DefExpr.class +0 -0
  915. data/lib/clojure/lang/Compiler$EmptyExpr.class +0 -0
  916. data/lib/clojure/lang/Compiler$Expr.class +0 -0
  917. data/lib/clojure/lang/Compiler$FieldExpr.class +0 -0
  918. data/lib/clojure/lang/Compiler$FnExpr.class +0 -0
  919. data/lib/clojure/lang/Compiler$FnLoaderThunk.class +0 -0
  920. data/lib/clojure/lang/Compiler$FnMethod.class +0 -0
  921. data/lib/clojure/lang/Compiler$HostExpr$Parser.class +0 -0
  922. data/lib/clojure/lang/Compiler$HostExpr.class +0 -0
  923. data/lib/clojure/lang/Compiler$IParser.class +0 -0
  924. data/lib/clojure/lang/Compiler$IfExpr$Parser.class +0 -0
  925. data/lib/clojure/lang/Compiler$IfExpr.class +0 -0
  926. data/lib/clojure/lang/Compiler$InstanceFieldExpr.class +0 -0
  927. data/lib/clojure/lang/Compiler$InstanceMethodExpr.class +0 -0
  928. data/lib/clojure/lang/Compiler$InvokeExpr.class +0 -0
  929. data/lib/clojure/lang/Compiler$KeywordExpr.class +0 -0
  930. data/lib/clojure/lang/Compiler$LetExpr$Parser.class +0 -0
  931. data/lib/clojure/lang/Compiler$LetExpr.class +0 -0
  932. data/lib/clojure/lang/Compiler$LetFnExpr$Parser.class +0 -0
  933. data/lib/clojure/lang/Compiler$LetFnExpr.class +0 -0
  934. data/lib/clojure/lang/Compiler$ListExpr.class +0 -0
  935. data/lib/clojure/lang/Compiler$LiteralExpr.class +0 -0
  936. data/lib/clojure/lang/Compiler$LocalBinding.class +0 -0
  937. data/lib/clojure/lang/Compiler$LocalBindingExpr.class +0 -0
  938. data/lib/clojure/lang/Compiler$MapExpr.class +0 -0
  939. data/lib/clojure/lang/Compiler$MaybePrimitiveExpr.class +0 -0
  940. data/lib/clojure/lang/Compiler$MetaExpr.class +0 -0
  941. data/lib/clojure/lang/Compiler$MethodExpr.class +0 -0
  942. data/lib/clojure/lang/Compiler$MonitorEnterExpr$Parser.class +0 -0
  943. data/lib/clojure/lang/Compiler$MonitorEnterExpr.class +0 -0
  944. data/lib/clojure/lang/Compiler$MonitorExitExpr$Parser.class +0 -0
  945. data/lib/clojure/lang/Compiler$MonitorExitExpr.class +0 -0
  946. data/lib/clojure/lang/Compiler$NewExpr$Parser.class +0 -0
  947. data/lib/clojure/lang/Compiler$NewExpr.class +0 -0
  948. data/lib/clojure/lang/Compiler$NilExpr.class +0 -0
  949. data/lib/clojure/lang/Compiler$PSTATE.class +0 -0
  950. data/lib/clojure/lang/Compiler$RecurExpr$Parser.class +0 -0
  951. data/lib/clojure/lang/Compiler$RecurExpr.class +0 -0
  952. data/lib/clojure/lang/Compiler$SetExpr.class +0 -0
  953. data/lib/clojure/lang/Compiler$SourceDebugExtensionAttribute.class +0 -0
  954. data/lib/clojure/lang/Compiler$StaticFieldExpr.class +0 -0
  955. data/lib/clojure/lang/Compiler$StaticMethodExpr.class +0 -0
  956. data/lib/clojure/lang/Compiler$StringExpr.class +0 -0
  957. data/lib/clojure/lang/Compiler$TheVarExpr$Parser.class +0 -0
  958. data/lib/clojure/lang/Compiler$TheVarExpr.class +0 -0
  959. data/lib/clojure/lang/Compiler$ThrowExpr$Parser.class +0 -0
  960. data/lib/clojure/lang/Compiler$ThrowExpr.class +0 -0
  961. data/lib/clojure/lang/Compiler$TryExpr$CatchClause.class +0 -0
  962. data/lib/clojure/lang/Compiler$TryExpr$Parser.class +0 -0
  963. data/lib/clojure/lang/Compiler$TryExpr.class +0 -0
  964. data/lib/clojure/lang/Compiler$UnresolvedVarExpr.class +0 -0
  965. data/lib/clojure/lang/Compiler$UntypedExpr.class +0 -0
  966. data/lib/clojure/lang/Compiler$VarExpr.class +0 -0
  967. data/lib/clojure/lang/Compiler$VectorExpr.class +0 -0
  968. data/lib/clojure/lang/Compiler.class +0 -0
  969. data/lib/clojure/lang/Cons.class +0 -0
  970. data/lib/clojure/lang/Counted.class +0 -0
  971. data/lib/clojure/lang/Delay.class +0 -0
  972. data/lib/clojure/lang/DynamicClassLoader.class +0 -0
  973. data/lib/clojure/lang/EnumerationSeq$State.class +0 -0
  974. data/lib/clojure/lang/EnumerationSeq.class +0 -0
  975. data/lib/clojure/lang/Fn.class +0 -0
  976. data/lib/clojure/lang/IDeref.class +0 -0
  977. data/lib/clojure/lang/IFn.class +0 -0
  978. data/lib/clojure/lang/IMapEntry.class +0 -0
  979. data/lib/clojure/lang/IMeta.class +0 -0
  980. data/lib/clojure/lang/IObj.class +0 -0
  981. data/lib/clojure/lang/IPersistentCollection.class +0 -0
  982. data/lib/clojure/lang/IPersistentList.class +0 -0
  983. data/lib/clojure/lang/IPersistentMap.class +0 -0
  984. data/lib/clojure/lang/IPersistentSet.class +0 -0
  985. data/lib/clojure/lang/IPersistentStack.class +0 -0
  986. data/lib/clojure/lang/IPersistentVector.class +0 -0
  987. data/lib/clojure/lang/IProxy.class +0 -0
  988. data/lib/clojure/lang/IReduce.class +0 -0
  989. data/lib/clojure/lang/IRef.class +0 -0
  990. data/lib/clojure/lang/IReference.class +0 -0
  991. data/lib/clojure/lang/ISeq.class +0 -0
  992. data/lib/clojure/lang/IndexedSeq.class +0 -0
  993. data/lib/clojure/lang/IteratorSeq$State.class +0 -0
  994. data/lib/clojure/lang/IteratorSeq.class +0 -0
  995. data/lib/clojure/lang/IteratorStream.class +0 -0
  996. data/lib/clojure/lang/Keyword.class +0 -0
  997. data/lib/clojure/lang/LazilyPersistentVector.class +0 -0
  998. data/lib/clojure/lang/LazySeq.class +0 -0
  999. data/lib/clojure/lang/LineNumberingPushbackReader.class +0 -0
  1000. data/lib/clojure/lang/LispReader$ArgReader.class +0 -0
  1001. data/lib/clojure/lang/LispReader$CharacterReader.class +0 -0
  1002. data/lib/clojure/lang/LispReader$CommentReader.class +0 -0
  1003. data/lib/clojure/lang/LispReader$CtorReader.class +0 -0
  1004. data/lib/clojure/lang/LispReader$DiscardReader.class +0 -0
  1005. data/lib/clojure/lang/LispReader$DispatchReader.class +0 -0
  1006. data/lib/clojure/lang/LispReader$EvalReader.class +0 -0
  1007. data/lib/clojure/lang/LispReader$FnReader.class +0 -0
  1008. data/lib/clojure/lang/LispReader$ListReader.class +0 -0
  1009. data/lib/clojure/lang/LispReader$MapReader.class +0 -0
  1010. data/lib/clojure/lang/LispReader$MetaReader.class +0 -0
  1011. data/lib/clojure/lang/LispReader$ReaderException.class +0 -0
  1012. data/lib/clojure/lang/LispReader$RegexReader.class +0 -0
  1013. data/lib/clojure/lang/LispReader$SetReader.class +0 -0
  1014. data/lib/clojure/lang/LispReader$StringReader.class +0 -0
  1015. data/lib/clojure/lang/LispReader$SyntaxQuoteReader.class +0 -0
  1016. data/lib/clojure/lang/LispReader$UnmatchedDelimiterReader.class +0 -0
  1017. data/lib/clojure/lang/LispReader$UnquoteReader.class +0 -0
  1018. data/lib/clojure/lang/LispReader$UnreadableReader.class +0 -0
  1019. data/lib/clojure/lang/LispReader$VarReader.class +0 -0
  1020. data/lib/clojure/lang/LispReader$VectorReader.class +0 -0
  1021. data/lib/clojure/lang/LispReader$WrappingReader.class +0 -0
  1022. data/lib/clojure/lang/LispReader.class +0 -0
  1023. data/lib/clojure/lang/LockingTransaction$AbortException.class +0 -0
  1024. data/lib/clojure/lang/LockingTransaction$CFn.class +0 -0
  1025. data/lib/clojure/lang/LockingTransaction$Info.class +0 -0
  1026. data/lib/clojure/lang/LockingTransaction$Notify.class +0 -0
  1027. data/lib/clojure/lang/LockingTransaction$RetryEx.class +0 -0
  1028. data/lib/clojure/lang/LockingTransaction.class +0 -0
  1029. data/lib/clojure/lang/MapEntry.class +0 -0
  1030. data/lib/clojure/lang/MultiFn.class +0 -0
  1031. data/lib/clojure/lang/Named.class +0 -0
  1032. data/lib/clojure/lang/Namespace.class +0 -0
  1033. data/lib/clojure/lang/Numbers$BigDecimalOps.class +0 -0
  1034. data/lib/clojure/lang/Numbers$BigIntegerBitOps.class +0 -0
  1035. data/lib/clojure/lang/Numbers$BigIntegerOps.class +0 -0
  1036. data/lib/clojure/lang/Numbers$BitOps.class +0 -0
  1037. data/lib/clojure/lang/Numbers$DoubleOps.class +0 -0
  1038. data/lib/clojure/lang/Numbers$FloatOps.class +0 -0
  1039. data/lib/clojure/lang/Numbers$IntegerBitOps.class +0 -0
  1040. data/lib/clojure/lang/Numbers$IntegerOps.class +0 -0
  1041. data/lib/clojure/lang/Numbers$LongBitOps.class +0 -0
  1042. data/lib/clojure/lang/Numbers$LongOps.class +0 -0
  1043. data/lib/clojure/lang/Numbers$Ops.class +0 -0
  1044. data/lib/clojure/lang/Numbers$RatioOps.class +0 -0
  1045. data/lib/clojure/lang/Numbers.class +0 -0
  1046. data/lib/clojure/lang/Obj.class +0 -0
  1047. data/lib/clojure/lang/PersistentArrayMap$Iter.class +0 -0
  1048. data/lib/clojure/lang/PersistentArrayMap$Seq.class +0 -0
  1049. data/lib/clojure/lang/PersistentArrayMap.class +0 -0
  1050. data/lib/clojure/lang/PersistentHashMap$BitmapIndexedNode$Seq.class +0 -0
  1051. data/lib/clojure/lang/PersistentHashMap$BitmapIndexedNode.class +0 -0
  1052. data/lib/clojure/lang/PersistentHashMap$EmptyNode.class +0 -0
  1053. data/lib/clojure/lang/PersistentHashMap$FullNode$Seq.class +0 -0
  1054. data/lib/clojure/lang/PersistentHashMap$FullNode.class +0 -0
  1055. data/lib/clojure/lang/PersistentHashMap$HashCollisionNode.class +0 -0
  1056. data/lib/clojure/lang/PersistentHashMap$INode.class +0 -0
  1057. data/lib/clojure/lang/PersistentHashMap$LeafNode.class +0 -0
  1058. data/lib/clojure/lang/PersistentHashMap.class +0 -0
  1059. data/lib/clojure/lang/PersistentHashSet.class +0 -0
  1060. data/lib/clojure/lang/PersistentList$1.class +0 -0
  1061. data/lib/clojure/lang/PersistentList$EmptyList$1.class +0 -0
  1062. data/lib/clojure/lang/PersistentList$EmptyList.class +0 -0
  1063. data/lib/clojure/lang/PersistentList.class +0 -0
  1064. data/lib/clojure/lang/PersistentQueue$Seq.class +0 -0
  1065. data/lib/clojure/lang/PersistentQueue.class +0 -0
  1066. data/lib/clojure/lang/PersistentStructMap$1.class +0 -0
  1067. data/lib/clojure/lang/PersistentStructMap$Def.class +0 -0
  1068. data/lib/clojure/lang/PersistentStructMap$Seq.class +0 -0
  1069. data/lib/clojure/lang/PersistentStructMap.class +0 -0
  1070. data/lib/clojure/lang/PersistentTreeMap$Black.class +0 -0
  1071. data/lib/clojure/lang/PersistentTreeMap$BlackBranch.class +0 -0
  1072. data/lib/clojure/lang/PersistentTreeMap$BlackBranchVal.class +0 -0
  1073. data/lib/clojure/lang/PersistentTreeMap$BlackVal.class +0 -0
  1074. data/lib/clojure/lang/PersistentTreeMap$KeyIterator.class +0 -0
  1075. data/lib/clojure/lang/PersistentTreeMap$Node.class +0 -0
  1076. data/lib/clojure/lang/PersistentTreeMap$NodeIterator.class +0 -0
  1077. data/lib/clojure/lang/PersistentTreeMap$Red.class +0 -0
  1078. data/lib/clojure/lang/PersistentTreeMap$RedBranch.class +0 -0
  1079. data/lib/clojure/lang/PersistentTreeMap$RedBranchVal.class +0 -0
  1080. data/lib/clojure/lang/PersistentTreeMap$RedVal.class +0 -0
  1081. data/lib/clojure/lang/PersistentTreeMap$Seq.class +0 -0
  1082. data/lib/clojure/lang/PersistentTreeMap$ValIterator.class +0 -0
  1083. data/lib/clojure/lang/PersistentTreeMap.class +0 -0
  1084. data/lib/clojure/lang/PersistentTreeSet.class +0 -0
  1085. data/lib/clojure/lang/PersistentVector.class +0 -0
  1086. data/lib/clojure/lang/ProxyHandler.class +0 -0
  1087. data/lib/clojure/lang/RT$1.class +0 -0
  1088. data/lib/clojure/lang/RT$2.class +0 -0
  1089. data/lib/clojure/lang/RT$3.class +0 -0
  1090. data/lib/clojure/lang/RT$4.class +0 -0
  1091. data/lib/clojure/lang/RT$5.class +0 -0
  1092. data/lib/clojure/lang/RT$6.class +0 -0
  1093. data/lib/clojure/lang/RT.class +0 -0
  1094. data/lib/clojure/lang/Range$Src.class +0 -0
  1095. data/lib/clojure/lang/Range.class +0 -0
  1096. data/lib/clojure/lang/Ratio.class +0 -0
  1097. data/lib/clojure/lang/Ref$TVal.class +0 -0
  1098. data/lib/clojure/lang/Ref.class +0 -0
  1099. data/lib/clojure/lang/Reflector.class +0 -0
  1100. data/lib/clojure/lang/Repl.class +0 -0
  1101. data/lib/clojure/lang/RestFn.class +0 -0
  1102. data/lib/clojure/lang/Reversible.class +0 -0
  1103. data/lib/clojure/lang/Script.class +0 -0
  1104. data/lib/clojure/lang/SeqEnumeration.class +0 -0
  1105. data/lib/clojure/lang/SeqIterator.class +0 -0
  1106. data/lib/clojure/lang/Seqable.class +0 -0
  1107. data/lib/clojure/lang/Sequential.class +0 -0
  1108. data/lib/clojure/lang/Settable.class +0 -0
  1109. data/lib/clojure/lang/Sorted.class +0 -0
  1110. data/lib/clojure/lang/Stream$1.class +0 -0
  1111. data/lib/clojure/lang/Stream$2.class +0 -0
  1112. data/lib/clojure/lang/Stream.class +0 -0
  1113. data/lib/clojure/lang/Streamable.class +0 -0
  1114. data/lib/clojure/lang/StringSeq.class +0 -0
  1115. data/lib/clojure/lang/Symbol.class +0 -0
  1116. data/lib/clojure/lang/TransactionalHashMap$1.class +0 -0
  1117. data/lib/clojure/lang/TransactionalHashMap.class +0 -0
  1118. data/lib/clojure/lang/Util.class +0 -0
  1119. data/lib/clojure/lang/Var$1.class +0 -0
  1120. data/lib/clojure/lang/Var$2.class +0 -0
  1121. data/lib/clojure/lang/Var$Frame.class +0 -0
  1122. data/lib/clojure/lang/Var.class +0 -0
  1123. data/lib/clojure/lang/XMLHandler.class +0 -0
  1124. data/lib/clojure/main$eval_opt__5839.class +0 -0
  1125. data/lib/clojure/main$help_opt__5871.class +0 -0
  1126. data/lib/clojure/main$init_dispatch__5843.class +0 -0
  1127. data/lib/clojure/main$init_opt__5836.class +0 -0
  1128. data/lib/clojure/main$initialize__5846.class +0 -0
  1129. data/lib/clojure/main$legacy_repl__5878.class +0 -0
  1130. data/lib/clojure/main$legacy_script__5883.class +0 -0
  1131. data/lib/clojure/main$load_script__5833.class +0 -0
  1132. data/lib/clojure/main$main__5888.class +0 -0
  1133. data/lib/clojure/main$main_dispatch__5874.class +0 -0
  1134. data/lib/clojure/main$null_opt__5868.class +0 -0
  1135. data/lib/clojure/main$repl__5813$fn__5816.class +0 -0
  1136. data/lib/clojure/main$repl__5813$fn__5819.class +0 -0
  1137. data/lib/clojure/main$repl__5813$fn__5822.class +0 -0
  1138. data/lib/clojure/main$repl__5813$fn__5829.class +0 -0
  1139. data/lib/clojure/main$repl__5813$read_eval_print__5825.class +0 -0
  1140. data/lib/clojure/main$repl__5813.class +0 -0
  1141. data/lib/clojure/main$repl_caught__5810.class +0 -0
  1142. data/lib/clojure/main$repl_exception__5807.class +0 -0
  1143. data/lib/clojure/main$repl_opt__5853$fn__5856.class +0 -0
  1144. data/lib/clojure/main$repl_opt__5853$fn__5859.class +0 -0
  1145. data/lib/clojure/main$repl_opt__5853.class +0 -0
  1146. data/lib/clojure/main$repl_prompt__5789.class +0 -0
  1147. data/lib/clojure/main$repl_read__5799.class +0 -0
  1148. data/lib/clojure/main$root_cause__5803.class +0 -0
  1149. data/lib/clojure/main$script_opt__5864.class +0 -0
  1150. data/lib/clojure/main$skip_if_eol__5792.class +0 -0
  1151. data/lib/clojure/main$skip_whitespace__5795.class +0 -0
  1152. data/lib/clojure/main$with_bindings__5786.class +0 -0
  1153. data/lib/clojure/main.class +0 -0
  1154. data/lib/clojure/main.clj +337 -0
  1155. data/lib/clojure/main__init.class +0 -0
  1156. data/lib/clojure/parallel.clj +248 -0
  1157. data/lib/clojure/proxy/clojure/lang/APersistentMap.class +0 -0
  1158. data/lib/clojure/proxy/java/lang/Object$ContentHandler.class +0 -0
  1159. data/lib/clojure/proxy/java/lang/Object$Future$IDeref.class +0 -0
  1160. data/lib/clojure/proxy/java/lang/Object$TableModel.class +0 -0
  1161. data/lib/clojure/proxy/java/lang/Object$TreeModel.class +0 -0
  1162. data/lib/clojure/proxy/javax/swing/table/AbstractTableModel.class +0 -0
  1163. data/lib/clojure/set$bubble_max_key__5896$fn__5898.class +0 -0
  1164. data/lib/clojure/set$bubble_max_key__5896.class +0 -0
  1165. data/lib/clojure/set$difference__5920$fn__5923.class +0 -0
  1166. data/lib/clojure/set$difference__5920.class +0 -0
  1167. data/lib/clojure/set$index__5956$fn__5958.class +0 -0
  1168. data/lib/clojure/set$index__5956.class +0 -0
  1169. data/lib/clojure/set$intersection__5909$fn__5912.class +0 -0
  1170. data/lib/clojure/set$intersection__5909$fn__5916.class +0 -0
  1171. data/lib/clojure/set$intersection__5909.class +0 -0
  1172. data/lib/clojure/set$join__5974$fn__5977$fn__5979.class +0 -0
  1173. data/lib/clojure/set$join__5974$fn__5977.class +0 -0
  1174. data/lib/clojure/set$join__5974$fn__5985$fn__5987.class +0 -0
  1175. data/lib/clojure/set$join__5974$fn__5985.class +0 -0
  1176. data/lib/clojure/set$join__5974.class +0 -0
  1177. data/lib/clojure/set$map_invert__5962$fn__5965.class +0 -0
  1178. data/lib/clojure/set$map_invert__5962.class +0 -0
  1179. data/lib/clojure/set$project__5935$fn__5937.class +0 -0
  1180. data/lib/clojure/set$project__5935.class +0 -0
  1181. data/lib/clojure/set$rename__5950$fn__5952.class +0 -0
  1182. data/lib/clojure/set$rename__5950.class +0 -0
  1183. data/lib/clojure/set$rename_keys__5941$fn__5944.class +0 -0
  1184. data/lib/clojure/set$rename_keys__5941.class +0 -0
  1185. data/lib/clojure/set$select__5928$fn__5930.class +0 -0
  1186. data/lib/clojure/set$select__5928.class +0 -0
  1187. data/lib/clojure/set$union__5902.class +0 -0
  1188. data/lib/clojure/set.clj +148 -0
  1189. data/lib/clojure/set__init.class +0 -0
  1190. data/lib/clojure/version.properties +5 -0
  1191. data/lib/clojure/xml$emit__6057.class +0 -0
  1192. data/lib/clojure/xml$emit_element__6052.class +0 -0
  1193. data/lib/clojure/xml$fn__5994$fn__6007.class +0 -0
  1194. data/lib/clojure/xml$fn__5994$fn__6010.class +0 -0
  1195. data/lib/clojure/xml$fn__5994$fn__6013.class +0 -0
  1196. data/lib/clojure/xml$fn__5994$fn__6016.class +0 -0
  1197. data/lib/clojure/xml$fn__5994$fn__6019.class +0 -0
  1198. data/lib/clojure/xml$fn__5994$fn__6022.class +0 -0
  1199. data/lib/clojure/xml$fn__5994$fn__6025.class +0 -0
  1200. data/lib/clojure/xml$fn__5994$fn__6028$attrs__6030.class +0 -0
  1201. data/lib/clojure/xml$fn__5994$fn__6028.class +0 -0
  1202. data/lib/clojure/xml$fn__5994$fn__6034.class +0 -0
  1203. data/lib/clojure/xml$fn__5994$fn__6037.class +0 -0
  1204. data/lib/clojure/xml$fn__5994$fn__6040.class +0 -0
  1205. data/lib/clojure/xml$fn__5994$push_chars__6000$fn__6002.class +0 -0
  1206. data/lib/clojure/xml$fn__5994$push_chars__6000.class +0 -0
  1207. data/lib/clojure/xml$fn__5994$push_content__5996.class +0 -0
  1208. data/lib/clojure/xml$fn__5994.class +0 -0
  1209. data/lib/clojure/xml$parse__6048.class +0 -0
  1210. data/lib/clojure/xml$startparse_sax__6045.class +0 -0
  1211. data/lib/clojure/xml.clj +115 -0
  1212. data/lib/clojure/xml__init.class +0 -0
  1213. data/lib/clojure/zip$append_child__6155.class +0 -0
  1214. data/lib/clojure/zip$branch_QMARK___6085.class +0 -0
  1215. data/lib/clojure/zip$children__6088.class +0 -0
  1216. data/lib/clojure/zip$down__6103.class +0 -0
  1217. data/lib/clojure/zip$edit__6149.class +0 -0
  1218. data/lib/clojure/zip$end_QMARK___6171.class +0 -0
  1219. data/lib/clojure/zip$insert_child__6152.class +0 -0
  1220. data/lib/clojure/zip$insert_left__6137.class +0 -0
  1221. data/lib/clojure/zip$insert_right__6141.class +0 -0
  1222. data/lib/clojure/zip$left__6127.class +0 -0
  1223. data/lib/clojure/zip$leftmost__6132.class +0 -0
  1224. data/lib/clojure/zip$lefts__6097.class +0 -0
  1225. data/lib/clojure/zip$make_node__6091.class +0 -0
  1226. data/lib/clojure/zip$next__6158.class +0 -0
  1227. data/lib/clojure/zip$node__6082.class +0 -0
  1228. data/lib/clojure/zip$path__6094.class +0 -0
  1229. data/lib/clojure/zip$prev__6165.class +0 -0
  1230. data/lib/clojure/zip$remove__6174.class +0 -0
  1231. data/lib/clojure/zip$replace__6145.class +0 -0
  1232. data/lib/clojure/zip$right__6116.class +0 -0
  1233. data/lib/clojure/zip$rightmost__6122.class +0 -0
  1234. data/lib/clojure/zip$rights__6100.class +0 -0
  1235. data/lib/clojure/zip$root__6113.class +0 -0
  1236. data/lib/clojure/zip$seq_zip__6063$fn__6065.class +0 -0
  1237. data/lib/clojure/zip$seq_zip__6063.class +0 -0
  1238. data/lib/clojure/zip$up__6108.class +0 -0
  1239. data/lib/clojure/zip$vector_zip__6069$fn__6071.class +0 -0
  1240. data/lib/clojure/zip$vector_zip__6069.class +0 -0
  1241. data/lib/clojure/zip$xml_zip__6075$fn__6077.class +0 -0
  1242. data/lib/clojure/zip$xml_zip__6075.class +0 -0
  1243. data/lib/clojure/zip$zipper__6060.class +0 -0
  1244. data/lib/clojure/zip.clj +278 -0
  1245. data/lib/clojure/zip__init.class +0 -0
  1246. data/src/clj/clojure/core.clj +4121 -0
  1247. data/src/clj/clojure/core_print.clj +317 -0
  1248. data/src/clj/clojure/core_proxy.clj +394 -0
  1249. data/src/clj/clojure/genclass.clj +683 -0
  1250. data/src/clj/clojure/inspector.clj +180 -0
  1251. data/src/clj/clojure/main.clj +337 -0
  1252. data/src/clj/clojure/parallel.clj +248 -0
  1253. data/src/clj/clojure/set.clj +148 -0
  1254. data/src/clj/clojure/version.properties +5 -0
  1255. data/src/clj/clojure/xml.clj +115 -0
  1256. data/src/clj/clojure/zip.clj +278 -0
  1257. data/src/jvm/clojure/asm/AnnotationVisitor.java +97 -0
  1258. data/src/jvm/clojure/asm/AnnotationWriter.java +357 -0
  1259. data/src/jvm/clojure/asm/Attribute.java +253 -0
  1260. data/src/jvm/clojure/asm/ByteVector.java +318 -0
  1261. data/src/jvm/clojure/asm/ClassAdapter.java +115 -0
  1262. data/src/jvm/clojure/asm/ClassReader.java +2224 -0
  1263. data/src/jvm/clojure/asm/ClassVisitor.java +196 -0
  1264. data/src/jvm/clojure/asm/ClassWriter.java +1415 -0
  1265. data/src/jvm/clojure/asm/Edge.java +75 -0
  1266. data/src/jvm/clojure/asm/FieldVisitor.java +64 -0
  1267. data/src/jvm/clojure/asm/FieldWriter.java +290 -0
  1268. data/src/jvm/clojure/asm/Frame.java +1506 -0
  1269. data/src/jvm/clojure/asm/Handler.java +70 -0
  1270. data/src/jvm/clojure/asm/Item.java +258 -0
  1271. data/src/jvm/clojure/asm/Label.java +437 -0
  1272. data/src/jvm/clojure/asm/MethodAdapter.java +186 -0
  1273. data/src/jvm/clojure/asm/MethodVisitor.java +396 -0
  1274. data/src/jvm/clojure/asm/MethodWriter.java +3029 -0
  1275. data/src/jvm/clojure/asm/Opcodes.java +341 -0
  1276. data/src/jvm/clojure/asm/Type.java +872 -0
  1277. data/src/jvm/clojure/asm/commons/AdviceAdapter.java +681 -0
  1278. data/src/jvm/clojure/asm/commons/AnalyzerAdapter.java +938 -0
  1279. data/src/jvm/clojure/asm/commons/CodeSizeEvaluator.java +234 -0
  1280. data/src/jvm/clojure/asm/commons/EmptyVisitor.java +221 -0
  1281. data/src/jvm/clojure/asm/commons/GeneratorAdapter.java +1533 -0
  1282. data/src/jvm/clojure/asm/commons/LocalVariablesSorter.java +330 -0
  1283. data/src/jvm/clojure/asm/commons/Method.java +267 -0
  1284. data/src/jvm/clojure/asm/commons/SerialVersionUIDAdder.java +508 -0
  1285. data/src/jvm/clojure/asm/commons/StaticInitMerger.java +102 -0
  1286. data/src/jvm/clojure/asm/commons/TableSwitchGenerator.java +55 -0
  1287. data/src/jvm/clojure/asm/commons/package.html +48 -0
  1288. data/src/jvm/clojure/asm/package.html +87 -0
  1289. data/src/jvm/clojure/lang/AFn.java +452 -0
  1290. data/src/jvm/clojure/lang/AFunction.java +47 -0
  1291. data/src/jvm/clojure/lang/AMapEntry.java +149 -0
  1292. data/src/jvm/clojure/lang/APersistentMap.java +382 -0
  1293. data/src/jvm/clojure/lang/APersistentSet.java +159 -0
  1294. data/src/jvm/clojure/lang/APersistentVector.java +579 -0
  1295. data/src/jvm/clojure/lang/ARef.java +107 -0
  1296. data/src/jvm/clojure/lang/AReference.java +40 -0
  1297. data/src/jvm/clojure/lang/ASeq.java +282 -0
  1298. data/src/jvm/clojure/lang/Agent.java +194 -0
  1299. data/src/jvm/clojure/lang/ArraySeq.java +316 -0
  1300. data/src/jvm/clojure/lang/ArrayStream.java +184 -0
  1301. data/src/jvm/clojure/lang/Associative.java +22 -0
  1302. data/src/jvm/clojure/lang/Atom.java +104 -0
  1303. data/src/jvm/clojure/lang/Binding.java +26 -0
  1304. data/src/jvm/clojure/lang/Box.java +22 -0
  1305. data/src/jvm/clojure/lang/Compile.java +73 -0
  1306. data/src/jvm/clojure/lang/Compiler.java +5017 -0
  1307. data/src/jvm/clojure/lang/Cons.java +53 -0
  1308. data/src/jvm/clojure/lang/Counted.java +18 -0
  1309. data/src/jvm/clojure/lang/Delay.java +38 -0
  1310. data/src/jvm/clojure/lang/DynamicClassLoader.java +71 -0
  1311. data/src/jvm/clojure/lang/EnumerationSeq.java +71 -0
  1312. data/src/jvm/clojure/lang/Fn.java +16 -0
  1313. data/src/jvm/clojure/lang/IDeref.java +17 -0
  1314. data/src/jvm/clojure/lang/IFn.java +90 -0
  1315. data/src/jvm/clojure/lang/IMapEntry.java +19 -0
  1316. data/src/jvm/clojure/lang/IMeta.java +17 -0
  1317. data/src/jvm/clojure/lang/IObj.java +18 -0
  1318. data/src/jvm/clojure/lang/IPersistentCollection.java +23 -0
  1319. data/src/jvm/clojure/lang/IPersistentList.java +16 -0
  1320. data/src/jvm/clojure/lang/IPersistentMap.java +23 -0
  1321. data/src/jvm/clojure/lang/IPersistentSet.java +19 -0
  1322. data/src/jvm/clojure/lang/IPersistentStack.java +19 -0
  1323. data/src/jvm/clojure/lang/IPersistentVector.java +22 -0
  1324. data/src/jvm/clojure/lang/IProxy.java +21 -0
  1325. data/src/jvm/clojure/lang/IReduce.java +19 -0
  1326. data/src/jvm/clojure/lang/IRef.java +27 -0
  1327. data/src/jvm/clojure/lang/IReference.java +18 -0
  1328. data/src/jvm/clojure/lang/ISeq.java +29 -0
  1329. data/src/jvm/clojure/lang/IndexedSeq.java +16 -0
  1330. data/src/jvm/clojure/lang/IteratorSeq.java +69 -0
  1331. data/src/jvm/clojure/lang/IteratorStream.java +29 -0
  1332. data/src/jvm/clojure/lang/Keyword.java +199 -0
  1333. data/src/jvm/clojure/lang/LazilyPersistentVector.java +79 -0
  1334. data/src/jvm/clojure/lang/LazySeq.java +233 -0
  1335. data/src/jvm/clojure/lang/LineNumberingPushbackReader.java +75 -0
  1336. data/src/jvm/clojure/lang/LispReader.java +1063 -0
  1337. data/src/jvm/clojure/lang/LockingTransaction.java +583 -0
  1338. data/src/jvm/clojure/lang/MapEntry.java +40 -0
  1339. data/src/jvm/clojure/lang/MultiFn.java +308 -0
  1340. data/src/jvm/clojure/lang/Named.java +19 -0
  1341. data/src/jvm/clojure/lang/Namespace.java +178 -0
  1342. data/src/jvm/clojure/lang/Numbers.java +4371 -0
  1343. data/src/jvm/clojure/lang/Obj.java +33 -0
  1344. data/src/jvm/clojure/lang/PersistentArrayMap.java +263 -0
  1345. data/src/jvm/clojure/lang/PersistentHashMap.java +746 -0
  1346. data/src/jvm/clojure/lang/PersistentHashSet.java +72 -0
  1347. data/src/jvm/clojure/lang/PersistentList.java +298 -0
  1348. data/src/jvm/clojure/lang/PersistentQueue.java +304 -0
  1349. data/src/jvm/clojure/lang/PersistentStructMap.java +225 -0
  1350. data/src/jvm/clojure/lang/PersistentTreeMap.java +998 -0
  1351. data/src/jvm/clojure/lang/PersistentTreeSet.java +94 -0
  1352. data/src/jvm/clojure/lang/PersistentVector.java +320 -0
  1353. data/src/jvm/clojure/lang/ProxyHandler.java +72 -0
  1354. data/src/jvm/clojure/lang/RT.java +1676 -0
  1355. data/src/jvm/clojure/lang/Range.java +85 -0
  1356. data/src/jvm/clojure/lang/Ratio.java +74 -0
  1357. data/src/jvm/clojure/lang/Ref.java +335 -0
  1358. data/src/jvm/clojure/lang/Reflector.java +448 -0
  1359. data/src/jvm/clojure/lang/Repl.java +22 -0
  1360. data/src/jvm/clojure/lang/RestFn.java +1335 -0
  1361. data/src/jvm/clojure/lang/Reversible.java +17 -0
  1362. data/src/jvm/clojure/lang/Script.java +22 -0
  1363. data/src/jvm/clojure/lang/SeqEnumeration.java +33 -0
  1364. data/src/jvm/clojure/lang/SeqIterator.java +41 -0
  1365. data/src/jvm/clojure/lang/Seqable.java +17 -0
  1366. data/src/jvm/clojure/lang/Sequential.java +13 -0
  1367. data/src/jvm/clojure/lang/Settable.java +18 -0
  1368. data/src/jvm/clojure/lang/Sorted.java +25 -0
  1369. data/src/jvm/clojure/lang/Stream.java +88 -0
  1370. data/src/jvm/clojure/lang/Streamable.java +17 -0
  1371. data/src/jvm/clojure/lang/StringSeq.java +50 -0
  1372. data/src/jvm/clojure/lang/Symbol.java +121 -0
  1373. data/src/jvm/clojure/lang/TransactionalHashMap.java +197 -0
  1374. data/src/jvm/clojure/lang/Util.java +74 -0
  1375. data/src/jvm/clojure/lang/Var.java +472 -0
  1376. data/src/jvm/clojure/lang/XMLHandler.java +89 -0
  1377. data/src/jvm/clojure/main.java +41 -0
  1378. metadata +1433 -0
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Copyright (c) Rich Hickey. All rights reserved.
3
+ * The use and distribution terms for this software are covered by the
4
+ * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
5
+ * which can be found in the file epl-v10.html at the root of this distribution.
6
+ * By using this software in any fashion, you are agreeing to be bound by
7
+ * the terms of this license.
8
+ * You must not remove this notice, or any other, from this software.
9
+ **/
10
+
11
+ /* rich May 14, 2008 */
12
+
13
+ package clojure.lang;
14
+
15
+ import java.util.Collection;
16
+
17
+ public class LazilyPersistentVector extends APersistentVector{
18
+ final Object[] array;
19
+ PersistentVector v = null;
20
+
21
+ static public IPersistentVector createOwning(Object... items){
22
+ if(items.length == 0)
23
+ return PersistentVector.EMPTY;
24
+ return new LazilyPersistentVector(null, items, null);
25
+ }
26
+
27
+ static public IPersistentVector create(Collection coll){
28
+ return createOwning(coll.toArray());
29
+ }
30
+
31
+ LazilyPersistentVector(IPersistentMap meta, Object[] array, PersistentVector v){
32
+ super(meta);
33
+ this.array = array;
34
+ this.v = v;
35
+ }
36
+
37
+ public Object[] toArray(){
38
+ return array.clone();
39
+ }
40
+
41
+ public Object nth(int i){
42
+ return array[i];
43
+ }
44
+
45
+ public IPersistentVector assocN(int i, Object val){
46
+ return (IPersistentVector) v().assoc(i, val);
47
+ }
48
+
49
+ public int count(){
50
+ return array.length;
51
+ }
52
+
53
+ public IPersistentVector cons(Object o){
54
+ return v().cons(o);
55
+ }
56
+
57
+ public IPersistentCollection empty(){
58
+ return PersistentVector.EMPTY.withMeta(meta());
59
+ }
60
+
61
+ public IPersistentStack pop(){
62
+ return v().pop();
63
+ }
64
+
65
+ private synchronized IPersistentVector v(){
66
+ if(v == null)
67
+ {
68
+ v = PersistentVector.create(array);
69
+ }
70
+ return v;
71
+ }
72
+
73
+ public Obj withMeta(IPersistentMap meta){
74
+ if(meta != _meta)
75
+ return new LazilyPersistentVector(meta, array, v);
76
+ return this;
77
+ }
78
+
79
+ }
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Copyright (c) Rich Hickey. All rights reserved.
3
+ * The use and distribution terms for this software are covered by the
4
+ * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
5
+ * which can be found in the file epl-v10.html at the root of this distribution.
6
+ * By using this software in any fashion, you are agreeing to be bound by
7
+ * the terms of this license.
8
+ * You must not remove this notice, or any other, from this software.
9
+ **/
10
+
11
+ /* rich Jan 31, 2009 */
12
+
13
+ package clojure.lang;
14
+
15
+ import java.util.*;
16
+
17
+ public final class LazySeq extends Obj implements ISeq, List{
18
+
19
+ private IFn fn;
20
+ private ISeq s;
21
+
22
+ public LazySeq(IFn fn){
23
+ this.fn = fn;
24
+ }
25
+
26
+ private LazySeq(IPersistentMap meta, ISeq s){
27
+ super(meta);
28
+ this.fn = null;
29
+ this.s = s;
30
+ }
31
+
32
+ public Obj withMeta(IPersistentMap meta){
33
+ return new LazySeq(meta, seq());
34
+ }
35
+
36
+ final synchronized public ISeq seq(){
37
+ if(fn != null)
38
+ {
39
+ try
40
+ {
41
+ s = RT.seq(fn.invoke());
42
+ fn = null;
43
+ }
44
+ catch(Exception e)
45
+ {
46
+ throw new RuntimeException(e);
47
+ }
48
+ }
49
+ return s;
50
+ }
51
+
52
+ public int count(){
53
+ int c = 0;
54
+ for(ISeq s = seq(); s != null; s = s.next())
55
+ ++c;
56
+ return c;
57
+ }
58
+
59
+ public Object first(){
60
+ seq();
61
+ if(s == null)
62
+ return null;
63
+ return s.first();
64
+ }
65
+
66
+ public ISeq next(){
67
+ seq();
68
+ if(s == null)
69
+ return null;
70
+ return s.next();
71
+ }
72
+
73
+ public ISeq more(){
74
+ seq();
75
+ if(s == null)
76
+ return PersistentList.EMPTY;
77
+ return s.more();
78
+ }
79
+
80
+ public ISeq cons(Object o){
81
+ return RT.cons(o, seq());
82
+ }
83
+
84
+ public IPersistentCollection empty(){
85
+ return PersistentList.EMPTY;
86
+ }
87
+
88
+ public boolean equiv(Object o){
89
+ return equals(o);
90
+ }
91
+
92
+ public int hashCode(){
93
+ return Util.hash(seq());
94
+ }
95
+
96
+ public boolean equals(Object o){
97
+ ISeq s = seq();
98
+ if(s != null)
99
+ return s.equiv(o);
100
+ else
101
+ return (o instanceof Sequential || o instanceof List) && RT.seq(o) == null;
102
+ }
103
+
104
+
105
+ // java.util.Collection implementation
106
+
107
+ public Object[] toArray(){
108
+ return RT.seqToArray(seq());
109
+ }
110
+
111
+ public boolean add(Object o){
112
+ throw new UnsupportedOperationException();
113
+ }
114
+
115
+ public boolean remove(Object o){
116
+ throw new UnsupportedOperationException();
117
+ }
118
+
119
+ public boolean addAll(Collection c){
120
+ throw new UnsupportedOperationException();
121
+ }
122
+
123
+ public void clear(){
124
+ throw new UnsupportedOperationException();
125
+ }
126
+
127
+ public boolean retainAll(Collection c){
128
+ throw new UnsupportedOperationException();
129
+ }
130
+
131
+ public boolean removeAll(Collection c){
132
+ throw new UnsupportedOperationException();
133
+ }
134
+
135
+ public boolean containsAll(Collection c){
136
+ for(Object o : c)
137
+ {
138
+ if(!contains(o))
139
+ return false;
140
+ }
141
+ return true;
142
+ }
143
+
144
+ public Object[] toArray(Object[] a){
145
+ if(a.length >= count())
146
+ {
147
+ ISeq s = seq();
148
+ for(int i = 0; s != null; ++i, s = s.next())
149
+ {
150
+ a[i] = s.first();
151
+ }
152
+ if(a.length > count())
153
+ a[count()] = null;
154
+ return a;
155
+ }
156
+ else
157
+ return toArray();
158
+ }
159
+
160
+ public int size(){
161
+ return count();
162
+ }
163
+
164
+ public boolean isEmpty(){
165
+ return seq() == null;
166
+ }
167
+
168
+ public boolean contains(Object o){
169
+ for(ISeq s = seq(); s != null; s = s.next())
170
+ {
171
+ if(Util.equiv(s.first(), o))
172
+ return true;
173
+ }
174
+ return false;
175
+ }
176
+
177
+ public Iterator iterator(){
178
+ return new SeqIterator(seq());
179
+ }
180
+
181
+ //////////// List stuff /////////////////
182
+ private List reify(){
183
+ return new ArrayList(this);
184
+ }
185
+
186
+ public List subList(int fromIndex, int toIndex){
187
+ return reify().subList(fromIndex, toIndex);
188
+ }
189
+
190
+ public Object set(int index, Object element){
191
+ throw new UnsupportedOperationException();
192
+ }
193
+
194
+ public Object remove(int index){
195
+ throw new UnsupportedOperationException();
196
+ }
197
+
198
+ public int indexOf(Object o){
199
+ ISeq s = seq();
200
+ for(int i = 0; s != null; s = s.next(), i++)
201
+ {
202
+ if(Util.equiv(s.first(), o))
203
+ return i;
204
+ }
205
+ return -1;
206
+ }
207
+
208
+ public int lastIndexOf(Object o){
209
+ return reify().lastIndexOf(o);
210
+ }
211
+
212
+ public ListIterator listIterator(){
213
+ return reify().listIterator();
214
+ }
215
+
216
+ public ListIterator listIterator(int index){
217
+ return reify().listIterator(index);
218
+ }
219
+
220
+ public Object get(int index){
221
+ return RT.nth(this, index);
222
+ }
223
+
224
+ public void add(int index, Object element){
225
+ throw new UnsupportedOperationException();
226
+ }
227
+
228
+ public boolean addAll(int index, Collection c){
229
+ throw new UnsupportedOperationException();
230
+ }
231
+
232
+
233
+ }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Copyright (c) Rich Hickey. All rights reserved.
3
+ * The use and distribution terms for this software are covered by the
4
+ * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
5
+ * which can be found in the file epl-v10.html at the root of this distribution.
6
+ * By using this software in any fashion, you are agreeing to be bound by
7
+ * the terms of this license.
8
+ * You must not remove this notice, or any other, from this software.
9
+ */
10
+
11
+ package clojure.lang;
12
+
13
+ import java.io.PushbackReader;
14
+ import java.io.Reader;
15
+ import java.io.LineNumberReader;
16
+ import java.io.IOException;
17
+
18
+
19
+ public class LineNumberingPushbackReader extends PushbackReader{
20
+
21
+ // This class is a PushbackReader that wraps a LineNumberReader. The code
22
+ // here to handle line terminators only mentions '\n' because
23
+ // LineNumberReader collapses all occurrences of CR, LF, and CRLF into a
24
+ // single '\n'.
25
+
26
+ private static final int newline = (int) '\n';
27
+
28
+ private boolean _atLineStart = true;
29
+ private boolean _prev;
30
+
31
+ public LineNumberingPushbackReader(Reader r){
32
+ super(new LineNumberReader(r));
33
+ }
34
+
35
+ public int getLineNumber(){
36
+ return ((LineNumberReader) in).getLineNumber() + 1;
37
+ }
38
+
39
+ public int read() throws IOException{
40
+ int c = super.read();
41
+ _prev = _atLineStart;
42
+ _atLineStart = (c == newline) || (c == -1);
43
+ return c;
44
+ }
45
+
46
+ public void unread(int c) throws IOException{
47
+ super.unread(c);
48
+ _atLineStart = _prev;
49
+ }
50
+
51
+ public String readLine() throws IOException{
52
+ int c = read();
53
+ String line;
54
+ switch (c) {
55
+ case -1:
56
+ line = null;
57
+ break;
58
+ case newline:
59
+ line = "";
60
+ break;
61
+ default:
62
+ String first = String.valueOf((char) c);
63
+ String rest = ((LineNumberReader)in).readLine();
64
+ line = (rest == null) ? first : first + rest;
65
+ _prev = false;
66
+ _atLineStart = true;
67
+ break;
68
+ }
69
+ return line;
70
+ }
71
+
72
+ public boolean atLineStart(){
73
+ return _atLineStart;
74
+ }
75
+ }
@@ -0,0 +1,1063 @@
1
+ /**
2
+ * Copyright (c) Rich Hickey. All rights reserved.
3
+ * The use and distribution terms for this software are covered by the
4
+ * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
5
+ * which can be found in the file epl-v10.html at the root of this distribution.
6
+ * By using this software in any fashion, you are agreeing to be bound by
7
+ * the terms of this license.
8
+ * You must not remove this notice, or any other, from this software.
9
+ **/
10
+
11
+ package clojure.lang;
12
+
13
+ import java.io.*;
14
+ import java.util.regex.Pattern;
15
+ import java.util.regex.Matcher;
16
+ import java.util.ArrayList;
17
+ import java.util.List;
18
+ import java.util.Map;
19
+ import java.math.BigInteger;
20
+ import java.math.BigDecimal;
21
+ import java.lang.*;
22
+
23
+ public class LispReader{
24
+
25
+ static final Symbol QUOTE = Symbol.create("quote");
26
+ static final Symbol THE_VAR = Symbol.create("var");
27
+ //static Symbol SYNTAX_QUOTE = Symbol.create(null, "syntax-quote");
28
+ static Symbol UNQUOTE = Symbol.create("clojure.core", "unquote");
29
+ static Symbol UNQUOTE_SPLICING = Symbol.create("clojure.core", "unquote-splicing");
30
+ static Symbol CONCAT = Symbol.create("clojure.core", "concat");
31
+ static Symbol SEQ = Symbol.create("clojure.core", "seq");
32
+ static Symbol LIST = Symbol.create("clojure.core", "list");
33
+ static Symbol APPLY = Symbol.create("clojure.core", "apply");
34
+ static Symbol HASHMAP = Symbol.create("clojure.core", "hash-map");
35
+ static Symbol HASHSET = Symbol.create("clojure.core", "hash-set");
36
+ static Symbol VECTOR = Symbol.create("clojure.core", "vector");
37
+ static Symbol WITH_META = Symbol.create("clojure.core", "with-meta");
38
+ static Symbol META = Symbol.create("clojure.core", "meta");
39
+ static Symbol DEREF = Symbol.create("clojure.core", "deref");
40
+ //static Symbol DEREF_BANG = Symbol.create("clojure.core", "deref!");
41
+
42
+ static IFn[] macros = new IFn[256];
43
+ static IFn[] dispatchMacros = new IFn[256];
44
+ //static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^:/]][^:/]*/)?[\\D&&[^:/]][^:/]*");
45
+ static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?([\\D&&[^/]][^/]*)");
46
+ //static Pattern varPat = Pattern.compile("([\\D&&[^:\\.]][^:\\.]*):([\\D&&[^:\\.]][^:\\.]*)");
47
+ //static Pattern intPat = Pattern.compile("[-+]?[0-9]+\\.?");
48
+ static Pattern intPat =
49
+ Pattern.compile(
50
+ "([-+]?)(?:(0)|([1-9][0-9]*)|0[xX]([0-9A-Fa-f]+)|0([0-7]+)|([1-9][0-9]?)[rR]([0-9A-Za-z]+)|0[0-9]+)\\.?");
51
+ static Pattern ratioPat = Pattern.compile("([-+]?[0-9]+)/([0-9]+)");
52
+ static Pattern floatPat = Pattern.compile("[-+]?[0-9]+(\\.[0-9]+)?([eE][-+]?[0-9]+)?[M]?");
53
+ static final Symbol SLASH = Symbol.create("/");
54
+ static final Symbol CLOJURE_SLASH = Symbol.create("clojure.core","/");
55
+ //static Pattern accessorPat = Pattern.compile("\\.[a-zA-Z_]\\w*");
56
+ //static Pattern instanceMemberPat = Pattern.compile("\\.([a-zA-Z_][\\w\\.]*)\\.([a-zA-Z_]\\w*)");
57
+ //static Pattern staticMemberPat = Pattern.compile("([a-zA-Z_][\\w\\.]*)\\.([a-zA-Z_]\\w*)");
58
+ //static Pattern classNamePat = Pattern.compile("([a-zA-Z_][\\w\\.]*)\\.");
59
+
60
+ //symbol->gensymbol
61
+ static Var GENSYM_ENV = Var.create(null);
62
+ //sorted-map num->gensymbol
63
+ static Var ARG_ENV = Var.create(null);
64
+
65
+ static
66
+ {
67
+ macros['"'] = new StringReader();
68
+ macros[';'] = new CommentReader();
69
+ macros['\''] = new WrappingReader(QUOTE);
70
+ macros['@'] = new WrappingReader(DEREF);//new DerefReader();
71
+ macros['^'] = new WrappingReader(META);
72
+ macros['`'] = new SyntaxQuoteReader();
73
+ macros['~'] = new UnquoteReader();
74
+ macros['('] = new ListReader();
75
+ macros[')'] = new UnmatchedDelimiterReader();
76
+ macros['['] = new VectorReader();
77
+ macros[']'] = new UnmatchedDelimiterReader();
78
+ macros['{'] = new MapReader();
79
+ macros['}'] = new UnmatchedDelimiterReader();
80
+ // macros['|'] = new ArgVectorReader();
81
+ macros['\\'] = new CharacterReader();
82
+ macros['%'] = new ArgReader();
83
+ macros['#'] = new DispatchReader();
84
+
85
+
86
+ dispatchMacros['^'] = new MetaReader();
87
+ dispatchMacros['\''] = new VarReader();
88
+ dispatchMacros['"'] = new RegexReader();
89
+ dispatchMacros['('] = new FnReader();
90
+ dispatchMacros['{'] = new SetReader();
91
+ dispatchMacros['='] = new EvalReader();
92
+ dispatchMacros['!'] = new CommentReader();
93
+ dispatchMacros['<'] = new UnreadableReader();
94
+ dispatchMacros['_'] = new DiscardReader();
95
+ }
96
+
97
+ static boolean isWhitespace(int ch){
98
+ return Character.isWhitespace(ch) || ch == ',';
99
+ }
100
+
101
+ static void unread(PushbackReader r, int ch) throws IOException{
102
+ if(ch != -1)
103
+ r.unread(ch);
104
+ }
105
+
106
+ public static class ReaderException extends Exception{
107
+ final int line;
108
+
109
+ public ReaderException(int line, Throwable cause){
110
+ super(cause);
111
+ this.line = line;
112
+ }
113
+ }
114
+
115
+ static public Object read(PushbackReader r, boolean eofIsError, Object eofValue, boolean isRecursive)
116
+ throws Exception{
117
+
118
+ try
119
+ {
120
+ for(; ;)
121
+ {
122
+ int ch = r.read();
123
+
124
+ while(isWhitespace(ch))
125
+ ch = r.read();
126
+
127
+ if(ch == -1)
128
+ {
129
+ if(eofIsError)
130
+ throw new Exception("EOF while reading");
131
+ return eofValue;
132
+ }
133
+
134
+ if(Character.isDigit(ch))
135
+ {
136
+ Object n = readNumber(r, (char) ch);
137
+ if(RT.suppressRead())
138
+ return null;
139
+ return n;
140
+ }
141
+
142
+ IFn macroFn = getMacro(ch);
143
+ if(macroFn != null)
144
+ {
145
+ Object ret = macroFn.invoke(r, (char) ch);
146
+ if(RT.suppressRead())
147
+ return null;
148
+ //no op macros return the reader
149
+ if(ret == r)
150
+ continue;
151
+ return ret;
152
+ }
153
+
154
+ if(ch == '+' || ch == '-')
155
+ {
156
+ int ch2 = r.read();
157
+ if(Character.isDigit(ch2))
158
+ {
159
+ unread(r, ch2);
160
+ Object n = readNumber(r, (char) ch);
161
+ if(RT.suppressRead())
162
+ return null;
163
+ return n;
164
+ }
165
+ unread(r, ch2);
166
+ }
167
+
168
+ String token = readToken(r, (char) ch);
169
+ if(RT.suppressRead())
170
+ return null;
171
+ return interpretToken(token);
172
+ }
173
+ }
174
+ catch(Exception e)
175
+ {
176
+ if(isRecursive || !(r instanceof LineNumberingPushbackReader))
177
+ throw e;
178
+ LineNumberingPushbackReader rdr = (LineNumberingPushbackReader) r;
179
+ //throw new Exception(String.format("ReaderError:(%d,1) %s", rdr.getLineNumber(), e.getMessage()), e);
180
+ throw new ReaderException(rdr.getLineNumber(), e);
181
+ }
182
+ }
183
+
184
+ static private String readToken(PushbackReader r, char initch) throws Exception{
185
+ StringBuilder sb = new StringBuilder();
186
+ sb.append(initch);
187
+
188
+ for(; ;)
189
+ {
190
+ int ch = r.read();
191
+ if(ch == -1 || isWhitespace(ch) || isTerminatingMacro(ch))
192
+ {
193
+ unread(r, ch);
194
+ return sb.toString();
195
+ }
196
+ sb.append((char) ch);
197
+ }
198
+ }
199
+
200
+ static private Object readNumber(PushbackReader r, char initch) throws Exception{
201
+ StringBuilder sb = new StringBuilder();
202
+ sb.append(initch);
203
+
204
+ for(; ;)
205
+ {
206
+ int ch = r.read();
207
+ if(ch == -1 || isWhitespace(ch) || isMacro(ch))
208
+ {
209
+ unread(r, ch);
210
+ break;
211
+ }
212
+ sb.append((char) ch);
213
+ }
214
+
215
+ String s = sb.toString();
216
+ Object n = matchNumber(s);
217
+ if(n == null)
218
+ throw new NumberFormatException("Invalid number: " + s);
219
+ return n;
220
+ }
221
+
222
+ static private int readUnicodeChar(String token, int offset, int length, int base) throws Exception{
223
+ if(token.length() != offset + length)
224
+ throw new IllegalArgumentException("Invalid unicode character: \\" + token);
225
+ int uc = 0;
226
+ for(int i = offset; i < offset + length; ++i)
227
+ {
228
+ int d = Character.digit(token.charAt(i), base);
229
+ if(d == -1)
230
+ throw new IllegalArgumentException("Invalid digit: " + (char) d);
231
+ uc = uc * base + d;
232
+ }
233
+ return (char) uc;
234
+ }
235
+
236
+ static private int readUnicodeChar(PushbackReader r, int initch, int base, int length, boolean exact) throws Exception{
237
+ int uc = Character.digit(initch, base);
238
+ if(uc == -1)
239
+ throw new IllegalArgumentException("Invalid digit: " + initch);
240
+ int i = 1;
241
+ for(; i < length; ++i)
242
+ {
243
+ int ch = r.read();
244
+ if(ch == -1 || isWhitespace(ch) || isMacro(ch))
245
+ {
246
+ unread(r, ch);
247
+ break;
248
+ }
249
+ int d = Character.digit(ch, base);
250
+ if(d == -1)
251
+ throw new IllegalArgumentException("Invalid digit: " + (char) ch);
252
+ uc = uc * base + d;
253
+ }
254
+ if(i != length && exact)
255
+ throw new IllegalArgumentException("Invalid character length: " + i + ", should be: " + length);
256
+ return uc;
257
+ }
258
+
259
+ static private Object interpretToken(String s) throws Exception{
260
+ if(s.equals("nil"))
261
+ {
262
+ return null;
263
+ }
264
+ else if(s.equals("true"))
265
+ {
266
+ return RT.T;
267
+ }
268
+ else if(s.equals("false"))
269
+ {
270
+ return RT.F;
271
+ }
272
+ else if(s.equals("/"))
273
+ {
274
+ return SLASH;
275
+ }
276
+ else if(s.equals("clojure.core//"))
277
+ {
278
+ return CLOJURE_SLASH;
279
+ }
280
+ Object ret = null;
281
+
282
+ ret = matchSymbol(s);
283
+ if(ret != null)
284
+ return ret;
285
+
286
+ throw new Exception("Invalid token: " + s);
287
+ }
288
+
289
+
290
+ private static Object matchSymbol(String s){
291
+ Matcher m = symbolPat.matcher(s);
292
+ if(m.matches())
293
+ {
294
+ int gc = m.groupCount();
295
+ String ns = m.group(1);
296
+ String name = m.group(2);
297
+ if(ns != null && ns.endsWith(":/")
298
+ || name.endsWith(":")
299
+ || s.indexOf("::", 1) != -1)
300
+ return null;
301
+ if(s.startsWith("::"))
302
+ {
303
+ Symbol ks = Symbol.intern(s.substring(2));
304
+ Namespace kns;
305
+ if(ks.ns != null)
306
+ kns = Compiler.namespaceFor(ks);
307
+ else
308
+ kns = Compiler.currentNS();
309
+ //auto-resolving keyword
310
+ return Keyword.intern(kns.name.name,ks.name);
311
+ }
312
+ boolean isKeyword = s.charAt(0) == ':';
313
+ Symbol sym = Symbol.intern(s.substring(isKeyword ? 1 : 0));
314
+ if(isKeyword)
315
+ return Keyword.intern(sym);
316
+ return sym;
317
+ }
318
+ return null;
319
+ }
320
+
321
+
322
+ private static Object matchNumber(String s){
323
+ Matcher m = intPat.matcher(s);
324
+ if(m.matches())
325
+ {
326
+ if(m.group(2) != null)
327
+ return 0;
328
+ boolean negate = (m.group(1).equals("-"));
329
+ String n;
330
+ int radix = 10;
331
+ if((n = m.group(3)) != null)
332
+ radix = 10;
333
+ else if((n = m.group(4)) != null)
334
+ radix = 16;
335
+ else if((n = m.group(5)) != null)
336
+ radix = 8;
337
+ else if((n = m.group(7)) != null)
338
+ radix = Integer.parseInt(m.group(6));
339
+ if(n == null)
340
+ return null;
341
+ BigInteger bn = new BigInteger(n, radix);
342
+ return Numbers.reduce(negate ? bn.negate() : bn);
343
+ }
344
+ m = floatPat.matcher(s);
345
+ if(m.matches())
346
+ {
347
+ if(s.charAt(s.length() - 1) == 'M')
348
+ return new BigDecimal(s.substring(0, s.length() - 1));
349
+ return Double.parseDouble(s);
350
+ }
351
+ m = ratioPat.matcher(s);
352
+ if(m.matches())
353
+ {
354
+ return Numbers.divide(new BigInteger(m.group(1)), new BigInteger(m.group(2)));
355
+ }
356
+ return null;
357
+ }
358
+
359
+ static private IFn getMacro(int ch){
360
+ if(ch < macros.length)
361
+ return macros[ch];
362
+ return null;
363
+ }
364
+
365
+ static private boolean isMacro(int ch){
366
+ return (ch < macros.length && macros[ch] != null);
367
+ }
368
+
369
+ static private boolean isTerminatingMacro(int ch){
370
+ return (ch != '#' && ch < macros.length && macros[ch] != null);
371
+ }
372
+
373
+ public static class RegexReader extends AFn{
374
+ static StringReader stringrdr = new StringReader();
375
+
376
+ public Object invoke(Object reader, Object doublequote) throws Exception{
377
+ StringBuilder sb = new StringBuilder();
378
+ Reader r = (Reader) reader;
379
+ for(int ch = r.read(); ch != '"'; ch = r.read())
380
+ {
381
+ if(ch == -1)
382
+ throw new Exception("EOF while reading regex");
383
+ sb.append( (char) ch );
384
+ if(ch == '\\') //escape
385
+ {
386
+ ch = r.read();
387
+ if(ch == -1)
388
+ throw new Exception("EOF while reading regex");
389
+ sb.append( (char) ch ) ;
390
+ }
391
+ }
392
+ return Pattern.compile(sb.toString());
393
+ }
394
+ }
395
+
396
+ public static class StringReader extends AFn{
397
+ public Object invoke(Object reader, Object doublequote) throws Exception{
398
+ StringBuilder sb = new StringBuilder();
399
+ Reader r = (Reader) reader;
400
+
401
+ for(int ch = r.read(); ch != '"'; ch = r.read())
402
+ {
403
+ if(ch == -1)
404
+ throw new Exception("EOF while reading string");
405
+ if(ch == '\\') //escape
406
+ {
407
+ ch = r.read();
408
+ if(ch == -1)
409
+ throw new Exception("EOF while reading string");
410
+ switch(ch)
411
+ {
412
+ case 't':
413
+ ch = '\t';
414
+ break;
415
+ case 'r':
416
+ ch = '\r';
417
+ break;
418
+ case 'n':
419
+ ch = '\n';
420
+ break;
421
+ case '\\':
422
+ break;
423
+ case '"':
424
+ break;
425
+ case 'b':
426
+ ch = '\b';
427
+ break;
428
+ case 'f':
429
+ ch = '\f';
430
+ break;
431
+ case 'u':
432
+ {
433
+ ch = r.read();
434
+ if (Character.digit(ch, 16) == -1)
435
+ throw new Exception("Invalid unicode escape: \\u" + (char) ch);
436
+ ch = readUnicodeChar((PushbackReader) r, ch, 16, 4, true);
437
+ break;
438
+ }
439
+ default:
440
+ {
441
+ if(Character.isDigit(ch))
442
+ {
443
+ ch = readUnicodeChar((PushbackReader) r, ch, 8, 3, false);
444
+ if(ch > 0377)
445
+ throw new Exception("Octal escape sequence must be in range [0, 377].");
446
+ }
447
+ else
448
+ throw new Exception("Unsupported escape character: \\" + (char) ch);
449
+ }
450
+ }
451
+ }
452
+ sb.append((char) ch);
453
+ }
454
+ return sb.toString();
455
+ }
456
+ }
457
+
458
+ public static class CommentReader extends AFn{
459
+ public Object invoke(Object reader, Object semicolon) throws Exception{
460
+ Reader r = (Reader) reader;
461
+ int ch;
462
+ do
463
+ {
464
+ ch = r.read();
465
+ } while(ch != -1 && ch != '\n' && ch != '\r');
466
+ return r;
467
+ }
468
+
469
+ }
470
+
471
+ public static class DiscardReader extends AFn{
472
+ public Object invoke(Object reader, Object underscore) throws Exception{
473
+ PushbackReader r = (PushbackReader) reader;
474
+ read(r, true, null, true);
475
+ return r;
476
+ }
477
+ }
478
+
479
+ public static class WrappingReader extends AFn{
480
+ final Symbol sym;
481
+
482
+ public WrappingReader(Symbol sym){
483
+ this.sym = sym;
484
+ }
485
+
486
+ public Object invoke(Object reader, Object quote) throws Exception{
487
+ PushbackReader r = (PushbackReader) reader;
488
+ Object o = read(r, true, null, true);
489
+ return RT.list(sym, o);
490
+ }
491
+
492
+ }
493
+
494
+ public static class VarReader extends AFn{
495
+ public Object invoke(Object reader, Object quote) throws Exception{
496
+ PushbackReader r = (PushbackReader) reader;
497
+ Object o = read(r, true, null, true);
498
+ // if(o instanceof Symbol)
499
+ // {
500
+ // Object v = Compiler.maybeResolveIn(Compiler.currentNS(), (Symbol) o);
501
+ // if(v instanceof Var)
502
+ // return v;
503
+ // }
504
+ return RT.list(THE_VAR, o);
505
+ }
506
+ }
507
+
508
+ /*
509
+ static class DerefReader extends AFn{
510
+
511
+ public Object invoke(Object reader, Object quote) throws Exception{
512
+ PushbackReader r = (PushbackReader) reader;
513
+ int ch = r.read();
514
+ if(ch == -1)
515
+ throw new Exception("EOF while reading character");
516
+ if(ch == '!')
517
+ {
518
+ Object o = read(r, true, null, true);
519
+ return RT.list(DEREF_BANG, o);
520
+ }
521
+ else
522
+ {
523
+ r.unread(ch);
524
+ Object o = read(r, true, null, true);
525
+ return RT.list(DEREF, o);
526
+ }
527
+ }
528
+
529
+ }
530
+ */
531
+
532
+ public static class DispatchReader extends AFn{
533
+ public Object invoke(Object reader, Object hash) throws Exception{
534
+ int ch = ((Reader) reader).read();
535
+ if(ch == -1)
536
+ throw new Exception("EOF while reading character");
537
+ IFn fn = dispatchMacros[ch];
538
+ if(fn == null)
539
+ throw new Exception(String.format("No dispatch macro for: %c", (char) ch));
540
+ return fn.invoke(reader, ch);
541
+ }
542
+ }
543
+
544
+ static Symbol garg(int n){
545
+ return Symbol.intern(null, (n == -1 ? "rest" : ("p" + n)) + "__" + RT.nextID());
546
+ }
547
+
548
+ public static class FnReader extends AFn{
549
+ public Object invoke(Object reader, Object lparen) throws Exception{
550
+ PushbackReader r = (PushbackReader) reader;
551
+ if(ARG_ENV.deref() != null)
552
+ throw new IllegalStateException("Nested #()s are not allowed");
553
+ try
554
+ {
555
+ Var.pushThreadBindings(
556
+ RT.map(ARG_ENV, PersistentTreeMap.EMPTY));
557
+ r.unread('(');
558
+ Object form = read(r, true, null, true);
559
+
560
+ PersistentVector args = PersistentVector.EMPTY;
561
+ PersistentTreeMap argsyms = (PersistentTreeMap) ARG_ENV.deref();
562
+ ISeq rargs = argsyms.rseq();
563
+ if(rargs != null)
564
+ {
565
+ int higharg = (Integer) ((Map.Entry) rargs.first()).getKey();
566
+ if(higharg > 0)
567
+ {
568
+ for(int i = 1; i <= higharg; ++i)
569
+ {
570
+ Object sym = argsyms.valAt(i);
571
+ if(sym == null)
572
+ sym = garg(i);
573
+ args = args.cons(sym);
574
+ }
575
+ }
576
+ Object restsym = argsyms.valAt(-1);
577
+ if(restsym != null)
578
+ {
579
+ args = args.cons(Compiler._AMP_);
580
+ args = args.cons(restsym);
581
+ }
582
+ }
583
+ return RT.list(Compiler.FN, args, form);
584
+ }
585
+ finally
586
+ {
587
+ Var.popThreadBindings();
588
+ }
589
+ }
590
+ }
591
+
592
+ static Symbol registerArg(int n){
593
+ PersistentTreeMap argsyms = (PersistentTreeMap) ARG_ENV.deref();
594
+ if(argsyms == null)
595
+ {
596
+ throw new IllegalStateException("arg literal not in #()");
597
+ }
598
+ Symbol ret = (Symbol) argsyms.valAt(n);
599
+ if(ret == null)
600
+ {
601
+ ret = garg(n);
602
+ ARG_ENV.set(argsyms.assoc(n, ret));
603
+ }
604
+ return ret;
605
+ }
606
+
607
+ static class ArgReader extends AFn{
608
+ public Object invoke(Object reader, Object pct) throws Exception{
609
+ PushbackReader r = (PushbackReader) reader;
610
+ int ch = r.read();
611
+ unread(r, ch);
612
+ //% alone is first arg
613
+ if(ch == -1 || isWhitespace(ch) || isTerminatingMacro(ch))
614
+ {
615
+ return registerArg(1);
616
+ }
617
+ Object n = read(r, true, null, true);
618
+ if(n.equals(Compiler._AMP_))
619
+ return registerArg(-1);
620
+ if(!(n instanceof Number))
621
+ throw new IllegalStateException("arg literal must be %, %& or %integer");
622
+ return registerArg(((Number) n).intValue());
623
+ }
624
+ }
625
+
626
+ public static class MetaReader extends AFn{
627
+ public Object invoke(Object reader, Object caret) throws Exception{
628
+ PushbackReader r = (PushbackReader) reader;
629
+ int line = -1;
630
+ if(r instanceof LineNumberingPushbackReader)
631
+ line = ((LineNumberingPushbackReader) r).getLineNumber();
632
+ Object meta = read(r, true, null, true);
633
+ if(meta instanceof Symbol || meta instanceof Keyword || meta instanceof String)
634
+ meta = RT.map(RT.TAG_KEY, meta);
635
+ else if(!(meta instanceof IPersistentMap))
636
+ throw new IllegalArgumentException("Metadata must be Symbol,Keyword,String or Map");
637
+
638
+ Object o = read(r, true, null, true);
639
+ if(o instanceof IMeta)
640
+ {
641
+ if(line != -1 && o instanceof ISeq)
642
+ meta = ((IPersistentMap) meta).assoc(RT.LINE_KEY, line);
643
+ if(o instanceof IReference)
644
+ {
645
+ ((IReference)o).resetMeta((IPersistentMap) meta);
646
+ return o;
647
+ }
648
+ return ((IObj) o).withMeta((IPersistentMap) meta);
649
+ }
650
+ else
651
+ throw new IllegalArgumentException("Metadata can only be applied to IMetas");
652
+ }
653
+
654
+ }
655
+
656
+ public static class SyntaxQuoteReader extends AFn{
657
+ public Object invoke(Object reader, Object backquote) throws Exception{
658
+ PushbackReader r = (PushbackReader) reader;
659
+ try
660
+ {
661
+ Var.pushThreadBindings(
662
+ RT.map(GENSYM_ENV, PersistentHashMap.EMPTY));
663
+
664
+ Object form = read(r, true, null, true);
665
+ return syntaxQuote(form);
666
+ }
667
+ finally
668
+ {
669
+ Var.popThreadBindings();
670
+ }
671
+ }
672
+
673
+ static Object syntaxQuote(Object form) throws Exception{
674
+ Object ret;
675
+ if(Compiler.isSpecial(form))
676
+ ret = RT.list(Compiler.QUOTE, form);
677
+ else if(form instanceof Symbol)
678
+ {
679
+ Symbol sym = (Symbol) form;
680
+ if(sym.ns == null && sym.name.endsWith("#"))
681
+ {
682
+ IPersistentMap gmap = (IPersistentMap) GENSYM_ENV.deref();
683
+ if(gmap == null)
684
+ throw new IllegalStateException("Gensym literal not in syntax-quote");
685
+ Symbol gs = (Symbol) gmap.valAt(sym);
686
+ if(gs == null)
687
+ GENSYM_ENV.set(gmap.assoc(sym, gs = Symbol.intern(null,
688
+ sym.name.substring(0, sym.name.length() - 1)
689
+ + "__" + RT.nextID() + "__auto__")));
690
+ sym = gs;
691
+ }
692
+ else if(sym.ns == null && sym.name.endsWith("."))
693
+ {
694
+ Symbol csym = Symbol.intern(null, sym.name.substring(0, sym.name.length() - 1));
695
+ csym = Compiler.resolveSymbol(csym);
696
+ sym = Symbol.intern(null, csym.name.concat("."));
697
+ }
698
+ else if(sym.ns == null && sym.name.startsWith("."))
699
+ {
700
+ // Simply quote method names.
701
+ }
702
+ else
703
+ sym = Compiler.resolveSymbol(sym);
704
+ ret = RT.list(Compiler.QUOTE, sym);
705
+ }
706
+ else if(isUnquote(form))
707
+ return RT.second(form);
708
+ else if(isUnquoteSplicing(form))
709
+ throw new IllegalStateException("splice not in list");
710
+ else if(form instanceof IPersistentCollection)
711
+ {
712
+ if(form instanceof IPersistentMap)
713
+ {
714
+ IPersistentVector keyvals = flattenMap(form);
715
+ ret = RT.list(APPLY, HASHMAP, RT.list(SEQ, RT.cons(CONCAT, sqExpandList(keyvals.seq()))));
716
+ }
717
+ else if(form instanceof IPersistentVector)
718
+ {
719
+ ret = RT.list(APPLY, VECTOR, RT.list(SEQ, RT.cons(CONCAT, sqExpandList(((IPersistentVector) form).seq()))));
720
+ }
721
+ else if(form instanceof IPersistentSet)
722
+ {
723
+ ret = RT.list(APPLY, HASHSET, RT.list(SEQ, RT.cons(CONCAT, sqExpandList(((IPersistentSet) form).seq()))));
724
+ }
725
+ else if(form instanceof ISeq || form instanceof IPersistentList)
726
+ {
727
+ ISeq seq = RT.seq(form);
728
+ if(seq == null)
729
+ ret = RT.cons(LIST,null);
730
+ else
731
+ ret = RT.list(SEQ, RT.cons(CONCAT, sqExpandList(seq)));
732
+ }
733
+ else
734
+ throw new UnsupportedOperationException("Unknown Collection type");
735
+ }
736
+ else if(form instanceof Keyword
737
+ || form instanceof Number
738
+ || form instanceof Character
739
+ || form instanceof String)
740
+ ret = form;
741
+ else
742
+ ret = RT.list(Compiler.QUOTE, form);
743
+
744
+ if(form instanceof IObj && RT.meta(form) != null)
745
+ {
746
+ //filter line numbers
747
+ IPersistentMap newMeta = ((IObj) form).meta().without(RT.LINE_KEY);
748
+ if(newMeta.count() > 0)
749
+ return RT.list(WITH_META, ret, syntaxQuote(((IObj) form).meta()));
750
+ }
751
+ return ret;
752
+ }
753
+
754
+ private static ISeq sqExpandList(ISeq seq) throws Exception{
755
+ PersistentVector ret = PersistentVector.EMPTY;
756
+ for(; seq != null; seq = seq.next())
757
+ {
758
+ Object item = seq.first();
759
+ if(isUnquote(item))
760
+ ret = ret.cons(RT.list(LIST, RT.second(item)));
761
+ else if(isUnquoteSplicing(item))
762
+ ret = ret.cons(RT.second(item));
763
+ else
764
+ ret = ret.cons(RT.list(LIST, syntaxQuote(item)));
765
+ }
766
+ return ret.seq();
767
+ }
768
+
769
+ private static IPersistentVector flattenMap(Object form){
770
+ IPersistentVector keyvals = PersistentVector.EMPTY;
771
+ for(ISeq s = RT.seq(form); s != null; s = s.next())
772
+ {
773
+ IMapEntry e = (IMapEntry) s.first();
774
+ keyvals = (IPersistentVector) keyvals.cons(e.key());
775
+ keyvals = (IPersistentVector) keyvals.cons(e.val());
776
+ }
777
+ return keyvals;
778
+ }
779
+
780
+ }
781
+
782
+ static boolean isUnquoteSplicing(Object form){
783
+ return form instanceof ISeq && Util.equals(RT.first(form),UNQUOTE_SPLICING);
784
+ }
785
+
786
+ static boolean isUnquote(Object form){
787
+ return form instanceof ISeq && Util.equals(RT.first(form),UNQUOTE);
788
+ }
789
+
790
+ static class UnquoteReader extends AFn{
791
+ public Object invoke(Object reader, Object comma) throws Exception{
792
+ PushbackReader r = (PushbackReader) reader;
793
+ int ch = r.read();
794
+ if(ch == -1)
795
+ throw new Exception("EOF while reading character");
796
+ if(ch == '@')
797
+ {
798
+ Object o = read(r, true, null, true);
799
+ return RT.list(UNQUOTE_SPLICING, o);
800
+ }
801
+ else
802
+ {
803
+ unread(r, ch);
804
+ Object o = read(r, true, null, true);
805
+ return RT.list(UNQUOTE, o);
806
+ }
807
+ }
808
+
809
+ }
810
+
811
+ public static class CharacterReader extends AFn{
812
+ public Object invoke(Object reader, Object backslash) throws Exception{
813
+ PushbackReader r = (PushbackReader) reader;
814
+ int ch = r.read();
815
+ if(ch == -1)
816
+ throw new Exception("EOF while reading character");
817
+ String token = readToken(r, (char) ch);
818
+ if(token.length() == 1)
819
+ return Character.valueOf(token.charAt(0));
820
+ else if(token.equals("newline"))
821
+ return '\n';
822
+ else if(token.equals("space"))
823
+ return ' ';
824
+ else if(token.equals("tab"))
825
+ return '\t';
826
+ else if(token.equals("backspace"))
827
+ return '\b';
828
+ else if(token.equals("formfeed"))
829
+ return '\f';
830
+ else if(token.equals("return"))
831
+ return '\r';
832
+ else if(token.startsWith("u"))
833
+ {
834
+ char c = (char) readUnicodeChar(token, 1, 4, 16);
835
+ if(c >= '\uD800' && c <= '\uDFFF') // surrogate code unit?
836
+ throw new Exception("Invalid character constant: \\u" + Integer.toString(c, 16));
837
+ return c;
838
+ }
839
+ else if(token.startsWith("o"))
840
+ {
841
+ int len = token.length() - 1;
842
+ if(len > 3)
843
+ throw new Exception("Invalid octal escape sequence length: " + len);
844
+ int uc = readUnicodeChar(token, 1, len, 8);
845
+ if(uc > 0377)
846
+ throw new Exception("Octal escape sequence must be in range [0, 377].");
847
+ return (char) uc;
848
+ }
849
+ throw new Exception("Unsupported character: \\" + token);
850
+ }
851
+
852
+ }
853
+
854
+ public static class ListReader extends AFn{
855
+ public Object invoke(Object reader, Object leftparen) throws Exception{
856
+ PushbackReader r = (PushbackReader) reader;
857
+ int line = -1;
858
+ if(r instanceof LineNumberingPushbackReader)
859
+ line = ((LineNumberingPushbackReader) r).getLineNumber();
860
+ List list = readDelimitedList(')', r, true);
861
+ if(list.isEmpty())
862
+ return PersistentList.EMPTY;
863
+ IObj s = (IObj) PersistentList.create(list);
864
+ // IObj s = (IObj) RT.seq(list);
865
+ if(line != -1)
866
+ return s.withMeta(RT.map(RT.LINE_KEY, line));
867
+ else
868
+ return s;
869
+ }
870
+
871
+ }
872
+
873
+ static class CtorReader extends AFn{
874
+ static final Symbol cls = Symbol.create("class");
875
+
876
+ public Object invoke(Object reader, Object leftangle) throws Exception{
877
+ PushbackReader r = (PushbackReader) reader;
878
+ // #<class classname>
879
+ // #<classname args*>
880
+ // #<classname/staticMethod args*>
881
+ List list = readDelimitedList('>', r, true);
882
+ if(list.isEmpty())
883
+ throw new Exception("Must supply 'class', classname or classname/staticMethod");
884
+ Symbol s = (Symbol) list.get(0);
885
+ Object[] args = list.subList(1, list.size()).toArray();
886
+ if(s.equals(cls))
887
+ {
888
+ return RT.classForName(args[0].toString());
889
+ }
890
+ else if(s.ns != null) //static method
891
+ {
892
+ String classname = s.ns;
893
+ String method = s.name;
894
+ return Reflector.invokeStaticMethod(classname, method, args);
895
+ }
896
+ else
897
+ {
898
+ return Reflector.invokeConstructor(RT.classForName(s.name), args);
899
+ }
900
+ }
901
+
902
+ }
903
+
904
+ public static class EvalReader extends AFn{
905
+ public Object invoke(Object reader, Object eq) throws Exception{
906
+ if (!RT.booleanCast(RT.READEVAL.deref()))
907
+ {
908
+ throw new Exception("EvalReader not allowed when *read-eval* is false.");
909
+ }
910
+
911
+ PushbackReader r = (PushbackReader) reader;
912
+ Object o = read(r, true, null, true);
913
+ if(o instanceof Symbol)
914
+ {
915
+ return RT.classForName(o.toString());
916
+ }
917
+ else if(o instanceof IPersistentList)
918
+ {
919
+ Symbol fs = (Symbol) RT.first(o);
920
+ if(fs.equals(THE_VAR))
921
+ {
922
+ Symbol vs = (Symbol) RT.second(o);
923
+ return RT.var(vs.ns, vs.name); //Compiler.resolve((Symbol) RT.second(o),true);
924
+ }
925
+ if(fs.name.endsWith("."))
926
+ {
927
+ Object[] args = RT.toArray(RT.next(o));
928
+ return Reflector.invokeConstructor(RT.classForName(fs.name.substring(0, fs.name.length() - 1)), args);
929
+ }
930
+ if(Compiler.namesStaticMember(fs))
931
+ {
932
+ Object[] args = RT.toArray(RT.next(o));
933
+ return Reflector.invokeStaticMethod(fs.ns, fs.name, args);
934
+ }
935
+ Object v = Compiler.maybeResolveIn(Compiler.currentNS(), fs);
936
+ if(v instanceof Var)
937
+ {
938
+ return ((IFn) v).applyTo(RT.next(o));
939
+ }
940
+ throw new Exception("Can't resolve " + fs);
941
+ }
942
+ else
943
+ throw new IllegalArgumentException("Unsupported #= form");
944
+ }
945
+ }
946
+
947
+ //static class ArgVectorReader extends AFn{
948
+ // public Object invoke(Object reader, Object leftparen) throws Exception{
949
+ // PushbackReader r = (PushbackReader) reader;
950
+ // return ArgVector.create(readDelimitedList('|', r, true));
951
+ // }
952
+ //
953
+ //}
954
+
955
+ public static class VectorReader extends AFn{
956
+ public Object invoke(Object reader, Object leftparen) throws Exception{
957
+ PushbackReader r = (PushbackReader) reader;
958
+ return LazilyPersistentVector.create(readDelimitedList(']', r, true));
959
+ }
960
+
961
+ }
962
+
963
+ public static class MapReader extends AFn{
964
+ public Object invoke(Object reader, Object leftparen) throws Exception{
965
+ PushbackReader r = (PushbackReader) reader;
966
+ return RT.map(readDelimitedList('}', r, true).toArray());
967
+ }
968
+
969
+ }
970
+
971
+ public static class SetReader extends AFn{
972
+ public Object invoke(Object reader, Object leftbracket) throws Exception{
973
+ PushbackReader r = (PushbackReader) reader;
974
+ return PersistentHashSet.create(readDelimitedList('}', r, true));
975
+ }
976
+
977
+ }
978
+
979
+ public static class UnmatchedDelimiterReader extends AFn{
980
+ public Object invoke(Object reader, Object rightdelim) throws Exception{
981
+ throw new Exception("Unmatched delimiter: " + rightdelim);
982
+ }
983
+
984
+ }
985
+
986
+ public static class UnreadableReader extends AFn{
987
+ public Object invoke(Object reader, Object leftangle) throws Exception{
988
+ throw new Exception("Unreadable form");
989
+ }
990
+ }
991
+
992
+ public static List readDelimitedList(char delim, PushbackReader r, boolean isRecursive) throws Exception{
993
+ ArrayList a = new ArrayList();
994
+
995
+ for(; ;)
996
+ {
997
+ int ch = r.read();
998
+
999
+ while(isWhitespace(ch))
1000
+ ch = r.read();
1001
+
1002
+ if(ch == -1)
1003
+ throw new Exception("EOF while reading");
1004
+
1005
+ if(ch == delim)
1006
+ break;
1007
+
1008
+ IFn macroFn = getMacro(ch);
1009
+ if(macroFn != null)
1010
+ {
1011
+ Object mret = macroFn.invoke(r, (char) ch);
1012
+ //no op macros return the reader
1013
+ if(mret != r)
1014
+ a.add(mret);
1015
+ }
1016
+ else
1017
+ {
1018
+ unread(r, ch);
1019
+
1020
+ Object o = read(r, true, null, isRecursive);
1021
+ if(o != r)
1022
+ a.add(o);
1023
+ }
1024
+ }
1025
+
1026
+
1027
+ return a;
1028
+ }
1029
+
1030
+ /*
1031
+ public static void main(String[] args) throws Exception{
1032
+ //RT.init();
1033
+ PushbackReader rdr = new PushbackReader( new java.io.StringReader( "(+ 21 21)" ) );
1034
+ Object input = LispReader.read(rdr, false, new Object(), false );
1035
+ System.out.println(Compiler.eval(input));
1036
+ }
1037
+
1038
+ public static void main(String[] args){
1039
+ LineNumberingPushbackReader r = new LineNumberingPushbackReader(new InputStreamReader(System.in));
1040
+ OutputStreamWriter w = new OutputStreamWriter(System.out);
1041
+ Object ret = null;
1042
+ try
1043
+ {
1044
+ for(; ;)
1045
+ {
1046
+ ret = LispReader.read(r, true, null, false);
1047
+ RT.print(ret, w);
1048
+ w.write('\n');
1049
+ if(ret != null)
1050
+ w.write(ret.getClass().toString());
1051
+ w.write('\n');
1052
+ w.flush();
1053
+ }
1054
+ }
1055
+ catch(Exception e)
1056
+ {
1057
+ e.printStackTrace();
1058
+ }
1059
+ }
1060
+ */
1061
+
1062
+ }
1063
+