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.
- data/ChangeLog +2 -0
- data/LICENSE +5 -0
- data/README +67 -0
- data/Reapfile +72 -0
- data/ToDo +24 -0
- data/bench/b_harray.rb +49 -0
- data/bench/b_range.rb +64 -0
- data/demo/ansicolor/cdiff.rb +20 -0
- data/demo/ansicolor/example.rb +82 -0
- data/demo/io-reactor/chatserver.rb +347 -0
- data/doc/classes/Array.html +172 -0
- data/doc/classes/BBCode.html +638 -0
- data/doc/classes/BinaryReader.html +675 -0
- data/doc/classes/Binding.html +223 -0
- data/doc/classes/ByteOrder.html +284 -0
- data/doc/classes/Class.html +189 -0
- data/doc/classes/Constant.html +785 -0
- data/doc/classes/Constant/CGS.html +609 -0
- data/doc/classes/Continuation.html +113 -0
- data/doc/classes/Coroutine.html +387 -0
- data/doc/classes/CountingSemaphore.html +337 -0
- data/doc/classes/CrossCase.html +561 -0
- data/doc/classes/DynamicMixin.html +185 -0
- data/doc/classes/EnumerableWithArgs.html +550 -0
- data/doc/classes/Expect.html +428 -0
- data/doc/classes/Expect/DefaultChain.html +113 -0
- data/doc/classes/Expect/SeparatedPattern.html +223 -0
- data/doc/classes/Expect/Timeout.html +167 -0
- data/doc/classes/Expect/UnmatchedMessage.html +160 -0
- data/doc/classes/FileList.html +833 -0
- data/doc/classes/FloatString.html +534 -0
- data/doc/classes/Functor.html +211 -0
- data/doc/classes/HArray.html +1872 -0
- data/doc/classes/HTML.html +328 -0
- data/doc/classes/Heap.html +683 -0
- data/doc/classes/Heap/EmptyHeapException.html +111 -0
- data/doc/classes/Heap/Max.html +176 -0
- data/doc/classes/Heap/Min.html +176 -0
- data/doc/classes/IO.html +108 -0
- data/doc/classes/IO/Reactor.html +790 -0
- data/doc/classes/IO/Redirect.html +289 -0
- data/doc/classes/Infinity.html +320 -0
- data/doc/classes/Interval.html +1014 -0
- data/doc/classes/InvalidNackError.html +161 -0
- data/doc/classes/Kernel.html +204 -0
- data/doc/classes/Lisp.html +1132 -0
- data/doc/classes/Lisp/DottedPair.html +379 -0
- data/doc/classes/Lisp/Format.html +178 -0
- data/doc/classes/Lisp/Format/ArgumentError.html +126 -0
- data/doc/classes/Lisp/Format/Directives.html +155 -0
- data/doc/classes/Lisp/Format/Directives/ArgJump.html +178 -0
- data/doc/classes/Lisp/Format/Directives/Ascii.html +119 -0
- data/doc/classes/Lisp/Format/Directives/BeginCaseConversion.html +185 -0
- data/doc/classes/Lisp/Format/Directives/BeginConditional.html +307 -0
- data/doc/classes/Lisp/Format/Directives/BeginIteration.html +338 -0
- data/doc/classes/Lisp/Format/Directives/Binary.html +157 -0
- data/doc/classes/Lisp/Format/Directives/Character.html +228 -0
- data/doc/classes/Lisp/Format/Directives/CharacterDirective.html +203 -0
- data/doc/classes/Lisp/Format/Directives/ClauseSeparator.html +166 -0
- data/doc/classes/Lisp/Format/Directives/Decimal.html +119 -0
- data/doc/classes/Lisp/Format/Directives/Directive.html +397 -0
- data/doc/classes/Lisp/Format/Directives/DollarFP.html +205 -0
- data/doc/classes/Lisp/Format/Directives/EndCaseConversion.html +174 -0
- data/doc/classes/Lisp/Format/Directives/EndConditional.html +159 -0
- data/doc/classes/Lisp/Format/Directives/EndIteration.html +163 -0
- data/doc/classes/Lisp/Format/Directives/ExpFP.html +252 -0
- data/doc/classes/Lisp/Format/Directives/FFFP.html +224 -0
- data/doc/classes/Lisp/Format/Directives/Factory.html +180 -0
- data/doc/classes/Lisp/Format/Directives/FreshLine.html +175 -0
- data/doc/classes/Lisp/Format/Directives/GeneralFP.html +265 -0
- data/doc/classes/Lisp/Format/Directives/Hexadecimal.html +157 -0
- data/doc/classes/Lisp/Format/Directives/Indirection.html +183 -0
- data/doc/classes/Lisp/Format/Directives/Literal.html +187 -0
- data/doc/classes/Lisp/Format/Directives/NewLine.html +158 -0
- data/doc/classes/Lisp/Format/Directives/NewPage.html +158 -0
- data/doc/classes/Lisp/Format/Directives/Number.html +243 -0
- data/doc/classes/Lisp/Format/Directives/Octal.html +157 -0
- data/doc/classes/Lisp/Format/Directives/Plural.html +177 -0
- data/doc/classes/Lisp/Format/Directives/Print.html +237 -0
- data/doc/classes/Lisp/Format/Directives/Radix.html +432 -0
- data/doc/classes/Lisp/Format/Directives/SExpression.html +157 -0
- data/doc/classes/Lisp/Format/Directives/SkipWhitespace.html +165 -0
- data/doc/classes/Lisp/Format/Directives/Tabulate.html +198 -0
- data/doc/classes/Lisp/Format/Directives/Tilde.html +158 -0
- data/doc/classes/Lisp/Format/Directives/UnknownDirectiveError.html +117 -0
- data/doc/classes/Lisp/Format/Formatter.html +193 -0
- data/doc/classes/Lisp/Format/IncompleteParameterError.html +119 -0
- data/doc/classes/Lisp/Format/IndexError.html +126 -0
- data/doc/classes/Lisp/Format/Lexer.html +479 -0
- data/doc/classes/Lisp/Format/MalformedError.html +119 -0
- data/doc/classes/Lisp/Format/MissingParameterError.html +119 -0
- data/doc/classes/Lisp/Format/ModifierError.html +119 -0
- data/doc/classes/Lisp/Format/Output.html +239 -0
- data/doc/classes/Lisp/Format/ParameterError.html +126 -0
- data/doc/classes/Lisp/Format/Parameters.html +123 -0
- data/doc/classes/Lisp/Format/Parameters/Argument.html +172 -0
- data/doc/classes/Lisp/Format/Parameters/ArgumentCount.html +159 -0
- data/doc/classes/Lisp/Format/Parameters/Character.html +119 -0
- data/doc/classes/Lisp/Format/Parameters/Default.html +120 -0
- data/doc/classes/Lisp/Format/Parameters/Integer.html +119 -0
- data/doc/classes/Lisp/Format/Parameters/Parameter.html +206 -0
- data/doc/classes/Lisp/Format/Parser.html +212 -0
- data/doc/classes/Lisp/Format/Positioned.html +166 -0
- data/doc/classes/Lisp/Format/State.html +455 -0
- data/doc/classes/Lisp/Format/SyntaxError.html +126 -0
- data/doc/classes/Method.html +274 -0
- data/doc/classes/Method/DuckHunter.html +281 -0
- data/doc/classes/Module.html +709 -0
- data/doc/classes/Multiton.html +284 -0
- data/doc/classes/Multiton/New.html +164 -0
- data/doc/classes/Multiton/Semi.html +155 -0
- data/doc/classes/NackClass.html +322 -0
- data/doc/classes/NilClass.html +231 -0
- data/doc/classes/NilComparable.html +179 -0
- data/doc/classes/NotCopyable.html +273 -0
- data/doc/classes/Object.html +261 -0
- data/doc/classes/OpenStructable.html +346 -0
- data/doc/classes/OrderedHash.html +939 -0
- data/doc/classes/Parser.html +515 -0
- data/doc/classes/Parser/Main.html +178 -0
- data/doc/classes/Parser/Marker.html +475 -0
- data/doc/classes/Parser/Registry.html +354 -0
- data/doc/classes/Parser/Token.html +399 -0
- data/doc/classes/Parser/UnitToken.html +222 -0
- data/doc/classes/Ref.html +230 -0
- data/doc/classes/SimpleStringIO.html +183 -0
- data/doc/classes/StaticHash.html +202 -0
- data/doc/classes/String.html +172 -0
- data/doc/classes/Struct.html +181 -0
- data/doc/classes/SuperStruct.html +382 -0
- data/doc/classes/Term.html +156 -0
- data/doc/classes/Term/ANSIColor.html +185 -0
- data/doc/classes/Text.html +138 -0
- data/doc/classes/Text/Soundex.html +222 -0
- data/doc/classes/TextTagIterator.html +911 -0
- data/doc/classes/Time.html +119 -0
- data/doc/classes/Time/Limit.html +303 -0
- data/doc/classes/Time/Limit/Dummy.html +181 -0
- data/doc/classes/Timer.html +351 -0
- data/doc/classes/TracePoint.html +532 -0
- data/doc/classes/Tuple.html +178 -0
- data/doc/classes/Uninheritable.html +213 -0
- data/doc/classes/Version.html +783 -0
- data/doc/created.rid +1 -0
- data/doc/files/LICENSE.html +113 -0
- data/doc/files/README.html +201 -0
- data/doc/files/lib/carat/1st_rb.html +107 -0
- data/doc/files/lib/carat/ansicolor_rb.html +146 -0
- data/doc/files/lib/carat/attr_rb.html +101 -0
- data/doc/files/lib/carat/bbcode_rb.html +152 -0
- data/doc/files/lib/carat/binaryreader_rb.html +114 -0
- data/doc/files/lib/carat/binding-of-caller_rb.html +108 -0
- data/doc/files/lib/carat/byteorder_rb.html +107 -0
- data/doc/files/lib/carat/constant_rb.html +167 -0
- data/doc/files/lib/carat/coroutine_rb.html +156 -0
- data/doc/files/lib/carat/crosscase_rb.html +224 -0
- data/doc/files/lib/carat/duckhunter_rb.html +165 -0
- data/doc/files/lib/carat/dynamic-mixin_rb.html +101 -0
- data/doc/files/lib/carat/enumerable-args_rb.html +140 -0
- data/doc/files/lib/carat/expect_rb.html +137 -0
- data/doc/files/lib/carat/filelist_rb.html +130 -0
- data/doc/files/lib/carat/floatstring_rb.html +126 -0
- data/doc/files/lib/carat/functor_rb.html +140 -0
- data/doc/files/lib/carat/harray_rb.html +128 -0
- data/doc/files/lib/carat/heap_rb.html +154 -0
- data/doc/files/lib/carat/html-helpers_rb.html +116 -0
- data/doc/files/lib/carat/infinity_rb.html +142 -0
- data/doc/files/lib/carat/init_rb.html +127 -0
- data/doc/files/lib/carat/interval_rb.html +162 -0
- data/doc/files/lib/carat/io-reactor_rb.html +211 -0
- data/doc/files/lib/carat/io-redirect_rb.html +132 -0
- data/doc/files/lib/carat/lisp-format_rb.html +187 -0
- data/doc/files/lib/carat/lisp_rb.html +152 -0
- data/doc/files/lib/carat/macro_rb.html +129 -0
- data/doc/files/lib/carat/multiton_rb.html +178 -0
- data/doc/files/lib/carat/nack_rb.html +193 -0
- data/doc/files/lib/carat/nil-comparable_rb.html +126 -0
- data/doc/files/lib/carat/nil-missing_rb.html +101 -0
- data/doc/files/lib/carat/notcopyable_rb.html +166 -0
- data/doc/files/lib/carat/orderedhash_rb.html +107 -0
- data/doc/files/lib/carat/ostructable_rb.html +157 -0
- data/doc/files/lib/carat/parser-old_rb.html +239 -0
- data/doc/files/lib/carat/parser_rb.html +244 -0
- data/doc/files/lib/carat/ref_rb.html +107 -0
- data/doc/files/lib/carat/semaphore_rb.html +132 -0
- data/doc/files/lib/carat/snapshot_rb.html +152 -0
- data/doc/files/lib/carat/soundex_rb.html +128 -0
- data/doc/files/lib/carat/sstruct_rb.html +142 -0
- data/doc/files/lib/carat/statichash_rb.html +150 -0
- data/doc/files/lib/carat/tagiter_rb.html +236 -0
- data/doc/files/lib/carat/timelimit_rb.html +136 -0
- data/doc/files/lib/carat/timer_rb.html +153 -0
- data/doc/files/lib/carat/tracepoint_rb.html +160 -0
- data/doc/files/lib/carat/tuple_rb.html +123 -0
- data/doc/files/lib/carat/uninheritable_rb.html +101 -0
- data/doc/files/lib/carat/version_rb.html +141 -0
- data/doc/fr_class_index.html +159 -0
- data/doc/fr_file_index.html +78 -0
- data/doc/fr_method_index.html +663 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/lib/carat-dev/README +11 -0
- data/lib/carat-dev/access-blocks/access_blocks.rb +42 -0
- data/lib/carat-dev/association/association.rb +70 -0
- data/lib/carat-dev/blankslate/blankslate.rb +51 -0
- data/lib/carat-dev/breakpoint.rb +518 -0
- data/lib/carat-dev/class-constructor/constructor_methods.rb +78 -0
- data/lib/carat-dev/class-constructor/tc_constructor.rb +35 -0
- data/lib/carat-dev/closecall/closecall-test.rb +39 -0
- data/lib/carat-dev/closecall/closecall.rb +101 -0
- data/lib/carat-dev/commandrunner/commandrunner.rb +100 -0
- data/lib/carat-dev/conditional/conditionals.rb +106 -0
- data/lib/carat-dev/daemon/daemon.rb +70 -0
- data/lib/carat-dev/detach/detach.rb +363 -0
- data/lib/carat-dev/detach/tc_detach.rb +57 -0
- data/lib/carat-dev/import-module/import-module-0.81.tar.gz +0 -0
- data/lib/carat-dev/import-module/import-module-0.81/LICENSE +1 -0
- data/lib/carat-dev/import-module/import-module-0.81/Makefile +11 -0
- data/lib/carat-dev/import-module/import-module-0.81/README +4 -0
- data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-hash.rb +49 -0
- data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-pip.rb +71 -0
- data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-unbound-method.rb +36 -0
- data/lib/carat-dev/import-module/import-module-0.81/doc/README-ja.html +293 -0
- data/lib/carat-dev/import-module/import-module-0.81/doc/README-ja.rd +306 -0
- data/lib/carat-dev/import-module/import-module-0.81/doc/README.html +290 -0
- data/lib/carat-dev/import-module/import-module-0.81/doc/README.rd +303 -0
- data/lib/carat-dev/import-module/import-module-0.81/doc/style.css +85 -0
- data/lib/carat-dev/import-module/import-module-0.81/install.rb +99 -0
- data/lib/carat-dev/import-module/import-module-0.81/lib/import-module-single-thread.rb +84 -0
- data/lib/carat-dev/import-module/import-module-0.81/lib/import-module.rb +493 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/Makefile +2 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test +91 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test-import-module.rb +936 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test-import_scope.rb +33 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test-scope_import.rb +33 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test-time.rb +184 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/test.sh +91 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/time.rb +135 -0
- data/lib/carat-dev/import-module/import-module-0.81/test/times-do.sh +10 -0
- data/lib/carat-dev/interface_work/SCRAP/i-contracts.rb +37 -0
- data/lib/carat-dev/interface_work/SCRAP/interface.rb +105 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0.zip +0 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/CHANGES +3 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/MANIFEST +15 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/README +32 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/doc/interface.rd +73 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/doc/interface.txt +94 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/install.rb +16 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/lib/interface.rb +50 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/tc_interface.rb +51 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test.rb +29 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_instance.rb +24 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_sub.rb +29 -0
- data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_unrequire.rb +28 -0
- data/lib/carat-dev/interface_work/contracts/contract.zip +0 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.html +376 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000001.html +23 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000002.html +18 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000003.html +19 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000004.html +29 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000005.html +18 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000006.html +18 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractError.html +142 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractException.html +153 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractMismatch.html +125 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Module.html +157 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Module.src/M000007.html +112 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/created.rid +1 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/assertions_rb.html +109 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/exception_rb.html +108 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/integration_rb.html +108 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/overrides_rb.html +109 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract_rb.html +114 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/fr_class_index.html +31 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/fr_file_index.html +31 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/fr_method_index.html +33 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/index.html +24 -0
- data/lib/carat-dev/interface_work/contracts/contract/doc/rdoc-style.css +208 -0
- data/lib/carat-dev/interface_work/contracts/contract/lib/contract.rb +88 -0
- data/lib/carat-dev/interface_work/contracts/contract/lib/contract/assertions.rb +37 -0
- data/lib/carat-dev/interface_work/contracts/contract/lib/contract/exception.rb +92 -0
- data/lib/carat-dev/interface_work/contracts/contract/lib/contract/integration.rb +132 -0
- data/lib/carat-dev/interface_work/contracts/contract/lib/contract/overrides.rb +32 -0
- data/lib/carat-dev/interface_work/must.rb +37 -0
- data/lib/carat-dev/interface_work/type.rb +232 -0
- data/lib/carat-dev/main/tc_toplevel.rb +23 -0
- data/lib/carat-dev/main/toplevel.rb +33 -0
- data/lib/carat-dev/main/toplevel_test.rb +24 -0
- data/lib/carat-dev/misc/1.rb +40 -0
- data/lib/carat-dev/misc/misc.rb +44 -0
- data/lib/carat-dev/misc/sys.rb +186 -0
- data/lib/carat-dev/misc/temp.rb +1 -0
- data/lib/carat-dev/misc/utils.rb +518 -0
- data/lib/carat-dev/predicate/predicate.rb +109 -0
- data/lib/carat-dev/predicate/predicate_test.rb +67 -0
- data/lib/carat-dev/premshree.rb +40 -0
- data/lib/carat-dev/priority-queue/pqueue.rb +183 -0
- data/lib/carat-dev/priority-queue/priorityqueue.rb +84 -0
- data/lib/carat-dev/quaternion/quaternion.rb +529 -0
- data/lib/carat-dev/range.rb +259 -0
- data/lib/carat-dev/system/rubyinfo.rb +75 -0
- data/lib/carat-dev/system/system.rb +105 -0
- data/lib/carat-dev/tc_range.rb +118 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.html +291 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000001.html +26 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000002.html +19 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000003.html +18 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000004.html +18 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000005.html +21 -0
- data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000006.html +23 -0
- data/lib/carat-dev/timer/timer-doc/created.rid +1 -0
- data/lib/carat-dev/timer/timer-doc/files/timer_rb.html +144 -0
- data/lib/carat-dev/timer/timer-doc/fr_class_index.html +27 -0
- data/lib/carat-dev/timer/timer-doc/fr_file_index.html +27 -0
- data/lib/carat-dev/timer/timer-doc/fr_method_index.html +32 -0
- data/lib/carat-dev/timer/timer-doc/index.html +24 -0
- data/lib/carat-dev/timer/timer-doc/rdoc-style.css +208 -0
- data/lib/carat-dev/timer/timer.rb +160 -0
- data/lib/carat-dev/vars/vars.rb +62 -0
- data/lib/carat/1st.rb +58 -0
- data/lib/carat/ansicolor.rb +122 -0
- data/lib/carat/attr.rb +342 -0
- data/lib/carat/bbcode.rb +352 -0
- data/lib/carat/binaryreader.rb +170 -0
- data/lib/carat/binding-of-caller.rb +83 -0
- data/lib/carat/byteorder.rb +34 -0
- data/lib/carat/constant.rb +287 -0
- data/lib/carat/coroutine.rb +102 -0
- data/lib/carat/crosscase.rb +309 -0
- data/lib/carat/duckhunter.rb +158 -0
- data/lib/carat/dynamic-mixin.rb +71 -0
- data/lib/carat/enumerable-args.rb +125 -0
- data/lib/carat/expect.rb +192 -0
- data/lib/carat/filelist.rb +277 -0
- data/lib/carat/floatstring.rb +153 -0
- data/lib/carat/functor.rb +41 -0
- data/lib/carat/harray.rb +507 -0
- data/lib/carat/heap.rb +193 -0
- data/lib/carat/html-helpers.rb +82 -0
- data/lib/carat/infinity.rb +61 -0
- data/lib/carat/init.rb +33 -0
- data/lib/carat/interval.rb +248 -0
- data/lib/carat/io-reactor.rb +657 -0
- data/lib/carat/io-redirect.rb +99 -0
- data/lib/carat/lisp-format.rb +1832 -0
- data/lib/carat/lisp.rb +336 -0
- data/lib/carat/macro.rb +68 -0
- data/lib/carat/multiton.rb +153 -0
- data/lib/carat/nack.rb +115 -0
- data/lib/carat/nil-comparable.rb +67 -0
- data/lib/carat/nil-missing.rb +12 -0
- data/lib/carat/notcopyable.rb +68 -0
- data/lib/carat/orderedhash.rb +249 -0
- data/lib/carat/ostructable.rb +138 -0
- data/lib/carat/parser-old.rb +350 -0
- data/lib/carat/parser.rb +393 -0
- data/lib/carat/ref.rb +31 -0
- data/lib/carat/semaphore.rb +69 -0
- data/lib/carat/snapshot.rb +94 -0
- data/lib/carat/soundex.rb +104 -0
- data/lib/carat/sstruct.rb +223 -0
- data/lib/carat/statichash.rb +49 -0
- data/lib/carat/tagiter.rb +345 -0
- data/lib/carat/timelimit.rb +114 -0
- data/lib/carat/timer.rb +99 -0
- data/lib/carat/tracepoint.rb +154 -0
- data/lib/carat/tuple.rb +31 -0
- data/lib/carat/uninheritable.rb +68 -0
- data/lib/carat/version.rb +147 -0
- data/pub/doc/sstruct.txt +204 -0
- data/pub/doc/tagiter.html +145 -0
- data/setup.rb +1361 -0
- data/test/fixtures/filelist/testfile.txt +1 -0
- data/test/fixtures/filelist/testfile2.txt +1 -0
- data/test/tc_1st.rb +16 -0
- data/test/tc_ansicolor.rb +23 -0
- data/test/tc_attr.rb +46 -0
- data/test/tc_bbcode.rb +20 -0
- data/test/tc_binaryreader.rb +14 -0
- data/test/tc_binding_of_caller.rb +2 -0
- data/test/tc_byteorder.rb +41 -0
- data/test/tc_constant.rb +12 -0
- data/test/tc_coroutine.rb +50 -0
- data/test/tc_crosscase.rb +33 -0
- data/test/tc_duckhunter.rb +37 -0
- data/test/tc_dynamic-mixin.rb +66 -0
- data/test/tc_enumerable-args.rb +66 -0
- data/test/tc_expect.rb +83 -0
- data/test/tc_filelist.rb +17 -0
- data/test/tc_floatstring.rb +22 -0
- data/test/tc_functor.rb +18 -0
- data/test/tc_harray.rb +280 -0
- data/test/tc_heap.rb +6 -0
- data/test/tc_infinity.rb +23 -0
- data/test/tc_init.rb +29 -0
- data/test/tc_interval.rb +153 -0
- data/test/tc_io-reactor.rb +5 -0
- data/test/tc_io-redirect.rb +5 -0
- data/test/tc_lisp-format.rb +24 -0
- data/test/tc_lisp.rb +32 -0
- data/test/tc_macro.rb +48 -0
- data/test/tc_multiton.rb +188 -0
- data/test/tc_nack.rb +31 -0
- data/test/tc_nil-as-emptiness.rb +19 -0
- data/test/tc_nil-comparable.rb +29 -0
- data/test/tc_nil-missing.rb +0 -0
- data/test/tc_notcopyable.rb +64 -0
- data/test/tc_orderedhash.rb +36 -0
- data/test/tc_ostructable.rb +31 -0
- data/test/tc_semaphore.rb +5 -0
- data/test/tc_snapshot.rb +20 -0
- data/test/tc_soundex.rb +19 -0
- data/test/tc_sstruct.rb +313 -0
- data/test/tc_statichash.rb +24 -0
- data/test/tc_tagiter.rb +80 -0
- data/test/tc_timelimit.rb +47 -0
- data/test/tc_timer.rb +35 -0
- data/test/tc_tracepoint.rb +10 -0
- data/test/tc_tuple.rb +25 -0
- data/test/tc_uninheritable.rb +33 -0
- data/test/tc_version.rb +90 -0
- metadata +531 -0
|
@@ -0,0 +1,180 @@
|
|
|
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::Factory</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::Factory</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="../../../Object.html">
|
|
69
|
+
Object
|
|
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
|
+
<a href="Factory.html">Factory</a> for directives. Formatting directives
|
|
86
|
+
should be created using singleton methods in this class.
|
|
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="#M000475">build</a>
|
|
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 Class methods</h3>
|
|
119
|
+
|
|
120
|
+
<div id="method-M000475" class="method-detail">
|
|
121
|
+
<a name="M000475"></a>
|
|
122
|
+
|
|
123
|
+
<div class="method-heading">
|
|
124
|
+
<a href="#M000475" class="method-signature">
|
|
125
|
+
<span class="method-name">build</span><span class="method-args">(params, modifiers, directive, top, pos)</span>
|
|
126
|
+
</a>
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
<div class="method-description">
|
|
130
|
+
<p>
|
|
131
|
+
Create a directive given a set of paramaters, modifiers, the character
|
|
132
|
+
representing the directive, possible owning directive, and position in the
|
|
133
|
+
format string.
|
|
134
|
+
</p>
|
|
135
|
+
<p><a class="source-toggle" href="#"
|
|
136
|
+
onclick="toggleCode('M000475-source');return false;">[Source]</a></p>
|
|
137
|
+
<div class="method-source-code" id="M000475-source">
|
|
138
|
+
<pre>
|
|
139
|
+
<span class="ruby-comment cmt"># File lib/carat/lisp-format.rb, line 1747</span>
|
|
140
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build</span>(<span class="ruby-identifier">params</span>, <span class="ruby-identifier">modifiers</span>, <span class="ruby-identifier">directive</span>, <span class="ruby-identifier">top</span>, <span class="ruby-identifier">pos</span>)
|
|
141
|
+
<span class="ruby-ivar">@@directives</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">directive</span> <span class="ruby-keyword kw">or</span>
|
|
142
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">UnknownDirectiveError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">pos</span>), <span class="ruby-value str">'unknown format directive'</span>
|
|
143
|
+
<span class="ruby-identifier">idx</span> = <span class="ruby-identifier">directive</span>.<span class="ruby-identifier">chr</span>.<span class="ruby-identifier">upcase</span>[<span class="ruby-value">0</span>]
|
|
144
|
+
<span class="ruby-identifier">params</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator"><=</span> <span class="ruby-ivar">@@directives</span>[<span class="ruby-identifier">idx</span>][<span class="ruby-value">1</span>] <span class="ruby-keyword kw">or</span>
|
|
145
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ParameterError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">pos</span>),
|
|
146
|
+
<span class="ruby-value str">'too many parameters given, expected no more than '</span> <span class="ruby-operator">+</span>
|
|
147
|
+
<span class="ruby-ivar">@@directives</span>[<span class="ruby-identifier">idx</span>][<span class="ruby-value">1</span>].<span class="ruby-identifier">to_s</span>
|
|
148
|
+
<span class="ruby-ivar">@@directives</span>[<span class="ruby-identifier">idx</span>][<span class="ruby-value">2</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">illegal</span><span class="ruby-operator">|</span>
|
|
149
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">illegal</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span> <span class="ruby-keyword kw">and</span> (<span class="ruby-identifier">modifiers</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">illegal</span> <span class="ruby-keyword kw">or</span>
|
|
150
|
+
<span class="ruby-identifier">modifiers</span>.<span class="ruby-identifier">reverse</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">illegal</span>)
|
|
151
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ModifierError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">pos</span>),
|
|
152
|
+
<span class="ruby-value str">'cannot specify both : and @ modifiers'</span>
|
|
153
|
+
<span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">modifiers</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">illegal</span>
|
|
154
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ModifierError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">pos</span>),
|
|
155
|
+
<span class="ruby-value str">'cannot specify the '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">chr</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'modifier'</span>
|
|
156
|
+
<span class="ruby-keyword kw">end</span>
|
|
157
|
+
<span class="ruby-keyword kw">end</span>
|
|
158
|
+
<span class="ruby-keyword kw">return</span> [
|
|
159
|
+
<span class="ruby-ivar">@@directives</span>[<span class="ruby-identifier">idx</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">new</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>),
|
|
160
|
+
<span class="ruby-ivar">@@directives</span>[<span class="ruby-identifier">idx</span>][<span class="ruby-value">3</span>]
|
|
161
|
+
]
|
|
162
|
+
<span class="ruby-keyword kw">end</span>
|
|
163
|
+
</pre>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
</div>
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
</div>
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
<div id="validator-badges">
|
|
176
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
177
|
+
</div>
|
|
178
|
+
|
|
179
|
+
</body>
|
|
180
|
+
</html>
|
|
@@ -0,0 +1,175 @@
|
|
|
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::FreshLine</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::FreshLine</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 ~% (Freshline) directive. This outputs a new-line (?\n)
|
|
86
|
+
character a given number of times, depending on if it is already at the
|
|
87
|
+
first output column or not.
|
|
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="#M000469">execute</a>
|
|
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-M000469" class="method-detail">
|
|
122
|
+
<a name="M000469"></a>
|
|
123
|
+
|
|
124
|
+
<div class="method-heading">
|
|
125
|
+
<a href="#M000469" 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 a new-line character a given number of times depending on if it is
|
|
133
|
+
already at the first output column or not. If it is it outputs it the given
|
|
134
|
+
number minus one (1). The full form is
|
|
135
|
+
</p>
|
|
136
|
+
<pre>
|
|
137
|
+
~n&
|
|
138
|
+
</pre>
|
|
139
|
+
<p>
|
|
140
|
+
with the following interpretations
|
|
141
|
+
</p>
|
|
142
|
+
<dl>
|
|
143
|
+
<dt><tt>n</tt> (1)</dt><dd>number of times to output the specific character (maybe minus one).
|
|
144
|
+
|
|
145
|
+
</dd>
|
|
146
|
+
</dl>
|
|
147
|
+
<p><a class="source-toggle" href="#"
|
|
148
|
+
onclick="toggleCode('M000469-source');return false;">[Source]</a></p>
|
|
149
|
+
<div class="method-source-code" id="M000469-source">
|
|
150
|
+
<pre>
|
|
151
|
+
<span class="ruby-comment cmt"># File lib/carat/lisp-format.rb, line 1304</span>
|
|
152
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">execute</span>(<span class="ruby-identifier">state</span>)
|
|
153
|
+
<span class="ruby-identifier">n</span> = <span class="ruby-identifier">param</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">state</span>, <span class="ruby-value">1</span>)
|
|
154
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">zero?</span>
|
|
155
|
+
<span class="ruby-identifier">state</span>.<span class="ruby-identifier">output</span>(<span class="ruby-value">?\n</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">_col</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
156
|
+
(<span class="ruby-identifier">n</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">output</span>(<span class="ruby-value">?\n</span>) <span class="ruby-keyword kw">end</span>
|
|
157
|
+
<span class="ruby-keyword kw">end</span>
|
|
158
|
+
</pre>
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
<div id="validator-badges">
|
|
171
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
172
|
+
</div>
|
|
173
|
+
|
|
174
|
+
</body>
|
|
175
|
+
</html>
|
|
@@ -0,0 +1,265 @@
|
|
|
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::GeneralFP</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::GeneralFP</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 ~G (General floating-point) directive. This outputs its
|
|
86
|
+
argument using either a format like ~F or ~E depending upon given
|
|
87
|
+
parameters and the magnitude of the argument.
|
|
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="#M000464">execute</a>
|
|
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-M000464" class="method-detail">
|
|
122
|
+
<a name="M000464"></a>
|
|
123
|
+
|
|
124
|
+
<div class="method-heading">
|
|
125
|
+
<a href="#M000464" 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 algorithm
|
|
133
|
+
to decide what format to use looks something like
|
|
134
|
+
</p>
|
|
135
|
+
<pre>
|
|
136
|
+
let
|
|
137
|
+
10^n-1 <= arg < 10^n, or n = 0 if arg = 0,
|
|
138
|
+
ee = e + 2, or ee = 4 if e undefined,
|
|
139
|
+
ww = w - ee, or ww = nil if w undefined,
|
|
140
|
+
dd = d - n, or dd = max(q, min(n, 7)) where q = number of
|
|
141
|
+
characters necessary to print arg without loss of information
|
|
142
|
+
in
|
|
143
|
+
0 <= dd <= d, and print using
|
|
144
|
+
~ww,dd,,overflowchar,padcharF~ee@T
|
|
145
|
+
or print using
|
|
146
|
+
~w,d,e,k,overflowchar,padchar,exponentcharG
|
|
147
|
+
</pre>
|
|
148
|
+
<p>
|
|
149
|
+
Use of the @ modifier in the directives above depends on if it was passed
|
|
150
|
+
to ~G in the first place.
|
|
151
|
+
</p>
|
|
152
|
+
<p>
|
|
153
|
+
The full form is
|
|
154
|
+
</p>
|
|
155
|
+
<pre>
|
|
156
|
+
~w,d,e,k,overflowchar,padchar,exponentchar@G
|
|
157
|
+
</pre>
|
|
158
|
+
<p>
|
|
159
|
+
with the following interpretations
|
|
160
|
+
</p>
|
|
161
|
+
<dl>
|
|
162
|
+
<dt><tt>w</tt> (<tt>nil</tt>)</dt><dd>if non-<tt>nil</tt>, the output will be exactly <tt>w</tt> characters long,
|
|
163
|
+
|
|
164
|
+
</dd>
|
|
165
|
+
<dt><tt>d</tt> (<tt>nil</tt>)</dt><dd>if non-<tt>nil</tt>, this is the number of digits output after the decimal
|
|
166
|
+
point (<tt>.</tt>),
|
|
167
|
+
|
|
168
|
+
</dd>
|
|
169
|
+
<dt><tt>e</tt> (<tt>nil</tt>)</dt><dd>if non-<tt>nil</tt>, the exponent part of the output will be exactly
|
|
170
|
+
<tt>e</tt> characters long,
|
|
171
|
+
|
|
172
|
+
</dd>
|
|
173
|
+
<dt><tt>k</tt> (1)</dt><dd>scaling factor - the number is first scaled using this value,
|
|
174
|
+
|
|
175
|
+
</dd>
|
|
176
|
+
<dt><tt>overflowchar</tt> (<tt>nil</tt>)</dt><dd>if non-<tt>nil</tt>, this character is used when this directive would
|
|
177
|
+
produce output longer than that specified with the <tt>w</tt> directive,
|
|
178
|
+
|
|
179
|
+
</dd>
|
|
180
|
+
<dt><tt>padchar</tt> (?\s)</dt><dd>character to pad with if <tt>w</tt> is non-nil and output isn’t wide
|
|
181
|
+
enough yet,
|
|
182
|
+
|
|
183
|
+
</dd>
|
|
184
|
+
<dt><tt>exponentchar</tt> (?e)</dt><dd>character to use for exponent divider,
|
|
185
|
+
|
|
186
|
+
</dd>
|
|
187
|
+
<dt>@</dt><dd>numbers are always output with sign prepended.
|
|
188
|
+
|
|
189
|
+
</dd>
|
|
190
|
+
</dl>
|
|
191
|
+
<p>
|
|
192
|
+
An <a href="../ArgumentError.html">ArgumentError</a> is raised if the
|
|
193
|
+
argument is not a number or a string that can be converted to a number.
|
|
194
|
+
</p>
|
|
195
|
+
<p><a class="source-toggle" href="#"
|
|
196
|
+
onclick="toggleCode('M000464-source');return false;">[Source]</a></p>
|
|
197
|
+
<div class="method-source-code" id="M000464-source">
|
|
198
|
+
<pre>
|
|
199
|
+
<span class="ruby-comment cmt"># File lib/carat/lisp-format.rb, line 1168</span>
|
|
200
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">execute</span>(<span class="ruby-identifier">state</span>)
|
|
201
|
+
<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>)
|
|
202
|
+
<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>)
|
|
203
|
+
<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>)
|
|
204
|
+
<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>)
|
|
205
|
+
<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>)
|
|
206
|
+
<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>)
|
|
207
|
+
<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-keyword kw">nil</span>)
|
|
208
|
+
<span class="ruby-identifier">arg</span> = <span class="ruby-identifier">state</span>.<span class="ruby-identifier">next_arg</span>
|
|
209
|
+
<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>
|
|
210
|
+
<span class="ruby-identifier">num</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">to_f</span>
|
|
211
|
+
<span class="ruby-identifier">n</span> = <span class="ruby-identifier">num</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span><span class="ruby-value">.0</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</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-value">1</span>
|
|
212
|
+
<span class="ruby-identifier">ee</span> = <span class="ruby-identifier">edigits</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-value">4</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">edigits</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>
|
|
213
|
+
<span class="ruby-identifier">ww</span> = <span class="ruby-identifier">w</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">w</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">ee</span>
|
|
214
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">nil?</span>
|
|
215
|
+
<span class="ruby-identifier">q</span> = <span class="ruby-identifier">num</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">length</span>
|
|
216
|
+
<span class="ruby-identifier">d</span> = <span class="ruby-constant">Math</span>.<span class="ruby-identifier">max</span>(<span class="ruby-identifier">q</span>, <span class="ruby-constant">Math</span>.<span class="ruby-identifier">min</span>(<span class="ruby-identifier">n</span>, <span class="ruby-value">7</span>))
|
|
217
|
+
<span class="ruby-keyword kw">end</span>
|
|
218
|
+
<span class="ruby-identifier">dd</span> = <span class="ruby-identifier">d</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">n</span>
|
|
219
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-value">0</span> <span class="ruby-operator"><=</span> <span class="ruby-identifier">dd</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">dd</span> <span class="ruby-operator"><=</span> <span class="ruby-identifier">d</span>
|
|
220
|
+
<span class="ruby-identifier">state</span>.<span class="ruby-identifier">push_back_arg</span>
|
|
221
|
+
<span class="ruby-identifier">parameters</span> = [
|
|
222
|
+
<span class="ruby-constant">Parameters</span><span class="ruby-operator">::</span><span class="ruby-constant">Integer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@pos</span>, <span class="ruby-identifier">ww</span>),
|
|
223
|
+
<span class="ruby-constant">Parameters</span><span class="ruby-operator">::</span><span class="ruby-constant">Integer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@pos</span>, <span class="ruby-identifier">dd</span>),
|
|
224
|
+
<span class="ruby-constant">Parameters</span><span class="ruby-operator">::</span><span class="ruby-constant">Default</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@pos</span>),
|
|
225
|
+
<span class="ruby-identifier">overflowchar</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">?
|
|
226
|
+
</span> <span class="ruby-constant">Parameters</span><span class="ruby-operator">::</span><span class="ruby-constant">Default</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@pos</span>) <span class="ruby-operator">:</span>
|
|
227
|
+
<span class="ruby-constant">Parameters</span><span class="ruby-operator">::</span><span class="ruby-constant">Character</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@pos</span>, <span class="ruby-identifier">overflowchar</span>),
|
|
228
|
+
<span class="ruby-identifier">padchar</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">?
|
|
229
|
+
</span> <span class="ruby-constant">Parameters</span><span class="ruby-operator">::</span><span class="ruby-constant">Default</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@pos</span>) <span class="ruby-operator">:</span>
|
|
230
|
+
<span class="ruby-constant">Parameters</span><span class="ruby-operator">::</span><span class="ruby-constant">Character</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@pos</span>, <span class="ruby-identifier">padchar</span>),
|
|
231
|
+
]
|
|
232
|
+
<span class="ruby-constant">Factory</span>.<span class="ruby-identifier">build</span>(<span class="ruby-identifier">parameters</span>, <span class="ruby-ivar">@modifiers</span>, <span class="ruby-value">?F</span>, <span class="ruby-keyword kw">nil</span>,
|
|
233
|
+
<span class="ruby-ivar">@pos</span>).<span class="ruby-identifier">execute</span>(<span class="ruby-identifier">state</span>)
|
|
234
|
+
<span class="ruby-constant">Factory</span>.<span class="ruby-identifier">build</span>([<span class="ruby-constant">Parameters</span><span class="ruby-operator">::</span><span class="ruby-constant">Integere</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@pos</span>, <span class="ruby-identifier">ee</span>)], <span class="ruby-ivar">@modifiers</span>,
|
|
235
|
+
<span class="ruby-value">?T</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>)
|
|
236
|
+
<span class="ruby-keyword kw">else</span>
|
|
237
|
+
<span class="ruby-identifier">state</span>.<span class="ruby-identifier">push_back_arg</span>
|
|
238
|
+
<span class="ruby-constant">Factory</span>.<span class="ruby-identifier">build</span>(<span class="ruby-ivar">@params</span>, <span class="ruby-ivar">@modifiers</span>, <span class="ruby-value">?E</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>)
|
|
239
|
+
<span class="ruby-keyword kw">end</span>
|
|
240
|
+
<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>
|
|
241
|
+
<span class="ruby-identifier">state</span>.<span class="ruby-identifier">push_back_arg</span>
|
|
242
|
+
<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>]]
|
|
243
|
+
<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>)
|
|
244
|
+
<span class="ruby-keyword kw">else</span>
|
|
245
|
+
<span class="ruby-identifier">arg_error</span> <span class="ruby-value str">'argument is not a number or a number string'</span>
|
|
246
|
+
<span class="ruby-keyword kw">end</span>
|
|
247
|
+
<span class="ruby-keyword kw">end</span>
|
|
248
|
+
</pre>
|
|
249
|
+
</div>
|
|
250
|
+
</div>
|
|
251
|
+
</div>
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
</div>
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
</div>
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
<div id="validator-badges">
|
|
261
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
262
|
+
</div>
|
|
263
|
+
|
|
264
|
+
</body>
|
|
265
|
+
</html>
|