carats 0.3.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 (422) hide show
  1. data/ChangeLog +2 -0
  2. data/LICENSE +5 -0
  3. data/README +67 -0
  4. data/Reapfile +72 -0
  5. data/ToDo +24 -0
  6. data/bench/b_harray.rb +49 -0
  7. data/bench/b_range.rb +64 -0
  8. data/demo/ansicolor/cdiff.rb +20 -0
  9. data/demo/ansicolor/example.rb +82 -0
  10. data/demo/io-reactor/chatserver.rb +347 -0
  11. data/doc/classes/Array.html +172 -0
  12. data/doc/classes/BBCode.html +638 -0
  13. data/doc/classes/BinaryReader.html +675 -0
  14. data/doc/classes/Binding.html +223 -0
  15. data/doc/classes/ByteOrder.html +284 -0
  16. data/doc/classes/Class.html +189 -0
  17. data/doc/classes/Constant.html +785 -0
  18. data/doc/classes/Constant/CGS.html +609 -0
  19. data/doc/classes/Continuation.html +113 -0
  20. data/doc/classes/Coroutine.html +387 -0
  21. data/doc/classes/CountingSemaphore.html +337 -0
  22. data/doc/classes/CrossCase.html +561 -0
  23. data/doc/classes/DynamicMixin.html +185 -0
  24. data/doc/classes/EnumerableWithArgs.html +550 -0
  25. data/doc/classes/Expect.html +428 -0
  26. data/doc/classes/Expect/DefaultChain.html +113 -0
  27. data/doc/classes/Expect/SeparatedPattern.html +223 -0
  28. data/doc/classes/Expect/Timeout.html +167 -0
  29. data/doc/classes/Expect/UnmatchedMessage.html +160 -0
  30. data/doc/classes/FileList.html +833 -0
  31. data/doc/classes/FloatString.html +534 -0
  32. data/doc/classes/Functor.html +211 -0
  33. data/doc/classes/HArray.html +1872 -0
  34. data/doc/classes/HTML.html +328 -0
  35. data/doc/classes/Heap.html +683 -0
  36. data/doc/classes/Heap/EmptyHeapException.html +111 -0
  37. data/doc/classes/Heap/Max.html +176 -0
  38. data/doc/classes/Heap/Min.html +176 -0
  39. data/doc/classes/IO.html +108 -0
  40. data/doc/classes/IO/Reactor.html +790 -0
  41. data/doc/classes/IO/Redirect.html +289 -0
  42. data/doc/classes/Infinity.html +320 -0
  43. data/doc/classes/Interval.html +1014 -0
  44. data/doc/classes/InvalidNackError.html +161 -0
  45. data/doc/classes/Kernel.html +204 -0
  46. data/doc/classes/Lisp.html +1132 -0
  47. data/doc/classes/Lisp/DottedPair.html +379 -0
  48. data/doc/classes/Lisp/Format.html +178 -0
  49. data/doc/classes/Lisp/Format/ArgumentError.html +126 -0
  50. data/doc/classes/Lisp/Format/Directives.html +155 -0
  51. data/doc/classes/Lisp/Format/Directives/ArgJump.html +178 -0
  52. data/doc/classes/Lisp/Format/Directives/Ascii.html +119 -0
  53. data/doc/classes/Lisp/Format/Directives/BeginCaseConversion.html +185 -0
  54. data/doc/classes/Lisp/Format/Directives/BeginConditional.html +307 -0
  55. data/doc/classes/Lisp/Format/Directives/BeginIteration.html +338 -0
  56. data/doc/classes/Lisp/Format/Directives/Binary.html +157 -0
  57. data/doc/classes/Lisp/Format/Directives/Character.html +228 -0
  58. data/doc/classes/Lisp/Format/Directives/CharacterDirective.html +203 -0
  59. data/doc/classes/Lisp/Format/Directives/ClauseSeparator.html +166 -0
  60. data/doc/classes/Lisp/Format/Directives/Decimal.html +119 -0
  61. data/doc/classes/Lisp/Format/Directives/Directive.html +397 -0
  62. data/doc/classes/Lisp/Format/Directives/DollarFP.html +205 -0
  63. data/doc/classes/Lisp/Format/Directives/EndCaseConversion.html +174 -0
  64. data/doc/classes/Lisp/Format/Directives/EndConditional.html +159 -0
  65. data/doc/classes/Lisp/Format/Directives/EndIteration.html +163 -0
  66. data/doc/classes/Lisp/Format/Directives/ExpFP.html +252 -0
  67. data/doc/classes/Lisp/Format/Directives/FFFP.html +224 -0
  68. data/doc/classes/Lisp/Format/Directives/Factory.html +180 -0
  69. data/doc/classes/Lisp/Format/Directives/FreshLine.html +175 -0
  70. data/doc/classes/Lisp/Format/Directives/GeneralFP.html +265 -0
  71. data/doc/classes/Lisp/Format/Directives/Hexadecimal.html +157 -0
  72. data/doc/classes/Lisp/Format/Directives/Indirection.html +183 -0
  73. data/doc/classes/Lisp/Format/Directives/Literal.html +187 -0
  74. data/doc/classes/Lisp/Format/Directives/NewLine.html +158 -0
  75. data/doc/classes/Lisp/Format/Directives/NewPage.html +158 -0
  76. data/doc/classes/Lisp/Format/Directives/Number.html +243 -0
  77. data/doc/classes/Lisp/Format/Directives/Octal.html +157 -0
  78. data/doc/classes/Lisp/Format/Directives/Plural.html +177 -0
  79. data/doc/classes/Lisp/Format/Directives/Print.html +237 -0
  80. data/doc/classes/Lisp/Format/Directives/Radix.html +432 -0
  81. data/doc/classes/Lisp/Format/Directives/SExpression.html +157 -0
  82. data/doc/classes/Lisp/Format/Directives/SkipWhitespace.html +165 -0
  83. data/doc/classes/Lisp/Format/Directives/Tabulate.html +198 -0
  84. data/doc/classes/Lisp/Format/Directives/Tilde.html +158 -0
  85. data/doc/classes/Lisp/Format/Directives/UnknownDirectiveError.html +117 -0
  86. data/doc/classes/Lisp/Format/Formatter.html +193 -0
  87. data/doc/classes/Lisp/Format/IncompleteParameterError.html +119 -0
  88. data/doc/classes/Lisp/Format/IndexError.html +126 -0
  89. data/doc/classes/Lisp/Format/Lexer.html +479 -0
  90. data/doc/classes/Lisp/Format/MalformedError.html +119 -0
  91. data/doc/classes/Lisp/Format/MissingParameterError.html +119 -0
  92. data/doc/classes/Lisp/Format/ModifierError.html +119 -0
  93. data/doc/classes/Lisp/Format/Output.html +239 -0
  94. data/doc/classes/Lisp/Format/ParameterError.html +126 -0
  95. data/doc/classes/Lisp/Format/Parameters.html +123 -0
  96. data/doc/classes/Lisp/Format/Parameters/Argument.html +172 -0
  97. data/doc/classes/Lisp/Format/Parameters/ArgumentCount.html +159 -0
  98. data/doc/classes/Lisp/Format/Parameters/Character.html +119 -0
  99. data/doc/classes/Lisp/Format/Parameters/Default.html +120 -0
  100. data/doc/classes/Lisp/Format/Parameters/Integer.html +119 -0
  101. data/doc/classes/Lisp/Format/Parameters/Parameter.html +206 -0
  102. data/doc/classes/Lisp/Format/Parser.html +212 -0
  103. data/doc/classes/Lisp/Format/Positioned.html +166 -0
  104. data/doc/classes/Lisp/Format/State.html +455 -0
  105. data/doc/classes/Lisp/Format/SyntaxError.html +126 -0
  106. data/doc/classes/Method.html +274 -0
  107. data/doc/classes/Method/DuckHunter.html +281 -0
  108. data/doc/classes/Module.html +709 -0
  109. data/doc/classes/Multiton.html +284 -0
  110. data/doc/classes/Multiton/New.html +164 -0
  111. data/doc/classes/Multiton/Semi.html +155 -0
  112. data/doc/classes/NackClass.html +322 -0
  113. data/doc/classes/NilClass.html +231 -0
  114. data/doc/classes/NilComparable.html +179 -0
  115. data/doc/classes/NotCopyable.html +273 -0
  116. data/doc/classes/Object.html +261 -0
  117. data/doc/classes/OpenStructable.html +346 -0
  118. data/doc/classes/OrderedHash.html +939 -0
  119. data/doc/classes/Parser.html +515 -0
  120. data/doc/classes/Parser/Main.html +178 -0
  121. data/doc/classes/Parser/Marker.html +475 -0
  122. data/doc/classes/Parser/Registry.html +354 -0
  123. data/doc/classes/Parser/Token.html +399 -0
  124. data/doc/classes/Parser/UnitToken.html +222 -0
  125. data/doc/classes/Ref.html +230 -0
  126. data/doc/classes/SimpleStringIO.html +183 -0
  127. data/doc/classes/StaticHash.html +202 -0
  128. data/doc/classes/String.html +172 -0
  129. data/doc/classes/Struct.html +181 -0
  130. data/doc/classes/SuperStruct.html +382 -0
  131. data/doc/classes/Term.html +156 -0
  132. data/doc/classes/Term/ANSIColor.html +185 -0
  133. data/doc/classes/Text.html +138 -0
  134. data/doc/classes/Text/Soundex.html +222 -0
  135. data/doc/classes/TextTagIterator.html +911 -0
  136. data/doc/classes/Time.html +119 -0
  137. data/doc/classes/Time/Limit.html +303 -0
  138. data/doc/classes/Time/Limit/Dummy.html +181 -0
  139. data/doc/classes/Timer.html +351 -0
  140. data/doc/classes/TracePoint.html +532 -0
  141. data/doc/classes/Tuple.html +178 -0
  142. data/doc/classes/Uninheritable.html +213 -0
  143. data/doc/classes/Version.html +783 -0
  144. data/doc/created.rid +1 -0
  145. data/doc/files/LICENSE.html +113 -0
  146. data/doc/files/README.html +201 -0
  147. data/doc/files/lib/carat/1st_rb.html +107 -0
  148. data/doc/files/lib/carat/ansicolor_rb.html +146 -0
  149. data/doc/files/lib/carat/attr_rb.html +101 -0
  150. data/doc/files/lib/carat/bbcode_rb.html +152 -0
  151. data/doc/files/lib/carat/binaryreader_rb.html +114 -0
  152. data/doc/files/lib/carat/binding-of-caller_rb.html +108 -0
  153. data/doc/files/lib/carat/byteorder_rb.html +107 -0
  154. data/doc/files/lib/carat/constant_rb.html +167 -0
  155. data/doc/files/lib/carat/coroutine_rb.html +156 -0
  156. data/doc/files/lib/carat/crosscase_rb.html +224 -0
  157. data/doc/files/lib/carat/duckhunter_rb.html +165 -0
  158. data/doc/files/lib/carat/dynamic-mixin_rb.html +101 -0
  159. data/doc/files/lib/carat/enumerable-args_rb.html +140 -0
  160. data/doc/files/lib/carat/expect_rb.html +137 -0
  161. data/doc/files/lib/carat/filelist_rb.html +130 -0
  162. data/doc/files/lib/carat/floatstring_rb.html +126 -0
  163. data/doc/files/lib/carat/functor_rb.html +140 -0
  164. data/doc/files/lib/carat/harray_rb.html +128 -0
  165. data/doc/files/lib/carat/heap_rb.html +154 -0
  166. data/doc/files/lib/carat/html-helpers_rb.html +116 -0
  167. data/doc/files/lib/carat/infinity_rb.html +142 -0
  168. data/doc/files/lib/carat/init_rb.html +127 -0
  169. data/doc/files/lib/carat/interval_rb.html +162 -0
  170. data/doc/files/lib/carat/io-reactor_rb.html +211 -0
  171. data/doc/files/lib/carat/io-redirect_rb.html +132 -0
  172. data/doc/files/lib/carat/lisp-format_rb.html +187 -0
  173. data/doc/files/lib/carat/lisp_rb.html +152 -0
  174. data/doc/files/lib/carat/macro_rb.html +129 -0
  175. data/doc/files/lib/carat/multiton_rb.html +178 -0
  176. data/doc/files/lib/carat/nack_rb.html +193 -0
  177. data/doc/files/lib/carat/nil-comparable_rb.html +126 -0
  178. data/doc/files/lib/carat/nil-missing_rb.html +101 -0
  179. data/doc/files/lib/carat/notcopyable_rb.html +166 -0
  180. data/doc/files/lib/carat/orderedhash_rb.html +107 -0
  181. data/doc/files/lib/carat/ostructable_rb.html +157 -0
  182. data/doc/files/lib/carat/parser-old_rb.html +239 -0
  183. data/doc/files/lib/carat/parser_rb.html +244 -0
  184. data/doc/files/lib/carat/ref_rb.html +107 -0
  185. data/doc/files/lib/carat/semaphore_rb.html +132 -0
  186. data/doc/files/lib/carat/snapshot_rb.html +152 -0
  187. data/doc/files/lib/carat/soundex_rb.html +128 -0
  188. data/doc/files/lib/carat/sstruct_rb.html +142 -0
  189. data/doc/files/lib/carat/statichash_rb.html +150 -0
  190. data/doc/files/lib/carat/tagiter_rb.html +236 -0
  191. data/doc/files/lib/carat/timelimit_rb.html +136 -0
  192. data/doc/files/lib/carat/timer_rb.html +153 -0
  193. data/doc/files/lib/carat/tracepoint_rb.html +160 -0
  194. data/doc/files/lib/carat/tuple_rb.html +123 -0
  195. data/doc/files/lib/carat/uninheritable_rb.html +101 -0
  196. data/doc/files/lib/carat/version_rb.html +141 -0
  197. data/doc/fr_class_index.html +159 -0
  198. data/doc/fr_file_index.html +78 -0
  199. data/doc/fr_method_index.html +663 -0
  200. data/doc/index.html +24 -0
  201. data/doc/rdoc-style.css +208 -0
  202. data/lib/carat-dev/README +11 -0
  203. data/lib/carat-dev/access-blocks/access_blocks.rb +42 -0
  204. data/lib/carat-dev/association/association.rb +70 -0
  205. data/lib/carat-dev/blankslate/blankslate.rb +51 -0
  206. data/lib/carat-dev/breakpoint.rb +518 -0
  207. data/lib/carat-dev/class-constructor/constructor_methods.rb +78 -0
  208. data/lib/carat-dev/class-constructor/tc_constructor.rb +35 -0
  209. data/lib/carat-dev/closecall/closecall-test.rb +39 -0
  210. data/lib/carat-dev/closecall/closecall.rb +101 -0
  211. data/lib/carat-dev/commandrunner/commandrunner.rb +100 -0
  212. data/lib/carat-dev/conditional/conditionals.rb +106 -0
  213. data/lib/carat-dev/daemon/daemon.rb +70 -0
  214. data/lib/carat-dev/detach/detach.rb +363 -0
  215. data/lib/carat-dev/detach/tc_detach.rb +57 -0
  216. data/lib/carat-dev/import-module/import-module-0.81.tar.gz +0 -0
  217. data/lib/carat-dev/import-module/import-module-0.81/LICENSE +1 -0
  218. data/lib/carat-dev/import-module/import-module-0.81/Makefile +11 -0
  219. data/lib/carat-dev/import-module/import-module-0.81/README +4 -0
  220. data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-hash.rb +49 -0
  221. data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-pip.rb +71 -0
  222. data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-unbound-method.rb +36 -0
  223. data/lib/carat-dev/import-module/import-module-0.81/doc/README-ja.html +293 -0
  224. data/lib/carat-dev/import-module/import-module-0.81/doc/README-ja.rd +306 -0
  225. data/lib/carat-dev/import-module/import-module-0.81/doc/README.html +290 -0
  226. data/lib/carat-dev/import-module/import-module-0.81/doc/README.rd +303 -0
  227. data/lib/carat-dev/import-module/import-module-0.81/doc/style.css +85 -0
  228. data/lib/carat-dev/import-module/import-module-0.81/install.rb +99 -0
  229. data/lib/carat-dev/import-module/import-module-0.81/lib/import-module-single-thread.rb +84 -0
  230. data/lib/carat-dev/import-module/import-module-0.81/lib/import-module.rb +493 -0
  231. data/lib/carat-dev/import-module/import-module-0.81/test/Makefile +2 -0
  232. data/lib/carat-dev/import-module/import-module-0.81/test/test +91 -0
  233. data/lib/carat-dev/import-module/import-module-0.81/test/test-import-module.rb +936 -0
  234. data/lib/carat-dev/import-module/import-module-0.81/test/test-import_scope.rb +33 -0
  235. data/lib/carat-dev/import-module/import-module-0.81/test/test-scope_import.rb +33 -0
  236. data/lib/carat-dev/import-module/import-module-0.81/test/test-time.rb +184 -0
  237. data/lib/carat-dev/import-module/import-module-0.81/test/test.sh +91 -0
  238. data/lib/carat-dev/import-module/import-module-0.81/test/time.rb +135 -0
  239. data/lib/carat-dev/import-module/import-module-0.81/test/times-do.sh +10 -0
  240. data/lib/carat-dev/interface_work/SCRAP/i-contracts.rb +37 -0
  241. data/lib/carat-dev/interface_work/SCRAP/interface.rb +105 -0
  242. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0.zip +0 -0
  243. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/CHANGES +3 -0
  244. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/MANIFEST +15 -0
  245. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/README +32 -0
  246. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/doc/interface.rd +73 -0
  247. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/doc/interface.txt +94 -0
  248. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/install.rb +16 -0
  249. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/lib/interface.rb +50 -0
  250. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/tc_interface.rb +51 -0
  251. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test.rb +29 -0
  252. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_instance.rb +24 -0
  253. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_sub.rb +29 -0
  254. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_unrequire.rb +28 -0
  255. data/lib/carat-dev/interface_work/contracts/contract.zip +0 -0
  256. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.html +376 -0
  257. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000001.html +23 -0
  258. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000002.html +18 -0
  259. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000003.html +19 -0
  260. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000004.html +29 -0
  261. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000005.html +18 -0
  262. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000006.html +18 -0
  263. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractError.html +142 -0
  264. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractException.html +153 -0
  265. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractMismatch.html +125 -0
  266. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Module.html +157 -0
  267. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Module.src/M000007.html +112 -0
  268. data/lib/carat-dev/interface_work/contracts/contract/doc/created.rid +1 -0
  269. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/assertions_rb.html +109 -0
  270. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/exception_rb.html +108 -0
  271. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/integration_rb.html +108 -0
  272. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/overrides_rb.html +109 -0
  273. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract_rb.html +114 -0
  274. data/lib/carat-dev/interface_work/contracts/contract/doc/fr_class_index.html +31 -0
  275. data/lib/carat-dev/interface_work/contracts/contract/doc/fr_file_index.html +31 -0
  276. data/lib/carat-dev/interface_work/contracts/contract/doc/fr_method_index.html +33 -0
  277. data/lib/carat-dev/interface_work/contracts/contract/doc/index.html +24 -0
  278. data/lib/carat-dev/interface_work/contracts/contract/doc/rdoc-style.css +208 -0
  279. data/lib/carat-dev/interface_work/contracts/contract/lib/contract.rb +88 -0
  280. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/assertions.rb +37 -0
  281. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/exception.rb +92 -0
  282. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/integration.rb +132 -0
  283. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/overrides.rb +32 -0
  284. data/lib/carat-dev/interface_work/must.rb +37 -0
  285. data/lib/carat-dev/interface_work/type.rb +232 -0
  286. data/lib/carat-dev/main/tc_toplevel.rb +23 -0
  287. data/lib/carat-dev/main/toplevel.rb +33 -0
  288. data/lib/carat-dev/main/toplevel_test.rb +24 -0
  289. data/lib/carat-dev/misc/1.rb +40 -0
  290. data/lib/carat-dev/misc/misc.rb +44 -0
  291. data/lib/carat-dev/misc/sys.rb +186 -0
  292. data/lib/carat-dev/misc/temp.rb +1 -0
  293. data/lib/carat-dev/misc/utils.rb +518 -0
  294. data/lib/carat-dev/predicate/predicate.rb +109 -0
  295. data/lib/carat-dev/predicate/predicate_test.rb +67 -0
  296. data/lib/carat-dev/premshree.rb +40 -0
  297. data/lib/carat-dev/priority-queue/pqueue.rb +183 -0
  298. data/lib/carat-dev/priority-queue/priorityqueue.rb +84 -0
  299. data/lib/carat-dev/quaternion/quaternion.rb +529 -0
  300. data/lib/carat-dev/range.rb +259 -0
  301. data/lib/carat-dev/system/rubyinfo.rb +75 -0
  302. data/lib/carat-dev/system/system.rb +105 -0
  303. data/lib/carat-dev/tc_range.rb +118 -0
  304. data/lib/carat-dev/timer/timer-doc/classes/Timer.html +291 -0
  305. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000001.html +26 -0
  306. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000002.html +19 -0
  307. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000003.html +18 -0
  308. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000004.html +18 -0
  309. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000005.html +21 -0
  310. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000006.html +23 -0
  311. data/lib/carat-dev/timer/timer-doc/created.rid +1 -0
  312. data/lib/carat-dev/timer/timer-doc/files/timer_rb.html +144 -0
  313. data/lib/carat-dev/timer/timer-doc/fr_class_index.html +27 -0
  314. data/lib/carat-dev/timer/timer-doc/fr_file_index.html +27 -0
  315. data/lib/carat-dev/timer/timer-doc/fr_method_index.html +32 -0
  316. data/lib/carat-dev/timer/timer-doc/index.html +24 -0
  317. data/lib/carat-dev/timer/timer-doc/rdoc-style.css +208 -0
  318. data/lib/carat-dev/timer/timer.rb +160 -0
  319. data/lib/carat-dev/vars/vars.rb +62 -0
  320. data/lib/carat/1st.rb +58 -0
  321. data/lib/carat/ansicolor.rb +122 -0
  322. data/lib/carat/attr.rb +342 -0
  323. data/lib/carat/bbcode.rb +352 -0
  324. data/lib/carat/binaryreader.rb +170 -0
  325. data/lib/carat/binding-of-caller.rb +83 -0
  326. data/lib/carat/byteorder.rb +34 -0
  327. data/lib/carat/constant.rb +287 -0
  328. data/lib/carat/coroutine.rb +102 -0
  329. data/lib/carat/crosscase.rb +309 -0
  330. data/lib/carat/duckhunter.rb +158 -0
  331. data/lib/carat/dynamic-mixin.rb +71 -0
  332. data/lib/carat/enumerable-args.rb +125 -0
  333. data/lib/carat/expect.rb +192 -0
  334. data/lib/carat/filelist.rb +277 -0
  335. data/lib/carat/floatstring.rb +153 -0
  336. data/lib/carat/functor.rb +41 -0
  337. data/lib/carat/harray.rb +507 -0
  338. data/lib/carat/heap.rb +193 -0
  339. data/lib/carat/html-helpers.rb +82 -0
  340. data/lib/carat/infinity.rb +61 -0
  341. data/lib/carat/init.rb +33 -0
  342. data/lib/carat/interval.rb +248 -0
  343. data/lib/carat/io-reactor.rb +657 -0
  344. data/lib/carat/io-redirect.rb +99 -0
  345. data/lib/carat/lisp-format.rb +1832 -0
  346. data/lib/carat/lisp.rb +336 -0
  347. data/lib/carat/macro.rb +68 -0
  348. data/lib/carat/multiton.rb +153 -0
  349. data/lib/carat/nack.rb +115 -0
  350. data/lib/carat/nil-comparable.rb +67 -0
  351. data/lib/carat/nil-missing.rb +12 -0
  352. data/lib/carat/notcopyable.rb +68 -0
  353. data/lib/carat/orderedhash.rb +249 -0
  354. data/lib/carat/ostructable.rb +138 -0
  355. data/lib/carat/parser-old.rb +350 -0
  356. data/lib/carat/parser.rb +393 -0
  357. data/lib/carat/ref.rb +31 -0
  358. data/lib/carat/semaphore.rb +69 -0
  359. data/lib/carat/snapshot.rb +94 -0
  360. data/lib/carat/soundex.rb +104 -0
  361. data/lib/carat/sstruct.rb +223 -0
  362. data/lib/carat/statichash.rb +49 -0
  363. data/lib/carat/tagiter.rb +345 -0
  364. data/lib/carat/timelimit.rb +114 -0
  365. data/lib/carat/timer.rb +99 -0
  366. data/lib/carat/tracepoint.rb +154 -0
  367. data/lib/carat/tuple.rb +31 -0
  368. data/lib/carat/uninheritable.rb +68 -0
  369. data/lib/carat/version.rb +147 -0
  370. data/pub/doc/sstruct.txt +204 -0
  371. data/pub/doc/tagiter.html +145 -0
  372. data/setup.rb +1361 -0
  373. data/test/fixtures/filelist/testfile.txt +1 -0
  374. data/test/fixtures/filelist/testfile2.txt +1 -0
  375. data/test/tc_1st.rb +16 -0
  376. data/test/tc_ansicolor.rb +23 -0
  377. data/test/tc_attr.rb +46 -0
  378. data/test/tc_bbcode.rb +20 -0
  379. data/test/tc_binaryreader.rb +14 -0
  380. data/test/tc_binding_of_caller.rb +2 -0
  381. data/test/tc_byteorder.rb +41 -0
  382. data/test/tc_constant.rb +12 -0
  383. data/test/tc_coroutine.rb +50 -0
  384. data/test/tc_crosscase.rb +33 -0
  385. data/test/tc_duckhunter.rb +37 -0
  386. data/test/tc_dynamic-mixin.rb +66 -0
  387. data/test/tc_enumerable-args.rb +66 -0
  388. data/test/tc_expect.rb +83 -0
  389. data/test/tc_filelist.rb +17 -0
  390. data/test/tc_floatstring.rb +22 -0
  391. data/test/tc_functor.rb +18 -0
  392. data/test/tc_harray.rb +280 -0
  393. data/test/tc_heap.rb +6 -0
  394. data/test/tc_infinity.rb +23 -0
  395. data/test/tc_init.rb +29 -0
  396. data/test/tc_interval.rb +153 -0
  397. data/test/tc_io-reactor.rb +5 -0
  398. data/test/tc_io-redirect.rb +5 -0
  399. data/test/tc_lisp-format.rb +24 -0
  400. data/test/tc_lisp.rb +32 -0
  401. data/test/tc_macro.rb +48 -0
  402. data/test/tc_multiton.rb +188 -0
  403. data/test/tc_nack.rb +31 -0
  404. data/test/tc_nil-as-emptiness.rb +19 -0
  405. data/test/tc_nil-comparable.rb +29 -0
  406. data/test/tc_nil-missing.rb +0 -0
  407. data/test/tc_notcopyable.rb +64 -0
  408. data/test/tc_orderedhash.rb +36 -0
  409. data/test/tc_ostructable.rb +31 -0
  410. data/test/tc_semaphore.rb +5 -0
  411. data/test/tc_snapshot.rb +20 -0
  412. data/test/tc_soundex.rb +19 -0
  413. data/test/tc_sstruct.rb +313 -0
  414. data/test/tc_statichash.rb +24 -0
  415. data/test/tc_tagiter.rb +80 -0
  416. data/test/tc_timelimit.rb +47 -0
  417. data/test/tc_timer.rb +35 -0
  418. data/test/tc_tracepoint.rb +10 -0
  419. data/test/tc_tuple.rb +25 -0
  420. data/test/tc_uninheritable.rb +33 -0
  421. data/test/tc_version.rb +90 -0
  422. metadata +531 -0
@@ -0,0 +1,163 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Lisp::Format::Directives::EndIteration</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Lisp::Format::Directives::EndIteration</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../../files/lib/carat/lisp-format_rb.html">
59
+ lib/carat/lisp-format.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="Directive.html">
69
+ Directive
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ Represents the ~} (End iteration) directive. See <a
86
+ href="BeginIteration.html">BeginIteration</a> for an explanation of how
87
+ these directives work together.
88
+ </p>
89
+
90
+ </div>
91
+
92
+
93
+ </div>
94
+
95
+ <div id="method-list">
96
+ <h3 class="section-bar">Methods</h3>
97
+
98
+ <div class="name-list">
99
+ <a href="#M000468">new</a>&nbsp;&nbsp;
100
+ </div>
101
+ </div>
102
+
103
+ </div>
104
+
105
+
106
+ <!-- if includes -->
107
+
108
+ <div id="section">
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+ <!-- if method_list -->
118
+ <div id="methods">
119
+ <h3 class="section-bar">Public Class methods</h3>
120
+
121
+ <div id="method-M000468" class="method-detail">
122
+ <a name="M000468"></a>
123
+
124
+ <div class="method-heading">
125
+ <a href="#M000468" class="method-signature">
126
+ <span class="method-name">new</span><span class="method-args">(params, modifiers, top, pos)</span>
127
+ </a>
128
+ </div>
129
+
130
+ <div class="method-description">
131
+ <p>
132
+ Raise a <a href="../SyntaxError.html">SyntaxError</a> if <tt>top</tt> is
133
+ not a <a href="BeginIteration.html">BeginIteration</a>.
134
+ </p>
135
+ <p><a class="source-toggle" href="#"
136
+ onclick="toggleCode('M000468-source');return false;">[Source]</a></p>
137
+ <div class="method-source-code" id="M000468-source">
138
+ <pre>
139
+ <span class="ruby-comment cmt"># File lib/carat/lisp-format.rb, line 1702</span>
140
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">params</span>, <span class="ruby-identifier">modifiers</span>, <span class="ruby-identifier">top</span>, <span class="ruby-identifier">pos</span>)
141
+ <span class="ruby-keyword kw">super</span> <span class="ruby-identifier">params</span>, <span class="ruby-identifier">modifiers</span>, <span class="ruby-identifier">top</span>, <span class="ruby-identifier">pos</span>
142
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">top</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">BeginIteration</span>
143
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">SynaxError</span>, <span class="ruby-value str">'~} without matching ~{'</span>
144
+ <span class="ruby-keyword kw">end</span>
145
+ <span class="ruby-keyword kw">end</span>
146
+ </pre>
147
+ </div>
148
+ </div>
149
+ </div>
150
+
151
+
152
+ </div>
153
+
154
+
155
+ </div>
156
+
157
+
158
+ <div id="validator-badges">
159
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
160
+ </div>
161
+
162
+ </body>
163
+ </html>
@@ -0,0 +1,252 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Lisp::Format::Directives::ExpFP</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Lisp::Format::Directives::ExpFP</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../../files/lib/carat/lisp-format_rb.html">
59
+ lib/carat/lisp-format.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="Directive.html">
69
+ Directive
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ Represents the ~E (Exponential floating-point) directive. This outputs
86
+ floating point values in what is known as exponential or scientific
87
+ floating point format, such as 1.0e+3 for 1000.
88
+ </p>
89
+
90
+ </div>
91
+
92
+
93
+ </div>
94
+
95
+ <div id="method-list">
96
+ <h3 class="section-bar">Methods</h3>
97
+
98
+ <div class="name-list">
99
+ <a href="#M000492">execute</a>&nbsp;&nbsp;
100
+ </div>
101
+ </div>
102
+
103
+ </div>
104
+
105
+
106
+ <!-- if includes -->
107
+
108
+ <div id="section">
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+ <!-- if method_list -->
118
+ <div id="methods">
119
+ <h3 class="section-bar">Public Instance methods</h3>
120
+
121
+ <div id="method-M000492" class="method-detail">
122
+ <a name="M000492"></a>
123
+
124
+ <div class="method-heading">
125
+ <a href="#M000492" class="method-signature">
126
+ <span class="method-name">execute</span><span class="method-args">(state)</span>
127
+ </a>
128
+ </div>
129
+
130
+ <div class="method-description">
131
+ <p>
132
+ Outputs the argument using exponential floating-point format. The full form
133
+ is
134
+ </p>
135
+ <pre>
136
+ ~w,d,e,k,overflowchar,padchar,exponentchar@E
137
+ </pre>
138
+ <p>
139
+ with the following interpretations
140
+ </p>
141
+ <dl>
142
+ <dt><tt>w</tt> (<tt>nil</tt>)</dt><dd>if non-<tt>nil</tt>, the output will be exactly <tt>w</tt> characters long,
143
+
144
+ </dd>
145
+ <dt><tt>d</tt> (<tt>nil</tt>)</dt><dd>if non-<tt>nil</tt>, this is the number of digits output after the decimal
146
+ point (<tt>.</tt>),
147
+
148
+ </dd>
149
+ <dt><tt>e</tt> (<tt>nil</tt>)</dt><dd>if non-<tt>nil</tt>, the exponent part of the output will be exactly
150
+ <tt>e</tt> characters long,
151
+
152
+ </dd>
153
+ <dt><tt>k</tt> (1)</dt><dd>scaling factor - the number is first scaled using this value,
154
+
155
+ </dd>
156
+ <dt><tt>overflowchar</tt> (<tt>nil</tt>)</dt><dd>if non-<tt>nil</tt>, this character is used when this directive would
157
+ produce output longer than that specified with the <tt>w</tt> directive,
158
+
159
+ </dd>
160
+ <dt><tt>padchar</tt> (?\s)</dt><dd>character to pad with if <tt>w</tt> is non-nil and output isn&#8217;t wide
161
+ enough yet,
162
+
163
+ </dd>
164
+ <dt><tt>exponentchar</tt> (?e)</dt><dd>character to use for exponent divider,
165
+
166
+ </dd>
167
+ <dt>@</dt><dd>numbers are always output with sign prepended.
168
+
169
+ </dd>
170
+ </dl>
171
+ <p>
172
+ An <a href="../ArgumentError.html">ArgumentError</a> is raised if the
173
+ argument is not a number or a string that can be converted to a number.
174
+ </p>
175
+ <p><a class="source-toggle" href="#"
176
+ onclick="toggleCode('M000492-source');return false;">[Source]</a></p>
177
+ <div class="method-source-code" id="M000492-source">
178
+ <pre>
179
+ <span class="ruby-comment cmt"># File lib/carat/lisp-format.rb, line 1065</span>
180
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">execute</span>(<span class="ruby-identifier">state</span>)
181
+ <span class="ruby-identifier">width</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">state</span>, <span class="ruby-keyword kw">nil</span>)
182
+ <span class="ruby-identifier">digits</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">state</span>, <span class="ruby-keyword kw">nil</span>)
183
+ <span class="ruby-identifier">edigits</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">2</span>, <span class="ruby-identifier">state</span>, <span class="ruby-keyword kw">nil</span>)
184
+ <span class="ruby-identifier">scale</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">3</span>, <span class="ruby-identifier">state</span>, <span class="ruby-value">1</span>)
185
+ <span class="ruby-identifier">overflowchar</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">4</span>, <span class="ruby-identifier">state</span>, <span class="ruby-keyword kw">nil</span>)
186
+ <span class="ruby-identifier">padchar</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">5</span>, <span class="ruby-identifier">state</span>, <span class="ruby-value">?\s</span>).<span class="ruby-identifier">chr</span>
187
+ <span class="ruby-identifier">exponentchar</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">6</span>, <span class="ruby-identifier">state</span>, <span class="ruby-value">?e</span>).<span class="ruby-identifier">chr</span>
188
+ <span class="ruby-identifier">arg</span> = <span class="ruby-identifier">state</span>.<span class="ruby-identifier">next_arg</span>
189
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_f</span>
190
+ <span class="ruby-identifier">num</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">to_f</span>
191
+ <span class="ruby-identifier">sign</span> = (<span class="ruby-identifier">num</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">at_mod?</span>) <span class="ruby-operator">?</span> <span class="ruby-value str">'+'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>
192
+ <span class="ruby-identifier">exp</span> = <span class="ruby-constant">Math</span>.<span class="ruby-identifier">log10</span>(<span class="ruby-identifier">num</span>.<span class="ruby-identifier">abs</span>).<span class="ruby-identifier">floor</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">scale</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
193
+ <span class="ruby-identifier">exp_str</span> = <span class="ruby-identifier">exponentchar</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">exp</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'+'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'-'</span>) <span class="ruby-operator">+</span>
194
+ (<span class="ruby-identifier">edigits</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-identifier">exp</span>.<span class="ruby-identifier">abs</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">exp</span>.<span class="ruby-identifier">abs</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">rjust</span>(<span class="ruby-identifier">edigits</span>, <span class="ruby-value str">'0'</span>))
195
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">digits</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">width</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">edigits</span>.<span class="ruby-identifier">nil?</span>
196
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">sign</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">num</span> <span class="ruby-operator">*</span> (<span class="ruby-value">10</span> <span class="ruby-operator">**</span> <span class="ruby-operator">-</span><span class="ruby-identifier">exp</span>)).<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">exp_str</span>
197
+ <span class="ruby-keyword kw">else</span>
198
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">digits</span>.<span class="ruby-identifier">nil?</span>
199
+ <span class="ruby-identifier">prec</span> = <span class="ruby-identifier">width</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">sign</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span>
200
+ ((<span class="ruby-identifier">num</span> <span class="ruby-operator">*</span> (<span class="ruby-value">10</span> <span class="ruby-operator">**</span> <span class="ruby-operator">-</span><span class="ruby-identifier">exp</span>)).<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">index</span>(<span class="ruby-regexp re">/\./</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>) <span class="ruby-operator">-</span> <span class="ruby-identifier">exp_str</span>.<span class="ruby-identifier">length</span>
201
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">sign</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-node">&quot;%#.#{prec}f&quot;</span>, <span class="ruby-identifier">num</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">exp_str</span>
202
+ <span class="ruby-keyword kw">else</span>
203
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scale</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
204
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scale</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">digits</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>
205
+ <span class="ruby-identifier">prec</span> = <span class="ruby-identifier">digits</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">scale</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
206
+ <span class="ruby-keyword kw">else</span>
207
+ <span class="ruby-identifier">param_error</span> <span class="ruby-value">3</span>, <span class="ruby-value str">'scale must be &lt; digits + 2'</span>
208
+ <span class="ruby-keyword kw">end</span>
209
+ <span class="ruby-keyword kw">else</span>
210
+ <span class="ruby-identifier">prec</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">scale</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">digits</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">scale</span>)
211
+ <span class="ruby-keyword kw">end</span>
212
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">sign</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-node">&quot;%#.#{prec}f&quot;</span>, <span class="ruby-identifier">num</span> <span class="ruby-operator">*</span> (<span class="ruby-value">10</span><span class="ruby-operator">**</span><span class="ruby-operator">-</span><span class="ruby-identifier">exp</span>)) <span class="ruby-operator">+</span> <span class="ruby-identifier">exp_str</span>
213
+ <span class="ruby-keyword kw">end</span>
214
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">width</span>.<span class="ruby-identifier">nil?</span>
215
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scale</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">width</span>
216
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/^([+-]?)0\./</span>, <span class="ruby-value str">'\1.'</span>)
217
+ <span class="ruby-keyword kw">end</span>
218
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">rjust</span>(<span class="ruby-identifier">width</span>, <span class="ruby-identifier">padchar</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">width</span>
219
+ <span class="ruby-keyword kw">end</span>
220
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">width</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">overflowchar</span>.<span class="ruby-identifier">nil?</span>
221
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">edigits</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> (<span class="ruby-identifier">exp_str</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">edigits</span>
222
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">overflowchar</span>.<span class="ruby-identifier">chr</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">width</span>
223
+ <span class="ruby-keyword kw">end</span>
224
+ <span class="ruby-keyword kw">end</span>
225
+ <span class="ruby-keyword kw">end</span>
226
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">output</span> <span class="ruby-identifier">str</span>
227
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_int</span>
228
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">push_back_arg</span>
229
+ <span class="ruby-identifier">parameters</span> = <span class="ruby-ivar">@params</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span>[] <span class="ruby-operator">:</span> [<span class="ruby-ivar">@params</span>[<span class="ruby-value">0</span>]]
230
+ <span class="ruby-constant">Factory</span>.<span class="ruby-identifier">build</span>(<span class="ruby-identifier">parameters</span>, [], <span class="ruby-value">?D</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@pos</span>).<span class="ruby-identifier">execute</span>(<span class="ruby-identifier">state</span>)
231
+ <span class="ruby-keyword kw">else</span>
232
+ <span class="ruby-identifier">arg_error</span> <span class="ruby-value str">'argument is not a number or a number string'</span>
233
+ <span class="ruby-keyword kw">end</span>
234
+ <span class="ruby-keyword kw">end</span>
235
+ </pre>
236
+ </div>
237
+ </div>
238
+ </div>
239
+
240
+
241
+ </div>
242
+
243
+
244
+ </div>
245
+
246
+
247
+ <div id="validator-badges">
248
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
249
+ </div>
250
+
251
+ </body>
252
+ </html>
@@ -0,0 +1,224 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Lisp::Format::Directives::FFFP</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Lisp::Format::Directives::FFFP</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../../files/lib/carat/lisp-format_rb.html">
59
+ lib/carat/lisp-format.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="Directive.html">
69
+ Directive
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ Represents the ~F (Fixed-format floating-point) directive. This outputs
86
+ floating point values with various kinds of padding and such.
87
+ </p>
88
+
89
+ </div>
90
+
91
+
92
+ </div>
93
+
94
+ <div id="method-list">
95
+ <h3 class="section-bar">Methods</h3>
96
+
97
+ <div class="name-list">
98
+ <a href="#M000476">execute</a>&nbsp;&nbsp;
99
+ </div>
100
+ </div>
101
+
102
+ </div>
103
+
104
+
105
+ <!-- if includes -->
106
+
107
+ <div id="section">
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+ <!-- if method_list -->
117
+ <div id="methods">
118
+ <h3 class="section-bar">Public Instance methods</h3>
119
+
120
+ <div id="method-M000476" class="method-detail">
121
+ <a name="M000476"></a>
122
+
123
+ <div class="method-heading">
124
+ <a href="#M000476" class="method-signature">
125
+ <span class="method-name">execute</span><span class="method-args">(state)</span>
126
+ </a>
127
+ </div>
128
+
129
+ <div class="method-description">
130
+ <p>
131
+ Outputs the given argument using a floating-point representation. The full
132
+ form is
133
+ </p>
134
+ <pre>
135
+ ~w,d,k,overflowchar,padchar@F
136
+ </pre>
137
+ <p>
138
+ with the following interpretations
139
+ </p>
140
+ <dl>
141
+ <dt><tt>w</tt> (<tt>nil</tt>)</dt><dd>if non-<tt>nil</tt>, the output will be exactly <tt>w</tt> characters long,
142
+
143
+ </dd>
144
+ <dt><tt>d</tt> (<tt>nil</tt>)</dt><dd>if non-<tt>nil</tt>, this is the number of digits output after the decimal
145
+ point (<tt>.</tt>),
146
+
147
+ </dd>
148
+ <dt><tt>k</tt> (0)</dt><dd>scaling factor - the number is first scaled using this value,
149
+
150
+ </dd>
151
+ <dt><tt>overflowchar</tt> (<tt>nil</tt>)</dt><dd>if non-<tt>nil</tt>, this character is used when this directive would
152
+ produce output longer than that specified with the <tt>w</tt> directive,
153
+
154
+ </dd>
155
+ <dt><tt>padchar</tt> (?\s)</dt><dd>character to pad with if <tt>w</tt> is non-nil and output isn&#8217;t wide
156
+ enough yet,
157
+
158
+ </dd>
159
+ <dt>@</dt><dd>numbers are always output with sign prepended.
160
+
161
+ </dd>
162
+ </dl>
163
+ <p>
164
+ An <a href="../ArgumentError.html">ArgumentError</a> is raised if the
165
+ argument is not a number or a string that can be converted to a number.
166
+ </p>
167
+ <p><a class="source-toggle" href="#"
168
+ onclick="toggleCode('M000476-source');return false;">[Source]</a></p>
169
+ <div class="method-source-code" id="M000476-source">
170
+ <pre>
171
+ <span class="ruby-comment cmt"># File lib/carat/lisp-format.rb, line 996</span>
172
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">execute</span>(<span class="ruby-identifier">state</span>)
173
+ <span class="ruby-identifier">width</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">state</span>, <span class="ruby-keyword kw">nil</span>)
174
+ <span class="ruby-identifier">digits</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">state</span>, <span class="ruby-keyword kw">nil</span>)
175
+ <span class="ruby-identifier">scale</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">2</span>, <span class="ruby-identifier">state</span>, <span class="ruby-value">0</span>)
176
+ <span class="ruby-identifier">overflowchar</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">3</span>, <span class="ruby-identifier">state</span>, <span class="ruby-keyword kw">nil</span>)
177
+ <span class="ruby-identifier">padchar</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">4</span>, <span class="ruby-identifier">state</span>, <span class="ruby-value">?\s</span>)
178
+ <span class="ruby-identifier">arg</span> = <span class="ruby-identifier">state</span>.<span class="ruby-identifier">next_arg</span>
179
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_f</span>
180
+ <span class="ruby-identifier">num</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">*</span> (<span class="ruby-value">10</span> <span class="ruby-operator">**</span> <span class="ruby-identifier">scale</span>)
181
+ <span class="ruby-identifier">str</span> = (<span class="ruby-identifier">at_mod?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">num</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>) <span class="ruby-operator">?</span> <span class="ruby-value str">'+'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>
182
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">sign</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">digits</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-identifier">num</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-node">&quot;%.#{digits}f&quot;</span>,<span class="ruby-identifier">num</span>))
183
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">sign</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-node">&quot;%.#{$1}f&quot;</span>, <span class="ruby-identifier">num</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/e-([0-9]+)$/</span>
184
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">width</span>.<span class="ruby-identifier">nil?</span>
185
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">digits</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">width</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">digits</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
186
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/^([+-]?)0\./</span>, <span class="ruby-value str">'\1.'</span>)
187
+ <span class="ruby-keyword kw">end</span>
188
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">rjust</span>(<span class="ruby-identifier">width</span>, <span class="ruby-identifier">padchar</span>.<span class="ruby-identifier">chr</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">width</span>
189
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">width</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">digits</span>.<span class="ruby-identifier">nil?</span>
190
+ <span class="ruby-identifier">prec</span> = <span class="ruby-identifier">width</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">str</span>.<span class="ruby-identifier">index</span>(<span class="ruby-regexp re">/\./</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
191
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">sign</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-node">&quot;%#.#{prec}f&quot;</span>, <span class="ruby-identifier">num</span>)
192
+ <span class="ruby-keyword kw">end</span>
193
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.$/</span>, <span class="ruby-value str">''</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">width</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">digits</span>.<span class="ruby-identifier">nil?</span>
194
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">width</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">overflowchar</span>.<span class="ruby-identifier">nil?</span>
195
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">overflowchar</span>.<span class="ruby-identifier">chr</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">width</span>
196
+ <span class="ruby-keyword kw">end</span>
197
+ <span class="ruby-keyword kw">end</span>
198
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">output</span> <span class="ruby-identifier">str</span>
199
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_int</span>
200
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">push_back_arg</span>
201
+ <span class="ruby-identifier">parameters</span> = <span class="ruby-ivar">@params</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span>[] <span class="ruby-operator">:</span> [<span class="ruby-ivar">@params</span>[<span class="ruby-value">0</span>]]
202
+ <span class="ruby-constant">Factory</span>.<span class="ruby-identifier">build</span>(<span class="ruby-identifier">parameters</span>, [], <span class="ruby-value">?D</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@pos</span>).<span class="ruby-identifier">execute</span>(<span class="ruby-identifier">state</span>)
203
+ <span class="ruby-keyword kw">else</span>
204
+ <span class="ruby-identifier">arg_error</span> <span class="ruby-value str">'argument is not a number or a number string'</span>
205
+ <span class="ruby-keyword kw">end</span>
206
+ <span class="ruby-keyword kw">end</span>
207
+ </pre>
208
+ </div>
209
+ </div>
210
+ </div>
211
+
212
+
213
+ </div>
214
+
215
+
216
+ </div>
217
+
218
+
219
+ <div id="validator-badges">
220
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
221
+ </div>
222
+
223
+ </body>
224
+ </html>