]> gitweb.factorcode.org Git - factor.git/commitdiff
unicode: make this the API for all unicode things.
authorJohn Benediktsson <mrjbq7@gmail.com>
Thu, 31 Mar 2016 06:29:48 +0000 (23:29 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 31 Mar 2016 06:29:48 +0000 (23:29 -0700)
120 files changed:
basis/alien/libraries/finder/linux/linux.factor
basis/csv/csv.factor
basis/db/postgresql/postgresql-tests.factor
basis/db/sqlite/sqlite-tests.factor
basis/documents/elements/elements.factor
basis/english/english.factor
basis/farkup/farkup.factor
basis/formatting/formatting.factor
basis/ftp/server/server.factor
basis/globs/globs.factor
basis/help/apropos/apropos.factor
basis/help/lint/checks/checks.factor
basis/help/search/search.factor
basis/help/tutorial/tutorial.factor
basis/html/templates/chloe/syntax/syntax.factor
basis/http/server/dispatchers/dispatchers.factor
basis/http/server/server.factor
basis/images/loader/gtk/gtk.factor
basis/io/directories/search/search.factor
basis/io/sockets/secure/openssl/openssl.factor
basis/io/standard-paths/windows/windows.factor
basis/math/statistics/statistics-docs.factor
basis/models/search/search.factor
basis/peg/ebnf/ebnf-tests.factor
basis/peg/ebnf/ebnf.factor
basis/peg/parsers/parsers-docs.factor
basis/peg/parsers/parsers.factor
basis/peg/peg.factor
basis/regexp/classes/classes.factor
basis/regexp/compiler/compiler.factor
basis/regexp/dfa/dfa.factor
basis/regexp/disambiguate/disambiguate.factor
basis/regexp/minimize/minimize.factor
basis/regexp/negation/negation.factor
basis/regexp/nfa/nfa.factor
basis/regexp/parser/parser.factor
basis/regexp/transition-tables/transition-tables.factor
basis/roman/roman.factor
basis/sequences/parser/parser-tests.factor
basis/sequences/parser/parser.factor
basis/sorting/human/human.factor
basis/sorting/title/title.factor
basis/tools/completion/completion.factor
basis/tools/files/unix/unix.factor
basis/tools/scaffold/scaffold-tests.factor
basis/tools/scaffold/scaffold.factor
basis/tools/test/test.factor
basis/ui/backend/cocoa/views/views.factor
basis/ui/commands/commands.factor
basis/ui/gadgets/editors/editors.factor
basis/unicode/breaks/breaks-docs.factor
basis/unicode/breaks/breaks.factor
basis/unicode/case/case-docs.factor
basis/unicode/case/case.factor
basis/unicode/categories/categories-docs.factor
basis/unicode/categories/categories-tests.factor
basis/unicode/categories/categories.factor
basis/unicode/categories/summary.txt
basis/unicode/categories/syntax/authors.txt [deleted file]
basis/unicode/categories/syntax/summary.txt [deleted file]
basis/unicode/categories/syntax/syntax-docs.factor [deleted file]
basis/unicode/categories/syntax/syntax-tests.factor [deleted file]
basis/unicode/categories/syntax/syntax.factor [deleted file]
basis/unicode/categories/syntax/tags.txt [deleted file]
basis/unicode/collation/collation-docs.factor
basis/unicode/collation/collation.factor
basis/unicode/data/data-docs.factor
basis/unicode/data/data.factor
basis/unicode/normalize/normalize-docs.factor
basis/unicode/normalize/normalize.factor
basis/unicode/script/script-docs.factor
basis/unicode/script/script.factor
basis/unicode/unicode-docs.factor
basis/unicode/unicode.factor
basis/uuid/uuid.factor
basis/validators/validators.factor
basis/windows/errors/errors.factor
basis/xml/char-classes/char-classes.factor
basis/xml/elements/elements.factor
basis/xml/syntax/inverse/inverse.factor
basis/xml/syntax/syntax.factor
basis/xml/writer/writer.factor
basis/xmode/catalog/catalog.factor
basis/xmode/keyword-map/keyword-map.factor
basis/xmode/rules/rules.factor
extra/benchmark/unicode/unicode.factor
extra/c/lexer/lexer.factor
extra/c/preprocessor/preprocessor.factor
extra/cgi/cgi.factor
extra/codebook/codebook.factor
extra/game/models/loader/loader.factor
extra/geobytes/geobytes.factor
extra/gml/ui/ui.factor
extra/graphviz/render/render.factor
extra/html/parser/analyzer/analyzer.factor
extra/html/parser/parser.factor
extra/html/parser/printer/printer.factor
extra/id3/id3.factor
extra/managed-server/chat/chat.factor
extra/parser-combinators/parser-combinators-tests.factor
extra/parser-combinators/parser-combinators.factor
extra/parser-combinators/simple/simple.factor
extra/pdf/wrap/wrap.factor
extra/project-euler/common/common.factor
extra/python/syntax/syntax-tests.factor
extra/resolv-conf/resolv-conf.factor
extra/robots/robots.factor
extra/rosetta-code/odd-word/odd-word.factor
extra/rosetta-code/ordered-words/ordered-words.factor
extra/sequences/inserters/inserters-tests.factor
extra/talks/google-tech-talk/google-tech-talk.factor
extra/tools/which/which.factor
extra/txon/txon.factor
extra/webapps/help/help.factor
extra/zoneinfo/zoneinfo.factor
unmaintained/dns/cache/nx/nx.factor
unmaintained/dns/cache/rr/rr.factor
unmaintained/dns/server/server.factor
unmaintained/irc-ui/ui.factor
unmaintained/persistency/persistency.factor

index 406cb9a41e582199006760829e8839099a5c6b4c..d21b1b0dd12b33e111205473c1398109b70093ef 100644 (file)
@@ -3,7 +3,7 @@
 USING: alien.libraries.finder arrays assocs
 combinators.short-circuit io io.encodings.utf8 io.files
 io.files.info io.launcher kernel sequences sets splitting system
 USING: alien.libraries.finder arrays assocs
 combinators.short-circuit io io.encodings.utf8 io.files
 io.files.info io.launcher kernel sequences sets splitting system
-unicode.categories ;
+unicode ;
 IN: alien.libraries.finder.linux
 
 <PRIVATE
 IN: alien.libraries.finder.linux
 
 <PRIVATE
index 008c0b2e386f8ffa58bbedc618f44948d42af2d5..7eba910e1b123b8f65f9fc26cd126799dc8341bb 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: combinators fry io io.files io.streams.string kernel
 make math memoize namespaces sbufs sequences sequences.private
 ! See http://factorcode.org/license.txt for BSD license.
 USING: combinators fry io io.files io.streams.string kernel
 make math memoize namespaces sbufs sequences sequences.private
-unicode.categories ;
+unicode ;
 IN: csv
 
 SYMBOL: delimiter
 IN: csv
 
 SYMBOL: delimiter
index 57bb401854fbbe2b1c1f256c62334db498df8ce6..833a44512ae4ab02b65de7dcc00a3e9fb0f01813 100644 (file)
@@ -1,6 +1,6 @@
 USING: accessors alien continuations db db.errors db.queries db.postgresql
 db.private db.tester db.tuples db.types io classes kernel math namespaces
 USING: accessors alien continuations db db.errors db.queries db.postgresql
 db.private db.tester db.tuples db.types io classes kernel math namespaces
-prettyprint sequences system tools.test unicode.case ;
+prettyprint sequences system tools.test unicode ;
 IN: db.postgresql.tests
 
 : nonexistant-db ( -- db )
 IN: db.postgresql.tests
 
 : nonexistant-db ( -- db )
index 46ce17bfdefd70ac43156bb23253edc50ae5b958..660f33171caaa3438ea5c955a5a1f37801b40ab5 100644 (file)
@@ -1,6 +1,6 @@
 USING: io io.files io.files.temp io.directories io.launcher
 kernel namespaces prettyprint tools.test db.sqlite db sequences
 USING: io io.files io.files.temp io.directories io.launcher
 kernel namespaces prettyprint tools.test db.sqlite db sequences
-continuations db.types db.tuples unicode.case accessors arrays
+continuations db.types db.tuples unicode accessors arrays
 sorting layouts math.parser ;
 IN: db.sqlite.tests
 
 sorting layouts math.parser ;
 IN: db.sqlite.tests
 
index 7ba3cb8a6eddf866f6a61e69d461c911f616958a..3d6538aa36adeb2819261dc7dca2205ef4425993 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2006, 2009 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays combinators documents fry kernel math sequences
 ! Copyright (C) 2006, 2009 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays combinators documents fry kernel math sequences
-accessors unicode.categories unicode.breaks combinators.short-circuit ;
+accessors unicode combinators.short-circuit ;
 IN: documents.elements
 
 GENERIC: prev-elt ( loc document elt -- newloc )
 IN: documents.elements
 
 GENERIC: prev-elt ( loc document elt -- newloc )
index a8abe56b33b75f1dd8e6a1f9b03287a25a65140f..488e34af1a56291881ea4f53b28c556235137439 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2015 John Benediktsson
 ! See http://factorcode.org/license.txt for BSD license
 USING: assocs assocs.extras combinators formatting kernel literals
 ! Copyright (C) 2015 John Benediktsson
 ! See http://factorcode.org/license.txt for BSD license
 USING: assocs assocs.extras combinators formatting kernel literals
-locals math math.parser sequences splitting unicode.case ;
+locals math math.parser sequences splitting unicode ;
 
 IN: english
 
 
 IN: english
 
index cf505aa7c54e78d6953cd8313ec57c06468b43b4..a3d79adfb3b5cfe1539fa2d924ef0fcf978baa89 100644 (file)
@@ -3,7 +3,7 @@
 USING: sequences kernel splitting lists fry accessors assocs math.order
 math combinators namespaces urls.encoding xml.syntax xmode.code2html
 xml.data arrays strings vectors xml.writer io.streams.string locals
 USING: sequences kernel splitting lists fry accessors assocs math.order
 math combinators namespaces urls.encoding xml.syntax xmode.code2html
 xml.data arrays strings vectors xml.writer io.streams.string locals
-unicode.categories ;
+unicode ;
 IN: farkup
 
 SYMBOL: relative-link-prefix
 IN: farkup
 
 SYMBOL: relative-link-prefix
index bdb81c1338b1ac8d6aadcd969721feb285613674..09f67f363bc8f01f645ab64ebb82e721a0f4d928 100644 (file)
@@ -4,8 +4,7 @@ USING: accessors arrays assocs calendar combinators
 combinators.smart fry generalizations io io.streams.string
 kernel macros math math.functions math.parser namespaces
 peg.ebnf present prettyprint quotations sequences
 combinators.smart fry generalizations io io.streams.string
 kernel macros math math.functions math.parser namespaces
 peg.ebnf present prettyprint quotations sequences
-sequences.generalizations strings unicode.case
-unicode.categories vectors ;
+sequences.generalizations strings unicode vectors ;
 FROM: math.parser.private => format-float ;
 IN: formatting
 
 FROM: math.parser.private => format-float ;
 IN: formatting
 
index 5d10a125ffcefd75552bacc67e70283b9b53bf7d..55b8218e74008e4d1c26c2480aed9a44ea6a0867 100644 (file)
@@ -8,7 +8,7 @@ io.files io.files.info io.files.types io.pathnames
 io.servers io.sockets io.streams.string io.timeouts
 kernel logging math math.bitwise math.parser namespaces
 sequences simple-tokenizer splitting strings threads
 io.servers io.sockets io.streams.string io.timeouts
 kernel logging math math.bitwise math.parser namespaces
 sequences simple-tokenizer splitting strings threads
-tools.files unicode.case ;
+tools.files unicode ;
 IN: ftp.server
 
 SYMBOL: server
 IN: ftp.server
 
 SYMBOL: server
index 285578073d88c3842620a41f393b23947cdefae3..7e86708ba40716831f421ec9f4f105e5b6f6c3d8 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors arrays combinators combinators.short-circuit
 io.directories io.files io.files.info io.pathnames kernel locals
 make peg.ebnf regexp regexp.combinators sequences splitting
 USING: accessors arrays combinators combinators.short-circuit
 io.directories io.files io.files.info io.pathnames kernel locals
 make peg.ebnf regexp regexp.combinators sequences splitting
-strings system unicode.case ;
+strings system unicode ;
 IN: globs
 
 : not-path-separator ( -- sep )
 IN: globs
 
 : not-path-separator ( -- sep )
index 6c4804153713c31d5d3887f903175984ac04842d..1e79727130b2692287f1e0355a9c863ebfac9aed 100644 (file)
@@ -3,8 +3,7 @@
 USING: accessors arrays assocs fry help.markup help.topics io
 kernel make math math.parser namespaces sequences sorting
 summary tools.completion vocabs.hierarchy help.vocabs
 USING: accessors arrays assocs fry help.markup help.topics io
 kernel make math math.parser namespaces sequences sorting
 summary tools.completion vocabs.hierarchy help.vocabs
-vocabs words unicode.case help unicode.categories
-combinators locals ;
+vocabs words unicode help combinators locals ;
 IN: help.apropos
 
 : $completions ( seq -- )
 IN: help.apropos
 
 : $completions ( seq -- )
index 0133e3b7c8cef4bf55cd57ad5798f92347b90e16..f4db83d67dcc5dc0f1e7375858370463e7dde57f 100644 (file)
@@ -5,8 +5,8 @@ classes.tuple combinators combinators.short-circuit debugger
 definitions effects eval formatting fry grouping help
 help.markup help.topics io io.streams.string kernel macros math
 namespaces sequences sequences.deep sets splitting strings
 definitions effects eval formatting fry grouping help
 help.markup help.topics io io.streams.string kernel macros math
 namespaces sequences sequences.deep sets splitting strings
-summary tools.destructors unicode.categories vocabs
-vocabs.loader words words.constant words.symbol ;
+summary tools.destructors unicode vocabs vocabs.loader words
+words.constant words.symbol ;
 IN: help.lint.checks
 
 ERROR: simple-lint-error message ;
 IN: help.lint.checks
 
 ERROR: simple-lint-error message ;
index 9d6ff601070ad9a9b7482f885db67f1554152595..87db04467f5b77987ce0c8ce8e5790b973e73b7a 100644 (file)
@@ -4,8 +4,8 @@
 USING: arrays assocs combinators combinators.short-circuit fry
 help help.apropos help.markup help.stylesheet help.topics io
 io.streams.string io.styles kernel math memoize namespaces
 USING: arrays assocs combinators combinators.short-circuit fry
 help help.apropos help.markup help.stylesheet help.topics io
 io.streams.string io.styles kernel math memoize namespaces
-sequences sequences.deep sorting splitting strings unicode.case
-unicode.categories words ;
+sequences sequences.deep sorting splitting strings unicode
+words ;
 
 IN: help.search
 
 
 IN: help.search
 
index 6e9b40bf0702c38991994f43ab776ed00abdc10e..7d4611867b3b6edd42b66154c166d08904b44a9a 100644 (file)
@@ -1,7 +1,6 @@
 USING: help.markup help.syntax ui.commands ui.operations
 editors vocabs.loader kernel sequences prettyprint tools.test
 USING: help.markup help.syntax ui.commands ui.operations
 editors vocabs.loader kernel sequences prettyprint tools.test
-vocabs.refresh strings unicode.categories unicode.case
-ui.tools.browser ui.tools.common ;
+vocabs.refresh strings unicode ui.tools.browser ui.tools.common ;
 IN: help.tutorial
 
 ARTICLE: "first-program-start" "Creating a vocabulary for your first program"
 IN: help.tutorial
 
 ARTICLE: "first-program-start" "Creating a vocabulary for your first program"
index 264559e2d8c04b296e56adef7e80b3a1dc08a1f6..5d02982610dc3fe4e1e470d71c61e807d1a5ec26 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors sequences combinators kernel namespaces classes.tuple
 assocs splitting words arrays memoize parser lexer io io.files
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors sequences combinators kernel namespaces classes.tuple
 assocs splitting words arrays memoize parser lexer io io.files
-io.encodings.utf8 io.streams.string unicode.case mirrors fry math urls
+io.encodings.utf8 io.streams.string unicode mirrors fry math urls
 multiline xml xml.data xml.writer xml.syntax html.components
 html.templates ;
 IN: html.templates.chloe.syntax
 multiline xml xml.data xml.writer xml.syntax html.components
 html.templates ;
 IN: html.templates.chloe.syntax
index 405d96d1f5070b50f663a455e0259f0c4048dd65..1534a5a8cd8b97baf919c6579c3bc81170d15dc6 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel namespaces sequences assocs accessors splitting
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel namespaces sequences assocs accessors splitting
-unicode.case urls http http.server http.server.responses ;
+unicode urls http http.server http.server.responses ;
 IN: http.server.dispatchers
 
 TUPLE: dispatcher default responders ;
 IN: http.server.dispatchers
 
 TUPLE: dispatcher default responders ;
index d074fe4fcded5fbbb3bd79a099f9531de8e13faa..583920c49b4ae636554a5abd4fe0f59575000bf3 100644 (file)
@@ -19,7 +19,7 @@ io.servers
 io.timeouts
 io.crlf
 fry logging logging.insomniac calendar urls
 io.timeouts
 io.crlf
 fry logging logging.insomniac calendar urls
-unicode.categories
+unicode
 http
 http.server.requests
 http.server.responses
 http
 http.server.requests
 http.server.responses
index fbdab99f479303a250b79b57ecb0f3fa80d3373c..f0bf3ac03ce37333f4151c074af8a06812c6a10d 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors alien.c-types alien.data alien.syntax arrays assocs
 combinators destructors gdk.pixbuf.ffi glib.ffi gobject.ffi grouping images
 images.loader io kernel locals math sequences system
 USING: accessors alien.c-types alien.data alien.syntax arrays assocs
 combinators destructors gdk.pixbuf.ffi glib.ffi gobject.ffi grouping images
 images.loader io kernel locals math sequences system
-specialized-arrays unicode.case ;
+specialized-arrays unicode ;
 IN: images.loader.gtk
 SPECIALIZED-ARRAY: uchar
 
 IN: images.loader.gtk
 SPECIALIZED-ARRAY: uchar
 
index e0df575bf0bf124042c40addceabf96cce984d92..79e2d9cd204ca46f1765a378b6982439e232cf70 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors arrays assocs continuations deques dlists fry
 io.backend io.directories io.files.info io.pathnames kernel
 kernel.private locals math sequences sequences.extras sorting
 USING: accessors arrays assocs continuations deques dlists fry
 io.backend io.directories io.files.info io.pathnames kernel
 kernel.private locals math sequences sequences.extras sorting
-strings system unicode.case vocabs ;
+strings system unicode vocabs ;
 IN: io.directories.search
 
 : qualified-directory-entries ( path -- seq )
 IN: io.directories.search
 
 : qualified-directory-entries ( path -- seq )
index d5346f01b41b39a590dd5b7ff750583ce2f1ccce..21d026bd1460af7bbcf805f5e222123791bdcc35 100644 (file)
@@ -7,7 +7,7 @@ io.binary io.buffers io.encodings.8-bit.latin1 io.encodings.utf8
 io.files io.pathnames io.ports io.sockets io.sockets.secure
 io.timeouts kernel libc locals math math.functions math.order
 math.parser memoize namespaces openssl openssl.libcrypto
 io.files io.pathnames io.ports io.sockets io.sockets.secure
 io.timeouts kernel libc locals math math.functions math.order
 math.parser memoize namespaces openssl openssl.libcrypto
-openssl.libssl random sequences sets splitting unicode.case ;
+openssl.libssl random sequences sets splitting unicode ;
 IN: io.sockets.secure.openssl
 
 GENERIC: ssl-method ( symbol -- method )
 IN: io.sockets.secure.openssl
 
 GENERIC: ssl-method ( symbol -- method )
index 29547d43f2dfde77d54c4db9a8ccd66cf3373afb..b0870c22d2e9b92be28a2afa42b2a94f1690c0a7 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: environment fry io.directories.search.windows io.files
 io.pathnames io.standard-paths kernel sequences splitting
 ! See http://factorcode.org/license.txt for BSD license.
 USING: environment fry io.directories.search.windows io.files
 io.pathnames io.standard-paths kernel sequences splitting
-system unicode.case ;
+system unicode ;
 IN: io.standard-paths.windows
 
 M: windows find-in-applications
 IN: io.standard-paths.windows
 
 M: windows find-in-applications
index df4a8c4d376c4cef66424bae6d6f8d47d7e91ea7..156877f32960eaacc0363c73275b056bbbc6ad4e 100644 (file)
@@ -105,7 +105,7 @@ HELP: histogram-by
 { $description "Returns a hashtable where the keys are the elements of the sequence binned by being passed through " { $snippet "quot" } ", and the values are the number of times members of each bin appeared in that sequence." }
 { $examples
     { $unchecked-example "! Count the number of times letters and non-letters appear in a sequence."
 { $description "Returns a hashtable where the keys are the elements of the sequence binned by being passed through " { $snippet "quot" } ", and the values are the number of times members of each bin appeared in that sequence." }
 { $examples
     { $unchecked-example "! Count the number of times letters and non-letters appear in a sequence."
-               "USING: prettyprint math.statistics unicode.categories ;"
+               "USING: prettyprint math.statistics unicode ;"
                "\"aaa123bc\" [ letter? ] histogram-by ."
                "H{ { t 5 } { f 3 } }"
     }
                "\"aaa123bc\" [ letter? ] histogram-by ."
                "H{ { t 5 } { f 3 } }"
     }
index 5ecb0fa34ada9a88cf9a3ac944fe6cb7bd7687e7..061acc7d9cffc3fd2747200a9f25a13e50fa9304 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008, 2009 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2008, 2009 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
-USING: fry kernel models.arrow.smart sequences unicode.case ;
+USING: fry kernel models.arrow.smart sequences unicode ;
 IN: models.search
 
 : <search> ( values search quot -- model )
 IN: models.search
 
 : <search> ( values search quot -- model )
index c0c7568913408e7f725ffa62a5bb28815bb133a8..84311bc24e1ade19e49097671f92c5d74266be19 100644 (file)
@@ -3,7 +3,7 @@
 !
 USING: kernel tools.test peg peg.ebnf peg.ebnf.private words
 math math.parser sequences accessors peg.parsers parser
 !
 USING: kernel tools.test peg peg.ebnf peg.ebnf.private words
 math math.parser sequences accessors peg.parsers parser
-namespaces arrays strings eval unicode.data multiline ;
+namespaces arrays strings eval unicode multiline ;
 IN: peg.ebnf.tests
 
 { T{ ebnf-non-terminal f "abc" } } [
 IN: peg.ebnf.tests
 
 { T{ ebnf-non-terminal f "abc" } } [
index 601804cfdab0914bf108d2666060b12ef2a85d19..78639595eba3c0ccecf823689cf49d75c355aa7e 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors assocs combinators combinators.short-circuit
 effects kernel make math math.parser multiline namespaces parser
 peg peg.parsers quotations sequences sequences.deep splitting
 USING: accessors assocs combinators combinators.short-circuit
 effects kernel make math math.parser multiline namespaces parser
 peg peg.parsers quotations sequences sequences.deep splitting
-stack-checker strings strings.parser summary unicode.categories
+stack-checker strings strings.parser summary unicode
 vocabs.parser words ;
 FROM: vocabs.parser => search ;
 FROM: peg.search => replace ;
 vocabs.parser words ;
 FROM: vocabs.parser => search ;
 FROM: peg.search => replace ;
index adac0cf65b958563caff4b36718c464f88e48ae8..af308399ec74882ef78ef1bc5c7cf78319963474 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Chris Double, Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: help.markup help.syntax kernel math sequences
 ! Copyright (C) 2008 Chris Double, Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: help.markup help.syntax kernel math sequences
-unicode.categories strings ;
+unicode strings ;
 IN: peg.parsers
 
 HELP: 1token
 IN: peg.parsers
 
 HELP: 1token
index 3feddd3447fe3942ae9495194e9c98913068fd49..23b262568df5bfbcaeae9c5dc6070490d3fa3149 100644 (file)
@@ -1,8 +1,7 @@
 ! Copyright (C) 2007, 2008 Chris Double, Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2007, 2008 Chris Double, Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel sequences strings namespaces make math assocs
-vectors arrays math.parser accessors unicode.categories
-sequences.deep peg peg.private peg.search math.ranges words ;
+USING: accessors kernel make math math.parser math.ranges peg
+peg.private peg.search sequences strings unicode vectors ;
 IN: peg.parsers
 
 TUPLE: just-parser p1 ;
 IN: peg.parsers
 
 TUPLE: just-parser p1 ;
index 1ac261494b372218c3b743b9121dae5ce78417e2..f0545a17a37944497b8a5b3de015ce7288a5d054 100644 (file)
@@ -3,8 +3,7 @@
 USING: accessors arrays assocs classes combinators
 combinators.short-circuit compiler.units effects.parser fry
 generalizations kernel locals make math math.order namespaces
 USING: accessors arrays assocs classes combinators
 combinators.short-circuit compiler.units effects.parser fry
 generalizations kernel locals make math math.order namespaces
-quotations sequences sets splitting unicode.categories vectors
-words ;
+quotations sequences sets splitting unicode vectors words ;
 IN: peg
 
 TUPLE: parse-result remaining ast ;
 IN: peg
 
 TUPLE: parse-result remaining ast ;
index 71e70c60d9944c458e377edebdbbe5019c94e267..e50d7bfccba710110a1ea3c75ae2dd8920929ae8 100644 (file)
@@ -1,9 +1,8 @@
 ! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors kernel math math.order words combinators
-combinators.smart combinators.short-circuit locals
-unicode.categories sequences fry macros arrays assocs sets
-classes unicode.script unicode.data ;
+USING: accessors arrays assocs classes combinators
+combinators.short-circuit combinators.smart fry kernel locals
+math math.order sequences sets unicode unicode.data ;
 FROM: ascii => ascii? ;
 IN: regexp.classes
 
 FROM: ascii => ascii? ;
 IN: regexp.classes
 
index 45e17306de5719698cbd6188ac0039fedd5cf4a1..274b9a579799a4f091ebd18bd26ba6e18b75455c 100644 (file)
@@ -1,10 +1,9 @@
 ! Copyright (C) 2009 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2009 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: regexp.classes kernel sequences regexp.negation
-quotations assocs fry math locals combinators sets
-accessors words compiler.units kernel.private strings
-sequences.private arrays namespaces unicode.breaks
-regexp.transition-tables combinators.short-circuit ;
+USING: accessors assocs combinators combinators.short-circuit
+fry kernel kernel.private locals math namespaces regexp.classes
+regexp.transition-tables sequences sequences.private sets
+strings unicode words ;
 IN: regexp.compiler
 
 GENERIC: question>quot ( question -- quot )
 IN: regexp.compiler
 
 GENERIC: question>quot ( question -- quot )
index 5c77741032499c70d8967074a5ba88f96cf00c8e..c65ae25a7a3d79683ea0582e4a5e4b713876ac73 100644 (file)
@@ -1,8 +1,7 @@
 ! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays assocs combinators fry kernel locals
-math math.order regexp.nfa regexp.transition-tables sequences
-sets sorting vectors regexp.ast regexp.classes ;
+USING: accessors arrays assocs fry kernel locals regexp.ast
+regexp.classes regexp.transition-tables sequences sets vectors ;
 IN: regexp.dfa
 
 : find-delta ( states transition nfa -- new-states )
 IN: regexp.dfa
 
 : find-delta ( states transition nfa -- new-states )
index f985b0e2346bff51195a25d3de809e32d03d4412..84864a2510dce41113f08f375918d74b2beef411 100644 (file)
@@ -1,8 +1,8 @@
 ! Copyright (C) 2009 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2009 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel accessors regexp.classes math.bits assocs sequences
-arrays sets regexp.dfa math fry regexp.minimize regexp.ast
-locals regexp.transition-tables ;
+USING: accessors arrays assocs fry kernel locals math math.bits
+regexp.ast regexp.classes regexp.transition-tables sequences
+sets ;
 IN: regexp.disambiguate
 
 TUPLE: parts in out ;
 IN: regexp.disambiguate
 
 TUPLE: parts in out ;
index b2d636a4980723108ec809b36ad66a52c3fc1370..65830ac7202ce079a26f35671c6df868c02ceff2 100644 (file)
@@ -1,8 +1,8 @@
 ! Copyright (C) 2009 Daniel Ehrenberg
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2009 Daniel Ehrenberg
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel sequences regexp.transition-tables fry assocs
-accessors locals math sorting arrays sets hashtables regexp.dfa
-combinators.short-circuit regexp.classes ;
+USING: accessors arrays assocs combinators.short-circuit fry
+hashtables kernel locals math regexp.classes
+regexp.transition-tables sequences sets sorting ;
 IN: regexp.minimize
 
 : table>state-numbers ( table -- assoc )
 IN: regexp.minimize
 
 : table>state-numbers ( table -- assoc )
index 81ac83da0bd65bd0acf6abfe070f12f3eed56ad5..85b7741a52eaf99dd454e51e55b495dfa7938aa3 100644 (file)
@@ -1,9 +1,9 @@
 ! Copyright (C) 2009 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2009 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: regexp.nfa regexp.disambiguate kernel sequences
-assocs regexp.classes hashtables accessors fry vectors
-regexp.ast regexp.transition-tables regexp.minimize
-regexp.dfa namespaces sets ;
+USING: accessors assocs fry hashtables kernel namespaces
+regexp.ast regexp.classes regexp.dfa regexp.disambiguate
+regexp.minimize regexp.nfa regexp.transition-tables sequences
+sets vectors ;
 IN: regexp.negation
 
 CONSTANT: fail-state -1
 IN: regexp.negation
 
 CONSTANT: fail-state -1
index 864a1fedba3b3b5e38509110222ca64f9915b41e..5cac3c229d13bc7282aa73f40670e19c4b74cfe7 100644 (file)
@@ -1,13 +1,11 @@
 ! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays assocs grouping kernel locals math namespaces
-sequences fry quotations math.order math.ranges vectors
-unicode.categories regexp.transition-tables words sets hashtables
-combinators.short-circuit unicode.data regexp.ast
-regexp.classes memoize ;
+USING: accessors arrays assocs combinators.short-circuit fry
+kernel locals math memoize namespaces regexp.ast regexp.classes
+regexp.transition-tables sequences sets unicode vectors ;
 IN: regexp.nfa
 
 IN: regexp.nfa
 
-! This uses unicode.data for ch>upper and ch>lower
+! This uses unicode for ch>upper and ch>lower
 ! but case-insensitive matching should be done by case-folding everything
 ! before processing starts
 
 ! but case-insensitive matching should be done by case-folding everything
 ! before processing starts
 
index 01cff989018f80ce0580acc25dba5127adf67f4a..e919ff6d2d2d9e627cef75788922cae6553aad65 100644 (file)
@@ -1,10 +1,9 @@
 ! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: peg.ebnf kernel math.parser sequences assocs arrays fry math
-combinators regexp.classes strings splitting peg locals accessors
-regexp.ast unicode.case unicode.script.private unicode.categories
-memoize interval-maps sets unicode.data combinators.short-circuit
-namespaces ;
+USING: accessors arrays assocs combinators
+combinators.short-circuit interval-maps kernel locals
+math.parser memoize peg.ebnf regexp.ast regexp.classes sequences
+sets splitting strings unicode unicode.data unicode.script ;
 IN: regexp.parser
 
 : allowed-char? ( ch -- ? )
 IN: regexp.parser
 
 : allowed-char? ( ch -- ? )
index b548b883b2a953da98f6263d775c69c3d3cf3f12..4352ba997900d486ccac80ad350bed030c4c44e5 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays assocs fry hashtables kernel sequences
-vectors locals regexp.classes sets ;
+USING: accessors arrays assocs fry hashtables kernel locals
+regexp.classes sequences sets vectors ;
 IN: regexp.transition-tables
 
 TUPLE: transition-table transitions start-state final-states ;
 IN: regexp.transition-tables
 
 TUPLE: transition-table transitions start-state final-states ;
index 346226bf4e7cb5659e873b66cdc77ece722f4f2d..fe227963468a3df8778648af333d2d8c56bdb84f 100644 (file)
@@ -4,7 +4,7 @@ USING: accessors arrays assocs combinators.smart effects
 effects.parser fry generalizations grouping kernel lexer macros
 math math.order math.vectors namespaces parser quotations
 sequences sequences.private splitting.monotonic stack-checker
 effects.parser fry generalizations grouping kernel lexer macros
 math math.order math.vectors namespaces parser quotations
 sequences sequences.private splitting.monotonic stack-checker
-strings unicode.case words ;
+strings unicode words ;
 IN: roman
 
 <PRIVATE
 IN: roman
 
 <PRIVATE
index 620732dbdbd27a6e278245419bebafa002e50520..50ae22b3dd9770b91852cdfac361df1e52c2e0c7 100644 (file)
@@ -1,5 +1,4 @@
-USING: tools.test sequences.parser unicode.categories kernel
-accessors ;
+USING: tools.test sequences.parser unicode kernel accessors ;
 IN: sequences.parser.tests
 
 { "hello" }
 IN: sequences.parser.tests
 
 { "hello" }
index 1df344e22ae66a0ffd71e8342259529074d92b0f..6f139cbeeb9a2589b0ba829361ef1f71ce330fd6 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors circular combinators.short-circuit fry io
 kernel locals math math.order sequences sorting.functor
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors circular combinators.short-circuit fry io
 kernel locals math math.order sequences sorting.functor
-sorting.slots unicode.categories sequences.private ;
+sorting.slots unicode sequences.private ;
 IN: sequences.parser
 
 TUPLE: sequence-parser sequence n ;
 IN: sequences.parser
 
 TUPLE: sequence-parser sequence n ;
index b5048e45b0237c17813818243b3763e3b5ee2c92..a6eaf52bd49b660fadd4a5b3daa17e99923ee88c 100644 (file)
@@ -1,8 +1,7 @@
 ! Copyright (C) 2008, 2010 Doug Coleman, Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors fry kernel make math math.order math.parser
 ! Copyright (C) 2008, 2010 Doug Coleman, Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors fry kernel make math math.order math.parser
-sequences sorting.functor strings unicode.case
-unicode.categories unicode.collation ;
+sequences sorting.functor strings unicode ;
 IN: sorting.human
 
 : cut-find ( sequence pred -- before after )
 IN: sorting.human
 
 : cut-find ( sequence pred -- before after )
index b9a46c41fcca37da47c49b1a99f2b27711e6bd8b..7925287cb58266cd80aec5658e7f9c50db236097 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: sorting.functor regexp kernel accessors sequences
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: sorting.functor regexp kernel accessors sequences
-unicode.case ;
+unicode ;
 IN: sorting.title
 
 << "title" [
 IN: sorting.title
 
 << "title" [
index 8c53878ae3d27b5383f4e8562f8cc837d1babca2..0b53f0defd49bc30660524d9ba4e937618c89f98 100644 (file)
@@ -4,8 +4,8 @@ USING: accessors arrays assocs colors.constants combinators
 combinators.short-circuit fry io.directories io.files
 io.files.info io.pathnames kernel locals make math math.order
 sequences sequences.private sorting splitting
 combinators.short-circuit fry io.directories io.files
 io.files.info io.pathnames kernel locals make math math.order
 sequences sequences.private sorting splitting
-splitting.monotonic unicode.categories unicode.data vectors
-vocabs vocabs.hierarchy ;
+splitting.monotonic unicode unicode.data vectors vocabs
+vocabs.hierarchy ;
 IN: tools.completion
 
 <PRIVATE
 IN: tools.completion
 
 <PRIVATE
index d5fdd6c88909d530ff5f295bbbc31fe77675b946..2ff3ae8f8daba6e5dbd5cb9e69bde42c0ff24778 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors combinators kernel system unicode.case io.files
+USING: accessors combinators kernel system unicode io.files
 io.files.info io.files.info.unix generalizations
 strings arrays sequences math.parser unix.groups unix.users
 tools.files.private unix.stat math fry macros combinators.smart
 io.files.info io.files.info.unix generalizations
 strings arrays sequences math.parser unix.groups unix.users
 tools.files.private unix.stat math fry macros combinators.smart
index 704163be998e2ceb7caeb5e7d072b989767025c0..17f1f02df12e7d35b990f50a0fb052bba9c8d6e1 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: help.markup io.streams.string kernel sequences
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: help.markup io.streams.string kernel sequences
-tools.scaffold tools.scaffold.private tools.test unicode.case ;
+tools.scaffold tools.scaffold.private tools.test unicode ;
 IN: tools.scaffold.tests
 
 : undocumented-word ( obj1 obj2 -- obj3 obj4 )
 IN: tools.scaffold.tests
 
 : undocumented-word ( obj1 obj2 -- obj3 obj4 )
index 1eb40445fe167cefa731bcfb471074793d511726..00cf2297b5fd3e88d8137cd30089d9786a4cff38 100644 (file)
@@ -5,7 +5,7 @@ classes combinators combinators.short-circuit fry hashtables
 help.markup interpolate io io.directories io.encodings.utf8
 io.files io.pathnames io.streams.string kernel math math.parser
 namespaces prettyprint quotations sequences sets sorting
 help.markup interpolate io io.directories io.encodings.utf8
 io.files io.pathnames io.streams.string kernel math math.parser
 namespaces prettyprint quotations sequences sets sorting
-splitting strings system timers unicode.categories urls vocabs
+splitting strings system timers unicode urls vocabs
 vocabs.loader vocabs.metadata words words.symbol ;
 IN: tools.scaffold
 
 vocabs.loader vocabs.metadata words words.symbol ;
 IN: tools.scaffold
 
index 5722a64ce0296efb3dbf16e9e297a4f097f7db04..825e893473d55b6bf29d70e7542a32e3ae9e7977 100644 (file)
@@ -5,7 +5,7 @@ compiler.units continuations debugger effects fry
 generalizations io kernel lexer locals macros namespaces parser
 prettyprint quotations sequences sequences.generalizations
 source-files source-files.errors source-files.errors.debugger
 generalizations io kernel lexer locals macros namespaces parser
 prettyprint quotations sequences sequences.generalizations
 source-files source-files.errors source-files.errors.debugger
-splitting stack-checker summary tools.errors unicode.case vocabs
+splitting stack-checker summary tools.errors unicode vocabs
 vocabs.files vocabs.metadata vocabs.parser words ;
 FROM: vocabs.hierarchy => load ;
 IN: tools.test
 vocabs.files vocabs.metadata vocabs.parser words ;
 FROM: vocabs.hierarchy => load ;
 IN: tools.test
index 2f8bcbd8720e4203b2140e55187a2155065bf2ec..565c5acbaa545dcf92102daffccb287e1a961114 100644 (file)
@@ -7,7 +7,7 @@ cocoa.views combinators core-foundation.strings core-graphics
 core-graphics.types core-text io.encodings.utf8 kernel literals
 locals math math.rectangles namespaces opengl sequences threads
 ui.gadgets ui.gadgets.private ui.gadgets.worlds ui.gestures
 core-graphics.types core-text io.encodings.utf8 kernel literals
 locals math math.rectangles namespaces opengl sequences threads
 ui.gadgets ui.gadgets.private ui.gadgets.worlds ui.gestures
-ui.private unicode.case ;
+ui.private unicode ;
 IN: ui.backend.cocoa.views
 
 : send-mouse-moved ( view event -- )
 IN: ui.backend.cocoa.views
 
 : send-mouse-moved ( view event -- )
index 713a3b1204ffee76d25dc0d2be8915d6935cfd71..3497f677c08fda3c191afa59766eb29c0ee2ce2e 100644 (file)
@@ -1,8 +1,7 @@
 ! Copyright (C) 2006, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors assocs fry help.markup kernel make quotations
 ! Copyright (C) 2006, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors assocs fry help.markup kernel make quotations
-sequences splitting tr ui.gestures unicode.case unicode.categories
-words ;
+sequences splitting tr ui.gestures unicode words ;
 IN: ui.commands
 
 SYMBOL: +nullary+
 IN: ui.commands
 
 SYMBOL: +nullary+
index 0a2caefd328d551e59e7bbd75b2e6cbd8bb16c3e..f040136c8bf4e083a173e2c218f8713c7c324a99 100644 (file)
@@ -9,7 +9,7 @@ sorting splitting timers ui.baseline-alignment ui.clipboards
 ui.commands ui.gadgets ui.gadgets.borders
 ui.gadgets.line-support ui.gadgets.menus ui.gadgets.scrollers
 ui.gadgets.theme ui.gestures ui.pens.solid ui.render ui.text
 ui.commands ui.gadgets ui.gadgets.borders
 ui.gadgets.line-support ui.gadgets.menus ui.gadgets.scrollers
 ui.gadgets.theme ui.gestures ui.pens.solid ui.render ui.text
-unicode.categories ;
+unicode ;
 EXCLUDE: fonts => selection ;
 IN: ui.gadgets.editors
 
 EXCLUDE: fonts => selection ;
 IN: ui.gadgets.editors
 
index eb8c2eb00c6bff29e0bb76dfa712f92cd3298a6a..b9d5dbb70948dc6cf0ef0e6bd970499d914311dc 100644 (file)
@@ -1,4 +1,4 @@
-USING: help.syntax help.markup strings ;
+USING: help.syntax help.markup strings unicode ;
 IN: unicode.breaks
 
 ABOUT: "unicode.breaks"
 IN: unicode.breaks
 
 ABOUT: "unicode.breaks"
index 2bb0f98ba4140921ccfd23271f9355c9ec317c36..1aa5ec3000059ea6591c5dbc870aa47cf9e53de3 100644 (file)
@@ -1,11 +1,8 @@
 ! Copyright (C) 2008 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2008 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors alien.syntax arrays assocs combinators
-combinators.short-circuit compiler.units fry interval-maps io
-io.encodings.ascii io.files kernel literals locals make math
-math.parser math.ranges memoize namespaces parser sequences
-sets simple-flat-file splitting unicode.categories
-unicode.categories.syntax unicode.data unicode.normalize
+USING: accessors arrays assocs combinators fry interval-maps
+kernel literals locals math namespaces parser sequences
+simple-flat-file unicode.categories unicode.data
 unicode.normalize.private words words.constant ;
 IN: unicode.breaks
 
 unicode.normalize.private words words.constant ;
 IN: unicode.breaks
 
@@ -105,38 +102,6 @@ define-constant
 : grapheme-break? ( class1 class2 -- ? )
     grapheme-table nth nth not ;
 
 : grapheme-break? ( class1 class2 -- ? )
     grapheme-table nth nth not ;
 
-PRIVATE>
-
-: first-grapheme ( str -- i )
-    unclip-slice grapheme-class over
-    [ grapheme-class [ nip ] [ grapheme-break? ] 2bi ] find drop
-    nip swap length or 1 + ;
-
-: first-grapheme-from ( start str -- i )
-    over tail-slice first-grapheme + ;
-
-: last-grapheme ( str -- i )
-    unclip-last-slice grapheme-class swap
-    [ grapheme-class dup rot grapheme-break? ] find-last drop ?1+ nip ;
-
-: last-grapheme-from ( end str -- i )
-    swap head-slice last-grapheme ;
-
-<PRIVATE
-
-: >pieces ( str quot: ( str -- i ) -- graphemes )
-    [ dup empty? not ] swap '[ dup @ cut-slice swap ] produce nip ; inline
-
-PRIVATE>
-
-: >graphemes ( str -- graphemes )
-    [ first-grapheme ] >pieces ;
-
-: string-reverse ( str -- rts )
-    >graphemes reverse! concat ;
-
-<PRIVATE
-
 ! Word breaks
 <<
 CONSTANT: wOther 0
 ! Word breaks
 <<
 CONSTANT: wOther 0
@@ -253,37 +218,3 @@ define-constant
     ] if ;
 
 PRIVATE>
     ] if ;
 
 PRIVATE>
-
- : first-word ( str -- i )
-    [ [ length ] [ first word-break-prop ] bi ] keep
-    1 swap dup '[ _ word-break-next ] find-index-from
-    drop nip swap or ;
-
-: >words ( str -- words )
-    [ first-word ] >pieces ;
-
-<PRIVATE
-
-: nth-next ( i str -- str[i-1] str[i] )
-    [ [ 1 - ] keep ] dip '[ _ nth ] bi@ ;
-
-PRIVATE>
-
-: word-break-at? ( i str -- ? )
-    {
-        [ drop zero? ]
-        [ length = ]
-        [
-            [ nth-next [ word-break-prop ] dip ] 2keep
-            word-break-next nip
-        ]
-    } 2|| ;
-
-: first-word-from ( start str -- i )
-    over tail-slice first-word + ;
-
-: last-word ( str -- i )
-    [ length iota ] keep '[ _ word-break-at? ] find-last drop 0 or ;
-
-: last-word-from ( end str -- i )
-    swap head-slice last-word ;
index 845eadc84a602119664830b4cbb0b18bfe71968d..e1ea0757eb2771be4b66fe8b920a522660626447 100644 (file)
@@ -1,4 +1,4 @@
-USING: help.syntax help.markup kernel strings ;
+USING: help.syntax help.markup kernel strings unicode ;
 IN: unicode.case
 
 ABOUT: "unicode.case"
 IN: unicode.case
 
 ABOUT: "unicode.case"
index c8ed8b2d0f3caa1acdaaf6d5f8c7ad5398812639..011913097d0585e9bfd54e237c9444a7c67c1aee 100644 (file)
@@ -1,9 +1,7 @@
 ! Copyright (C) 2008, 2009 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2008, 2009 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: unicode.data sequences namespaces
-sbufs make unicode.normalize math hints
-unicode.categories combinators assocs combinators.short-circuit
-strings splitting kernel accessors unicode.breaks fry locals ;
+USING: combinators.short-circuit kernel locals namespaces sbufs
+sequences splitting unicode.categories unicode.data ;
 QUALIFIED: ascii
 IN: unicode.case
 
 QUALIFIED: ascii
 IN: unicode.case
 
@@ -52,10 +50,13 @@ SYMBOL: locale ! Just casing locale, or overall?
         [ 1 head* CHAR: greek-small-letter-final-sigma suffix ] when
     ] if-empty ; inline
 
         [ 1 head* CHAR: greek-small-letter-final-sigma suffix ] when
     ] if-empty ; inline
 
+! this duplicate unicode to prevent dependencies
+CATEGORY-NOT: (uncased) Lu Ll Lt Lm Mn Me ;
+
 : sigma-map ( string -- string )
     { CHAR: greek-capital-letter-sigma } split [ [
         [ { CHAR: greek-small-letter-sigma } ] [
 : sigma-map ( string -- string )
     { CHAR: greek-capital-letter-sigma } split [ [
         [ { CHAR: greek-small-letter-sigma } ] [
-            dup first uncased?
+            dup first (uncased)?
             CHAR: greek-small-letter-final-sigma
             CHAR: greek-small-letter-sigma ? prefix
         ] if-empty
             CHAR: greek-small-letter-final-sigma
             CHAR: greek-small-letter-sigma ? prefix
         ] if-empty
@@ -85,43 +86,3 @@ SYMBOL: locale ! Just casing locale, or overall?
     [ lithuanian? [ lithuanian>upper ] when ] bi ;
 
 PRIVATE>
     [ lithuanian? [ lithuanian>upper ] when ] bi ;
 
 PRIVATE>
-
-: >lower ( string -- lower )
-    locale>lower final-sigma
-    [ lower>> ] [ ch>lower ] map-case ;
-
-HINTS: >lower string ;
-
-: >upper ( string -- upper )
-    locale>upper
-    [ upper>> ] [ ch>upper ] map-case ;
-
-HINTS: >upper string ;
-
-<PRIVATE
-
-: (>title) ( string -- title )
-    locale>upper
-    [ title>> ] [ ch>title ] map-case ; inline
-
-PRIVATE>
-
-: capitalize ( string -- title )
-    unclip-slice 1string [ >lower ] [ (>title) ] bi*
-    "" prepend-as ; inline
-
-: >title ( string -- title )
-    final-sigma >words [ capitalize ] map! concat ;
-
-HINTS: >title string ;
-
-: >case-fold ( string -- fold )
-    >upper >lower ;
-
-: lower? ( string -- ? ) dup >lower = ;
-
-: upper? ( string -- ? ) dup >upper = ;
-
-: title? ( string -- ? ) dup >title = ;
-
-: case-fold? ( string -- ? ) dup >case-fold = ;
index 47e3f6f541de60a5cc04b9bb44ca5d5548e5e721..9aae8f069e7a63f12de86c910c55855c171923b5 100644 (file)
@@ -1,66 +1,21 @@
-! Copyright (C) 2009 Daniel Ehrenberg
+! Copyright (C) 2008 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: help.markup help.syntax kernel ;
+USING: help.syntax help.markup ;
 IN: unicode.categories
 
 IN: unicode.categories
 
-HELP: LETTER
-{ $class-description "The class of upper cased letters." } ;
-
-HELP: Letter
-{ $class-description "The class of letters." } ;
-
-HELP: alpha
-{ $class-description "The class of alphanumeric characters." } ;
-
-HELP: math
-{ $class-description "The class of Unicode math characters." } ;
-
-HELP: blank
-{ $class-description "The class of whitespace characters." } ;
-
-HELP: character
-{ $class-description "The class of pre-defined Unicode code points." } ;
-
-HELP: control
-{ $class-description "The class of control characters." } ;
-
-HELP: digit
-{ $class-description "The class of digits." } ;
-
-HELP: letter
-{ $class-description "The class of lower-cased letters." } ;
-
-HELP: printable
-{ $class-description "The class of characters which are printable, as opposed to being control or formatting characters." } ;
-
-HELP: uncased
-{ $class-description "The class of letters which don't have a case." } ;
+ABOUT: "unicode.categories"
 
 
-ARTICLE: "unicode.categories" "Character classes"
-"The " { $vocab-link "unicode.categories" } " vocabulary implements predicates for determining if a code point has a particular property, for example being a lower cased letter. These should be used in preference to the " { $vocab-link "ascii" } " equivalents in most cases. Each character class has an associated predicate word."
+ARTICLE: "unicode.categories" "Unicode category syntax"
+"There is special syntax sugar for making predicate classes which are unions of Unicode general categories, plus some other code."
 { $subsections
 { $subsections
-    blank
-    blank?
-    letter
-    letter?
-    LETTER
-    LETTER?
-    Letter
-    Letter?
-    digit
-    digit?
-    printable
-    printable?
-    alpha
-    alpha?
-    control
-    control?
-    uncased
-    uncased?
-    character
-    character?
-    math
-    math?
+    POSTPONE: CATEGORY:
+    POSTPONE: CATEGORY-NOT:
 } ;
 
 } ;
 
-ABOUT: "unicode.categories"
+HELP: CATEGORY:
+{ $syntax "CATEGORY: foo Nl Pd Lu | \"Diacritic\" property? ;" }
+{ $description "This defines a predicate class which is a subset of code points. In this example, " { $snippet "foo" } " is the class of characters which are in the general category Nl or Pd or Lu, or which have the Diacritic property." } ;
+
+HELP: CATEGORY-NOT:
+{ $syntax "CATEGORY-NOT: foo Nl Pd Lu | \"Diacritic\" property? ;" }
+{ $description "This defines a predicate class which is a subset of code points, the complement of what " { $link POSTPONE: CATEGORY: } " would define. In this example, " { $snippet "foo" } " is the class of characters which are neither in the general category Nl or Pd or Lu, nor have the Diacritic property." } ;
index 52ade759446e67c0c33729f36b7c12ff87ed1253..536c0e947cda3eec36a469386297a30dbb2fe535 100644 (file)
@@ -1,19 +1,2 @@
-! Copyright (C) 2008 Daniel Ehrenberg.
+! Copyright (C) 2009 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: tools.test kernel unicode.categories words sequences unicode.data ;
-IN: unicode.categories.tests
-
-{ { f f t t f t t f f t } } [ CHAR: A {
-    blank? letter? LETTER? Letter? digit?
-    printable? alpha? control? uncased? character?
-} [ execute ] with map ] unit-test
-{ "Nd" } [ CHAR: 3 category ] unit-test
-{ "Lo" } [ 0x3400 category ] unit-test
-{ "Lo" } [ 0x3450 category ] unit-test
-{ "Lo" } [ 0x4DB5 category ] unit-test
-{ "Cs" } [ 0xDD00 category ] unit-test
-{ t } [ CHAR: \t blank? ] unit-test
-{ t } [ CHAR: \s blank? ] unit-test
-{ t } [ CHAR: \r blank? ] unit-test
-{ t } [ CHAR: \n blank? ] unit-test
-{ f } [ CHAR: a blank? ] unit-test
index 1e6a7b3a9909c23bf6cdc22201fe65d724a5e486..291e2d6499e1c9a4de5ac01719742dc3438f91b4 100644 (file)
@@ -1,16 +1,34 @@
 ! Copyright (C) 2008 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2008 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: unicode.categories.syntax sequences unicode.data ;
+USING: accessors assocs classes.parser classes.predicate fry
+kernel math parser sequences splitting unicode.data
+unicode.data.private ;
 IN: unicode.categories
 
 IN: unicode.categories
 
-CATEGORY: blank Zs Zl Zp | "\r\n\t" member? ;
-CATEGORY: letter Ll | "Other_Lowercase" property? ;
-CATEGORY: LETTER Lu | "Other_Uppercase" property? ;
-CATEGORY: Letter Lu Ll Lt Lm Lo Nl ;
-CATEGORY: digit Nd Nl No ;
-CATEGORY-NOT: printable Cc Cf Cs Co Cn ;
-CATEGORY: alpha Lu Ll Lt Lm Lo Nd Nl No | "Other_Alphabetic" property? ;
-CATEGORY: control Cc ;
-CATEGORY-NOT: uncased Lu Ll Lt Lm Mn Me ;
-CATEGORY-NOT: character Cn ;
-CATEGORY: math Sm | "Other_Math" property? ;
+! For use in CATEGORY:
+SYMBOLS: Cn Lu Ll Lt Lm Lo Mn Mc Me Nd Nl No Pc Pd Ps Pe Pi Pf Po Sm Sc Sk So Zs Zl Zp Cc Cf Cs Co | ;
+
+<PRIVATE
+
+: [category] ( categories code -- quot )
+    '[ integer>fixnum-strict dup category# _ member? [ drop t ] _ if ] ;
+
+: integer-predicate-class ( word predicate -- )
+    integer swap define-predicate-class ;
+
+: define-category ( word categories code -- )
+    [category] integer-predicate-class ;
+
+: define-not-category ( word categories code -- )
+    [category] [ not ] compose integer-predicate-class ;
+
+: parse-category ( -- word tokens quot )
+    scan-new-class \ ; parse-until { | } split1
+    [ [ name>> categories-map at ] B{ } map-as ]
+    [ [ [ ] like ] [ [ drop f ] ] if* ] bi* ;
+
+PRIVATE>
+
+SYNTAX: CATEGORY: parse-category define-category ;
+
+SYNTAX: CATEGORY-NOT: parse-category define-not-category ;
index 7efad41e84c06ab2785c566591fba77a35241890..651d51c34cc595743d604624ac9548647274c8a9 100644 (file)
@@ -1 +1 @@
-Unicode character categories
+Parsing words used by Unicode implementation
diff --git a/basis/unicode/categories/syntax/authors.txt b/basis/unicode/categories/syntax/authors.txt
deleted file mode 100644 (file)
index f990dd0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Daniel Ehrenberg
diff --git a/basis/unicode/categories/syntax/summary.txt b/basis/unicode/categories/syntax/summary.txt
deleted file mode 100644 (file)
index 651d51c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Parsing words used by Unicode implementation
diff --git a/basis/unicode/categories/syntax/syntax-docs.factor b/basis/unicode/categories/syntax/syntax-docs.factor
deleted file mode 100644 (file)
index 89c8d35..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-! Copyright (C) 2008 Daniel Ehrenberg.
-! See http://factorcode.org/license.txt for BSD license.
-USING: help.syntax help.markup ;
-IN: unicode.categories.syntax
-
-ABOUT: "unicode.categories.syntax"
-
-ARTICLE: "unicode.categories.syntax" "Unicode category syntax"
-"There is special syntax sugar for making predicate classes which are unions of Unicode general categories, plus some other code."
-{ $subsections
-    POSTPONE: CATEGORY:
-    POSTPONE: CATEGORY-NOT:
-} ;
-
-HELP: CATEGORY:
-{ $syntax "CATEGORY: foo Nl Pd Lu | \"Diacritic\" property? ;" }
-{ $description "This defines a predicate class which is a subset of code points. In this example, " { $snippet "foo" } " is the class of characters which are in the general category Nl or Pd or Lu, or which have the Diacritic property." } ;
-
-HELP: CATEGORY-NOT:
-{ $syntax "CATEGORY-NOT: foo Nl Pd Lu | \"Diacritic\" property? ;" }
-{ $description "This defines a predicate class which is a subset of code points, the complement of what " { $link POSTPONE: CATEGORY: } " would define. In this example, " { $snippet "foo" } " is the class of characters which are neither in the general category Nl or Pd or Lu, nor have the Diacritic property." } ;
diff --git a/basis/unicode/categories/syntax/syntax-tests.factor b/basis/unicode/categories/syntax/syntax-tests.factor
deleted file mode 100644 (file)
index 536c0e9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-! Copyright (C) 2009 Daniel Ehrenberg.
-! See http://factorcode.org/license.txt for BSD license.
diff --git a/basis/unicode/categories/syntax/syntax.factor b/basis/unicode/categories/syntax/syntax.factor
deleted file mode 100644 (file)
index acb3fbd..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-! Copyright (C) 2008, 2009 Daniel Ehrenberg.
-! See http://factorcode.org/license.txt for BSD license.
-USING: unicode.data kernel math sequences parser unicode.data.private
-bit-arrays namespaces sequences.private arrays classes.parser
-assocs classes.predicate sets fry splitting accessors ;
-IN: unicode.categories.syntax
-
-! For use in CATEGORY:
-SYMBOLS: Cn Lu Ll Lt Lm Lo Mn Mc Me Nd Nl No Pc Pd Ps Pe Pi Pf Po Sm Sc Sk So Zs Zl Zp Cc Cf Cs Co | ;
-
-<PRIVATE
-
-: [category] ( categories code -- quot )
-    '[ integer>fixnum-strict dup category# _ member? [ drop t ] _ if ] ;
-
-: integer-predicate-class ( word predicate -- )
-    integer swap define-predicate-class ;
-
-: define-category ( word categories code -- )
-    [category] integer-predicate-class ;
-
-: define-not-category ( word categories code -- )
-    [category] [ not ] compose integer-predicate-class ;
-
-: parse-category ( -- word tokens quot )
-    scan-new-class \ ; parse-until { | } split1
-    [ [ name>> categories-map at ] B{ } map-as ]
-    [ [ [ ] like ] [ [ drop f ] ] if* ] bi* ;
-
-PRIVATE>
-
-SYNTAX: CATEGORY: parse-category define-category ;
-
-SYNTAX: CATEGORY-NOT: parse-category define-not-category ;
diff --git a/basis/unicode/categories/syntax/tags.txt b/basis/unicode/categories/syntax/tags.txt
deleted file mode 100644 (file)
index 8e27be7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-text
index 33b6f2f72fbd19d5c1f972da32db95dc993cae72..79379d57a9075041f6223c8526a7cd32a2598e35 100644 (file)
@@ -1,5 +1,5 @@
 USING: byte-arrays help.syntax help.markup kernel math.order
 USING: byte-arrays help.syntax help.markup kernel math.order
-strings ;
+strings unicode ;
 IN: unicode.collation
 
 ARTICLE: "unicode.collation" "Collation and weak comparison"
 IN: unicode.collation
 
 ARTICLE: "unicode.collation" "Collation and weak comparison"
index 02d813afcea18b45fdc6003bccb4f71ba7f756ae..be82f697cdd9ac0204292f7514259c504dd06ae4 100644 (file)
@@ -1,13 +1,13 @@
 ! Copyright (C) 2008 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2008 Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: sequences io.files io.encodings.ascii kernel splitting
-accessors math.parser ascii io assocs strings math namespaces make
-sorting combinators math.order arrays unicode.normalize unicode.data
-locals macros sequences.deep words unicode.breaks quotations
-combinators.short-circuit simple-flat-file ;
+USING: accessors arrays assocs combinators
+combinators.short-circuit kernel locals make math math.order
+math.parser namespaces sequences simple-flat-file splitting
+strings unicode.data ;
 IN: unicode.collation
 
 <PRIVATE
 IN: unicode.collation
 
 <PRIVATE
+
 SYMBOL: ducet
 
 TUPLE: weight primary secondary tertiary ignorable? ;
 SYMBOL: ducet
 
 TUPLE: weight primary secondary tertiary ignorable? ;
@@ -112,6 +112,7 @@ ducet get-global insert-helpers
             [ [ variable-weight ] each ]
         } cleave
     ] { } make ;
             [ [ variable-weight ] each ]
         } cleave
     ] { } make ;
+
 PRIVATE>
 
 : completely-ignorable? ( weight -- ? )
 PRIVATE>
 
 : completely-ignorable? ( weight -- ? )
@@ -124,36 +125,3 @@ PRIVATE>
         [ swap ignorable?>> or ]
         [ swap completely-ignorable? or not ] 2bi
     ] filter nip ;
         [ swap ignorable?>> or ]
         [ swap completely-ignorable? or not ] 2bi
     ] filter nip ;
-
-: collation-key ( string -- key )
-    nfd string>graphemes graphemes>weights
-    filter-ignorable weights>bytes ;
-
-<PRIVATE
-: insensitive= ( str1 str2 levels-removed -- ? )
-    [
-        [ collation-key ] dip
-        [ [ 0 = not ] trim-tail but-last ] times
-    ] curry same? ;
-PRIVATE>
-
-: primary= ( str1 str2 -- ? )
-    3 insensitive= ;
-
-: secondary= ( str1 str2 -- ? )
-    2 insensitive= ;
-
-: tertiary= ( str1 str2 -- ? )
-    1 insensitive= ;
-
-: quaternary= ( str1 str2 -- ? )
-    0 insensitive= ;
-
-: w/collation-key ( str -- {str,key} )
-    [ collation-key ] keep 2array ;
-
-: sort-strings ( strings -- sorted )
-    [ w/collation-key ] map natural-sort values ;
-
-: string<=> ( str1 str2 -- <=> )
-    [ w/collation-key ] compare ;
index edfa81d0a34dae56527b6107732fa84101f69565..eb7e519f73dba26e441d3e9f133c097fa6563d36 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2009 Daniel Ehrenberg
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2009 Daniel Ehrenberg
 ! See http://factorcode.org/license.txt for BSD license.
-USING: help.syntax help.markup kernel math strings ;
+USING: help.syntax help.markup kernel math strings unicode ;
 IN: unicode.data
 
 ABOUT: "unicode.data"
 IN: unicode.data
 
 ABOUT: "unicode.data"
index ebc3f6d9ef03b4898949f1f4ea61904f92d16033..0a759c625e975dfbc0892f8a8365a6d264aa1a7d 100644 (file)
@@ -28,17 +28,12 @@ PRIVATE>
 CONSTANT: name-map H{ }
 
 : canonical-entry ( char -- seq ) canonical-map at ; inline
 CONSTANT: name-map H{ }
 
 : canonical-entry ( char -- seq ) canonical-map at ; inline
-: combine-chars ( a b -- char/f ) >2ch combine-map at ; inline
 : compatibility-entry ( char -- seq ) compatibility-map at ; inline
 : compatibility-entry ( char -- seq ) compatibility-map at ; inline
+: combine-chars ( a b -- char/f ) >2ch combine-map at ; inline
 : combining-class ( char -- n ) class-map at ; inline
 : non-starter? ( char -- ? ) combining-class { 0 f } member? not ; inline
 : combining-class ( char -- n ) class-map at ; inline
 : non-starter? ( char -- ? ) combining-class { 0 f } member? not ; inline
-: name>char ( name -- char ) name-map at ; inline
-: char>name ( char -- name ) name-map value-at ; inline
 : property ( property -- interval-map ) properties at ; foldable
 : property? ( char property -- ? ) property interval-sets:in? ; inline
 : property ( property -- interval-map ) properties at ; foldable
 : property? ( char property -- ? ) property interval-sets:in? ; inline
-: ch>lower ( ch -- lower ) simple-lower ?at drop ; inline
-: ch>upper ( ch -- upper ) simple-upper ?at drop ; inline
-: ch>title ( ch -- title ) simple-title ?at drop ; inline
 : special-case ( ch -- casing-tuple ) special-casing at ; inline
 
 ! For non-existent characters, use Cn
 : special-case ( ch -- casing-tuple ) special-casing at ; inline
 
 ! For non-existent characters, use Cn
@@ -143,7 +138,7 @@ PRIVATE>
     name-map sort-values keys
     [ { [ "first>" tail? ] [ "last>" tail? ] } 1|| ] filter
     2 group [
     name-map sort-values keys
     [ { [ "first>" tail? ] [ "last>" tail? ] } 1|| ] filter
     2 group [
-        [ name>char ] bi@ [ [a,b] ] [ table ?nth ] bi
+        [ name-map at ] bi@ [ [a,b] ] [ table ?nth ] bi
         [ swap table ?set-nth ] curry each
     ] assoc-each table ;
 
         [ swap table ?set-nth ] curry each
     ] assoc-each table ;
 
@@ -208,14 +203,15 @@ load-data {
 } cleave
 
 combine-map keys [ 2ch> nip ] map
 } cleave
 
 combine-map keys [ 2ch> nip ] map
-[ combining-class ] reject
+[ class-map at ] reject
 [ 0 swap class-map set-at ] each
 
 load-special-casing special-casing swap assoc-union! drop
 
 load-properties properties swap assoc-union! drop
 
 [ 0 swap class-map set-at ] each
 
 load-special-casing special-casing swap assoc-union! drop
 
 load-properties properties swap assoc-union! drop
 
-[ name>char [ "Invalid character" throw ] unless* ]
-name>char-hook set-global
-
 PRIVATE>
 PRIVATE>
+
+[
+    name-map at [ "Invalid character" throw ] unless*
+] name>char-hook set-global
index 58f381446e74a50b1aa5b43eabf3a2c8db1f2bb2..fb71b614b2acf54b99e5bbd2be24cc851820d45b 100644 (file)
@@ -1,4 +1,4 @@
-USING: help.syntax help.markup strings ;
+USING: help.syntax help.markup strings unicode ;
 IN: unicode.normalize
 
 ABOUT: "unicode.normalize"
 IN: unicode.normalize
 
 ABOUT: "unicode.normalize"
index ee9e1dcad35fb70171fc74f1bdf2f25be92589b4..5c9065dc91e3e28b5dfd7121a23ef907fa6a0bf5 100644 (file)
@@ -89,23 +89,6 @@ HINTS: (nfd) string ;
 
 HINTS: (nfkd) string ;
 
 
 HINTS: (nfkd) string ;
 
-PRIVATE>
-
-: nfd ( string -- nfd )
-    [ (nfd) ] with-string ;
-
-: nfkd ( string -- nfkd )
-    [ (nfkd) ] with-string ;
-
-: string-append ( s1 s2 -- string )
-    [ append ] keep
-    0 over ?nth non-starter?
-    [ length dupd reorder-back ] [ drop ] if ;
-
-HINTS: string-append string string ;
-
-<PRIVATE
-
 ! Normalization -- Composition
 
 : initial-medial? ( str i -- ? )
 ! Normalization -- Composition
 
 : initial-medial? ( str i -- ? )
@@ -189,9 +172,3 @@ DEFER: compose-iter
 HINTS: combine string ;
 
 PRIVATE>
 HINTS: combine string ;
 
 PRIVATE>
-
-: nfc ( string -- nfc )
-    [ (nfd) combine ] with-string ;
-
-: nfkc ( string -- nfkc )
-    [ (nfkd) combine ] with-string ;
index ed255cc803b5778b2fb03f056505b947e0e817c5..5bdffbb2335d5a7982a625f98db996c84000e3c1 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2009 Daniel Ehrenberg
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2009 Daniel Ehrenberg
 ! See http://factorcode.org/license.txt for BSD license.
-USING: help.syntax help.markup strings ;
+USING: help.syntax help.markup strings unicode ;
 IN: unicode.script
 
 ABOUT: "unicode.script"
 IN: unicode.script
 
 ABOUT: "unicode.script"
index 278199e63b98885bd47fbcd248e5fdb44ca0a847..7d9a0f0bd71d621c0cb7b69654274966d3fd2dc4 100644 (file)
@@ -4,15 +4,8 @@ USING: interval-maps namespaces parser simple-flat-file
 words.constant ;
 IN: unicode.script
 
 words.constant ;
 IN: unicode.script
 
-<PRIVATE
-
 <<
 "script-table" create-word-in
 "vocab:unicode/script/Scripts.txt" load-interval-file
 define-constant
 >>
 <<
 "script-table" create-word-in
 "vocab:unicode/script/Scripts.txt" load-interval-file
 define-constant
 >>
-
-PRIVATE>
-
-: script-of ( char -- script )
-    script-table interval-at ;
index 24cf64f9e028cb820d716b59ea6e840bb37dcbcb..9d49fc9dbb83a172aaeb9179a91d631d6af2dd56 100644 (file)
@@ -15,7 +15,7 @@ $nl
 { $vocab-subsection "Word and grapheme breaks" "unicode.breaks" }
 { $vocab-subsection "Unicode normalization" "unicode.normalize" }
 "The following are mostly for internal use:"
 { $vocab-subsection "Word and grapheme breaks" "unicode.breaks" }
 { $vocab-subsection "Unicode normalization" "unicode.normalize" }
 "The following are mostly for internal use:"
-{ $vocab-subsection "Unicode category syntax" "unicode.categories.syntax" }
+{ $vocab-subsection "Unicode category syntax" "unicode.categories" }
 { $vocab-subsection "Unicode data tables" "unicode.data" }
 { $see-also "ascii" "io.encodings" } ;
 
 { $vocab-subsection "Unicode data tables" "unicode.data" }
 { $see-also "ascii" "io.encodings" } ;
 
index 32adb961d4e156a391b5c16ff366a0bc4efac0ac..97d1f20e267443da02ab9f2e118422c78e5503de 100644 (file)
@@ -1 +1,200 @@
+
+USING: accessors arrays assocs combinators.short-circuit fry
+hints interval-maps kernel math math.order sequences sorting
+strings unicode.breaks.private unicode.case.private
+unicode.categories unicode.collation unicode.collation.private
+unicode.data unicode.data.private unicode.normalize.private
+unicode.script ;
+
 IN: unicode
 IN: unicode
+
+CATEGORY: blank Zs Zl Zp | "\r\n\t" member? ;
+
+CATEGORY: letter Ll | "Other_Lowercase" property? ;
+
+CATEGORY: LETTER Lu | "Other_Uppercase" property? ;
+
+CATEGORY: Letter Lu Ll Lt Lm Lo Nl ;
+
+CATEGORY: digit Nd Nl No ;
+
+CATEGORY-NOT: printable Cc Cf Cs Co Cn ;
+
+CATEGORY: alpha Lu Ll Lt Lm Lo Nd Nl No | "Other_Alphabetic" property? ;
+
+CATEGORY: control Cc ;
+
+CATEGORY-NOT: uncased Lu Ll Lt Lm Mn Me ;
+
+CATEGORY-NOT: character Cn ;
+
+CATEGORY: math Sm | "Other_Math" property? ;
+
+: script-of ( char -- script )
+    script-table interval-at ;
+
+: name>char ( name -- char ) name-map at ; inline
+
+: char>name ( char -- name ) name-map value-at ; inline
+
+: ch>lower ( ch -- lower ) simple-lower ?at drop ; inline
+
+: ch>upper ( ch -- upper ) simple-upper ?at drop ; inline
+
+: ch>title ( ch -- title ) simple-title ?at drop ; inline
+
+: first-grapheme ( str -- i )
+    unclip-slice grapheme-class over
+    [ grapheme-class [ nip ] [ grapheme-break? ] 2bi ] find drop
+    nip swap length or 1 + ;
+
+: first-grapheme-from ( start str -- i )
+    over tail-slice first-grapheme + ;
+
+: last-grapheme ( str -- i )
+    unclip-last-slice grapheme-class swap
+    [ grapheme-class dup rot grapheme-break? ] find-last drop ?1+ nip ;
+
+: last-grapheme-from ( end str -- i )
+    swap head-slice last-grapheme ;
+
+<PRIVATE
+
+: >pieces ( str quot: ( str -- i ) -- graphemes )
+    [ dup empty? not ] swap '[ dup @ cut-slice swap ] produce nip ; inline
+
+PRIVATE>
+
+: >graphemes ( str -- graphemes )
+    [ first-grapheme ] >pieces ;
+
+: string-reverse ( str -- rts )
+    >graphemes reverse! concat ;
+
+: first-word ( str -- i )
+    [ [ length ] [ first word-break-prop ] bi ] keep
+    1 swap dup '[ _ word-break-next ] find-index-from
+    drop nip swap or ;
+
+: >words ( str -- words )
+    [ first-word ] >pieces ;
+
+<PRIVATE
+
+: nth-next ( i str -- str[i-1] str[i] )
+    [ [ 1 - ] keep ] dip '[ _ nth ] bi@ ;
+
+PRIVATE>
+
+: word-break-at? ( i str -- ? )
+    {
+        [ drop zero? ]
+        [ length = ]
+        [
+            [ nth-next [ word-break-prop ] dip ] 2keep
+            word-break-next nip
+        ]
+    } 2|| ;
+
+: first-word-from ( start str -- i )
+    over tail-slice first-word + ;
+
+: last-word ( str -- i )
+    [ length iota ] keep '[ _ word-break-at? ] find-last drop 0 or ;
+
+: last-word-from ( end str -- i )
+    swap head-slice last-word ;
+
+: >lower ( string -- lower )
+    locale>lower final-sigma
+    [ lower>> ] [ ch>lower ] map-case ;
+
+HINTS: >lower string ;
+
+: >upper ( string -- upper )
+    locale>upper
+    [ upper>> ] [ ch>upper ] map-case ;
+
+HINTS: >upper string ;
+
+<PRIVATE
+
+: (>title) ( string -- title )
+    locale>upper
+    [ title>> ] [ ch>title ] map-case ; inline
+
+PRIVATE>
+
+: capitalize ( string -- title )
+    unclip-slice 1string [ >lower ] [ (>title) ] bi*
+    "" prepend-as ; inline
+
+: >title ( string -- title )
+    final-sigma >words [ capitalize ] map! concat ;
+
+HINTS: >title string ;
+
+: >case-fold ( string -- fold )
+    >upper >lower ;
+
+: lower? ( string -- ? ) dup >lower = ;
+
+: upper? ( string -- ? ) dup >upper = ;
+
+: title? ( string -- ? ) dup >title = ;
+
+: case-fold? ( string -- ? ) dup >case-fold = ;
+
+: nfd ( string -- nfd )
+    [ (nfd) ] with-string ;
+
+: nfkd ( string -- nfkd )
+    [ (nfkd) ] with-string ;
+
+: string-append ( s1 s2 -- string )
+    [ append ] keep
+    0 over ?nth non-starter?
+    [ length dupd reorder-back ] [ drop ] if ;
+
+HINTS: string-append string string ;
+
+: nfc ( string -- nfc )
+    [ (nfd) combine ] with-string ;
+
+: nfkc ( string -- nfkc )
+    [ (nfkd) combine ] with-string ;
+
+: collation-key ( string -- key )
+    nfd string>graphemes graphemes>weights
+    filter-ignorable weights>bytes ;
+
+<PRIVATE
+
+: insensitive= ( str1 str2 levels-removed -- ? )
+    [
+        [ collation-key ] dip
+        [ [ 0 = not ] trim-tail but-last ] times
+    ] curry same? ;
+
+PRIVATE>
+
+: primary= ( str1 str2 -- ? )
+    3 insensitive= ;
+
+: secondary= ( str1 str2 -- ? )
+    2 insensitive= ;
+
+: tertiary= ( str1 str2 -- ? )
+    1 insensitive= ;
+
+: quaternary= ( str1 str2 -- ? )
+    0 insensitive= ;
+
+: w/collation-key ( str -- {str,key} )
+    [ collation-key ] keep 2array ;
+
+: sort-strings ( strings -- sorted )
+    [ w/collation-key ] map natural-sort values ;
+
+: string<=> ( str1 str2 -- <=> )
+    [ w/collation-key ] compare ;
index 35338bfd2214ac862c771ef5230f27ae4b1261f0..21b60feffc139d0fcdcc960adcf9f2382379a5f7 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license
 USING: byte-arrays calendar checksums checksums.md5
 checksums.sha io.binary kernel math math.parser math.ranges
 ! See http://factorcode.org/license.txt for BSD license
 USING: byte-arrays calendar checksums checksums.md5
 checksums.sha io.binary kernel math math.parser math.ranges
-random sequences strings system unicode.case ;
+random sequences strings system unicode ;
 IN: uuid
 
 <PRIVATE
 IN: uuid
 
 <PRIVATE
index 2488f87ea70246bd50a35055d309f47d1dfd872e..c3b800ae57d800dc4343e786008a4206400879d0 100644 (file)
@@ -2,8 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays assocs classes continuations hashtables kernel
 make math math.functions math.parser math.ranges namespaces
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays assocs classes continuations hashtables kernel
 make math math.functions math.parser math.ranges namespaces
-quotations regexp sequences sets unicode.case unicode.categories
-words xmode.catalog ;
+quotations regexp sequences sets unicode words xmode.catalog ;
 IN: validators
 
 : v-checkbox ( str -- ? )
 IN: validators
 
 : v-checkbox ( str -- ? )
index fca62c85bef4dc366277822144dc0fece5facb15..83a8df0148f663173bbd8731f828fba2b30a7eb2 100755 (executable)
@@ -1,5 +1,5 @@
 USING: alien.data kernel locals math math.bitwise
 USING: alien.data kernel locals math math.bitwise
-windows.kernel32 sequences byte-arrays unicode.categories
+windows.kernel32 sequences byte-arrays unicode
 io.encodings.string alien.strings arrays literals
 windows.types specialized-arrays math.parser ;
 SPECIALIZED-ARRAY: TCHAR
 io.encodings.string alien.strings arrays literals
 windows.types specialized-arrays math.parser ;
 SPECIALIZED-ARRAY: TCHAR
index a117b3cec88efd55d88fd174fabad5c0c819c999..1654d4f898eb3c81d6ce5a34d6ac5051cb414080 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2005, 2009 Daniel Ehrenberg
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2005, 2009 Daniel Ehrenberg
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel sequences unicode.categories.syntax math math.order
+USING: kernel sequences unicode.categories math math.order
 combinators hints combinators.short-circuit ;
 IN: xml.char-classes
 
 combinators hints combinators.short-circuit ;
 IN: xml.char-classes
 
index bdd33ed5913c5e5208a832814b7387bd786512c6..04aee4d69e95b23dd2b54aa5aaa76b61da29cd8d 100644 (file)
@@ -3,7 +3,7 @@
 USING: kernel namespaces xml.tokenize xml.state xml.name
 xml.data accessors arrays make xml.char-classes fry assocs sequences
 math xml.errors sets combinators io.encodings io.encodings.iana
 USING: kernel namespaces xml.tokenize xml.state xml.name
 xml.data accessors arrays make xml.char-classes fry assocs sequences
 math xml.errors sets combinators io.encodings io.encodings.iana
-unicode.case xml.dtd strings xml.entities unicode.categories ;
+unicode xml.dtd strings xml.entities ;
 IN: xml.elements
 
 : take-interpolated ( quot -- interpolated )
 IN: xml.elements
 
 : take-interpolated ( quot -- interpolated )
index 9e5dfc9ecaf4913313621e0b8fcc55cf4b8b125f..dba6469b7da81e69e2c6699840c8cffe67d62b36 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors arrays assocs combinators
 combinators.short-circuit fry generalizations inverse kernel
 namespaces sequences sequences.generalizations sorting strings
 USING: accessors arrays assocs combinators
 combinators.short-circuit fry generalizations inverse kernel
 namespaces sequences sequences.generalizations sorting strings
-unicode.categories xml.data xml.syntax xml.syntax.private ;
+unicode xml.data xml.syntax xml.syntax.private ;
 IN: xml.syntax.inverse
 
 : remove-blanks ( seq -- newseq )
 IN: xml.syntax.inverse
 
 : remove-blanks ( seq -- newseq )
index d43c127e1f056dc8dbd2f7aef787c40c00a31338..8bea35c615f09dc04fd5732104ab3f0c3ec33314 100644 (file)
@@ -5,7 +5,7 @@ effects.parser sequences summary lexer splitting combinators
 locals memoize sequences.deep xml.data xml.state xml namespaces
 present arrays generalizations sequences.generalizations strings
 make math macros multiline combinators.short-circuit sorting fry
 locals memoize sequences.deep xml.data xml.state xml namespaces
 present arrays generalizations sequences.generalizations strings
 make math macros multiline combinators.short-circuit sorting fry
-unicode.categories effects ;
+unicode effects ;
 IN: xml.syntax
 
 <PRIVATE
 IN: xml.syntax
 
 <PRIVATE
index 0f7b339f38cb7b7527b0b7ddb38495bd149a16b0..a32d2560ac1504b433d4897ca45a60ffd240316f 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: hashtables kernel math namespaces sequences strings
 assocs combinators io io.streams.string accessors
 ! See http://factorcode.org/license.txt for BSD license.
 USING: hashtables kernel math namespaces sequences strings
 assocs combinators io io.streams.string accessors
-xml.data wrap.strings xml.entities unicode.categories fry ;
+xml.data wrap.strings xml.entities unicode fry ;
 IN: xml.writer
 
 SYMBOL: sensitive-tags
 IN: xml.writer
 
 SYMBOL: sensitive-tags
index 473d5305eaba74d7809c2281b1708944fa5c53ae..89bc0a6e93a71c5e2d6194789c524acc8115989a 100644 (file)
@@ -1,6 +1,6 @@
 USING: accessors assocs globs io.pathnames kernel memoize
 namespaces regexp sequences sorting splitting strings
 USING: accessors assocs globs io.pathnames kernel memoize
 namespaces regexp sequences sorting splitting strings
-unicode.case xml xml.data xml.syntax xml.traversal xmode.loader
+unicode xml xml.data xml.syntax xml.traversal xmode.loader
 xmode.rules xmode.utilities ;
 IN: xmode.catalog
 
 xmode.rules xmode.utilities ;
 IN: xmode.catalog
 
index 663e6c7f362104c1cd5dd36fa59ceaa9c3681e23..6cf8dd930a74be79a81f3fe0170ad5732e9065b1 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2007, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors kernel strings assocs sequences hashtables
 ! Copyright (C) 2007, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors kernel strings assocs sequences hashtables
-sorting unicode.case unicode.categories sets ;
+sorting unicode sets ;
 IN: xmode.keyword-map
 
 ! Based on org.gjt.sp.jedit.syntax.KeywordMap
 IN: xmode.keyword-map
 
 ! Based on org.gjt.sp.jedit.syntax.KeywordMap
index 7a67dc9f9b0b2e8bcb3046180681d59a978632dd..704c83a5189281c2ee20c62309e9303845e1b81c 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors xmode.tokens xmode.keyword-map kernel
 ! Copyright (C) 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors xmode.tokens xmode.keyword-map kernel
-sequences vectors assocs strings memoize unicode.case
+sequences vectors assocs strings memoize unicode
 regexp ;
 IN: xmode.rules
 
 regexp ;
 IN: xmode.rules
 
index 8b793f8fe19306293a4b02263f4d0482e7cc57e7..80c552add1ffd618f223e625eb38c41ac784309f 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2012 John Benediktsson
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (C) 2012 John Benediktsson
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel math random sequences strings unicode.case ;
+USING: kernel math random sequences strings unicode ;
 IN: benchmark.unicode
 
 : crazy-unicode-string ( -- string )
 IN: benchmark.unicode
 
 : crazy-unicode-string ( -- string )
index a42c422bb8be58f5a8a20871d5cbe8cf00a564b1..f20ba0f17d468888b8ae97998acfb4450285c7b8 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors combinators combinators.short-circuit
 generalizations kernel locals math.order math.ranges
 sequences.parser sequences sequences.generalizations
 USING: accessors combinators combinators.short-circuit
 generalizations kernel locals math.order math.ranges
 sequences.parser sequences sequences.generalizations
-sorting.functor sorting.slots unicode.categories ;
+sorting.functor sorting.slots unicode ;
 IN: c.lexer
 
 : take-c-comment ( sequence-parser -- seq/f )
 IN: c.lexer
 
 : take-c-comment ( sequence-parser -- seq/f )
index 0ccdf462b1f7da190d057cf3b4a8b13e02af5c14..6abd4c5a443b26790a4c94245fb9f321b0a1c00a 100644 (file)
@@ -3,8 +3,8 @@
 USING: sequences.parser io io.encodings.utf8 io.files
 io.streams.string kernel combinators accessors io.pathnames
 fry sequences arrays locals namespaces io.directories
 USING: sequences.parser io io.encodings.utf8 io.files
 io.streams.string kernel combinators accessors io.pathnames
 fry sequences arrays locals namespaces io.directories
-assocs math splitting make unicode.categories
-combinators.short-circuit c.lexer ;
+assocs math splitting make unicode combinators.short-circuit
+c.lexer ;
 IN: c.preprocessor
 
 : initial-library-paths ( -- seq )
 IN: c.preprocessor
 
 : initial-library-paths ( -- seq )
index 5ca78bc6df6bb37ff80b06b436081cb1d8505052..585051f0fefee833787a4973465d9d81bb013fc4 100644 (file)
@@ -3,7 +3,7 @@
 
 USING: arrays assocs combinators environment io kernel
 linked-assocs math.parser regexp sequences splitting strings
 
 USING: arrays assocs combinators environment io kernel
 linked-assocs math.parser regexp sequences splitting strings
-unicode.case urls.encoding ;
+unicode urls.encoding ;
 
 IN: cgi
 
 
 IN: cgi
 
index 0ab139c7a524afc2b20d4b963b8a662c0d0cb1be..4f25ae752052ef92326736e2fa274e4c0636d233 100644 (file)
@@ -5,7 +5,7 @@ io.directories io.directories.hierarchy io.encodings.binary
 io.encodings.detect io.encodings.utf8 io.files io.files.info
 io.files.temp io.files.types io.files.unique io.launcher
 io.pathnames kernel locals math math.parser namespaces sequences
 io.encodings.detect io.encodings.utf8 io.files io.files.info
 io.files.temp io.files.types io.files.unique io.launcher
 io.pathnames kernel locals math math.parser namespaces sequences
-sorting strings system unicode.categories xml.syntax xml.writer
+sorting strings system unicode xml.syntax xml.writer
 xmode.catalog xmode.marker xmode.tokens ;
 IN: codebook
 
 xmode.catalog xmode.marker xmode.tokens ;
 IN: codebook
 
index d566c512b11b7607de8499797d43b782739e783c..b065bd843d629b2483b2f726ccf65ab55512dd31 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors assocs byte-arrays combinators game.models
 io.encodings.ascii io.files io.pathnames io.streams.byte-array
 kernel namespaces sequences splitting
 USING: accessors assocs byte-arrays combinators game.models
 io.encodings.ascii io.files io.pathnames io.streams.byte-array
 kernel namespaces sequences splitting
-strings unicode.case arrays io.encodings ;
+strings unicode arrays io.encodings ;
 IN: game.models.loader
 
 ERROR: unknown-models-extension extension ;
 IN: game.models.loader
 
 ERROR: unknown-models-extension extension ;
index cb366672c5131c85518025ee4a2993f670a756e0..62c905ee9f1f7faafd9e1190702dcd13cc34b10d 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: combinators combinators.smart csv io.encodings.8-bit
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: combinators combinators.smart csv io.encodings.8-bit
-math.parser memoize sequences kernel unicode.categories money
+math.parser memoize sequences kernel unicode money
 io.encodings.8-bit.latin1 ;
 IN: geobytes
 
 io.encodings.8-bit.latin1 ;
 IN: geobytes
 
index aac7d3c4a37260cf45a42ae35505092615306b0a..be6f207cdc33417cd064cbc960284013538287f4 100644 (file)
@@ -5,7 +5,7 @@ io.pathnames io.streams.string kernel locals models namespaces
 sequences ui ui.gadgets ui.gadgets.buttons ui.gadgets.editors
 ui.gadgets.frames ui.gadgets.grids ui.gadgets.labels
 ui.gadgets.packs ui.gadgets.scrollers ui.gadgets.worlds
 sequences ui ui.gadgets ui.gadgets.buttons ui.gadgets.editors
 ui.gadgets.frames ui.gadgets.grids ui.gadgets.labels
 ui.gadgets.packs ui.gadgets.scrollers ui.gadgets.worlds
-ui.gadgets.tables ui.gadgets.labeled unicode.case ;
+ui.gadgets.tables ui.gadgets.labeled unicode ;
 FROM: gml => gml ;
 IN: gml.ui
 
 FROM: gml => gml ;
 IN: gml.ui
 
index 09157cd613cdafb8f37dc628a1bcc6062a6ae85d..e294f3764505f36184925530ae7d0351d44b6ba5 100644 (file)
@@ -5,7 +5,7 @@ graphviz.dot images.viewer io.backend io.directories
 io.encodings.8-bit.latin1 io.encodings.utf8 io.files
 io.files.temp io.files.unique io.launcher io.standard-paths
 kernel locals make namespaces sequences summary system threads
 io.encodings.8-bit.latin1 io.encodings.utf8 io.files
 io.files.temp io.files.unique io.launcher io.standard-paths
 kernel locals make namespaces sequences summary system threads
-unicode.case vocabs webbrowser words ;
+unicode vocabs webbrowser words ;
 IN: graphviz.render
 
 <PRIVATE
 IN: graphviz.render
 
 <PRIVATE
index e48f09d6608bf97d771c5a51d63c7104fb26832b..9a2653152597739aabd93710fdfa5a37531c0d55 100644 (file)
@@ -2,8 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors assocs combinators combinators.short-circuit
 fry html.parser http.client io kernel locals math math.statistics
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors assocs combinators combinators.short-circuit
 fry html.parser http.client io kernel locals math math.statistics
-sequences sets splitting unicode.case unicode.categories urls
-urls.encoding shuffle ;
+sequences sets splitting unicode urls urls.encoding shuffle ;
 IN: html.parser.analyzer
 
 : scrape-html ( url -- response vector )
 IN: html.parser.analyzer
 
 : scrape-html ( url -- response vector )
index 3b42e1b0921d94c66d5973d6634a29ae18d8ae08..14534ca8c0857e25db58ef49d3c8d6c3d5dd69c0 100644 (file)
@@ -2,8 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays hashtables sequences.parser
 html.parser.utils kernel namespaces sequences make math
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays hashtables sequences.parser
 html.parser.utils kernel namespaces sequences make math
-unicode.case unicode.categories combinators.short-circuit
-quoting fry ;
+unicode combinators.short-circuit quoting fry ;
 IN: html.parser
 
 TUPLE: tag name attributes text closing? ;
 IN: html.parser
 
 TUPLE: tag name attributes text closing? ;
index 4401e1f22946b0c8236b07b766c31e09d37135b1..88de6be85b789bf8d1ee74ece7727347b0bc38e7 100644 (file)
@@ -1,6 +1,6 @@
 USING: accessors assocs combinators html.parser
 html.parser.utils io io.streams.string kernel math math.order
 USING: accessors assocs combinators html.parser
 html.parser.utils io io.streams.string kernel math math.order
-namespaces sequences strings unicode.categories ;
+namespaces sequences strings unicode ;
 IN: html.parser.printer
 
 TUPLE: html-printer ;
 IN: html.parser.printer
 
 TUPLE: html-printer ;
index 754f3c460daf9010c3f78bb809018ea6d9124779..7fc59894b050aeb13c99a70afdb202c101960302 100644 (file)
@@ -2,10 +2,10 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: sequences io io.encodings.binary io.files io.pathnames
 strings kernel math io.mmap accessors combinators math.ranges
 ! See http://factorcode.org/license.txt for BSD license.
 USING: sequences io io.encodings.binary io.files io.pathnames
 strings kernel math io.mmap accessors combinators math.ranges
-unicode.categories byte-arrays io.encodings.string
+unicode byte-arrays io.encodings.string
 io.encodings.utf16 assocs math.parser combinators.short-circuit
 fry namespaces combinators.smart splitting io.encodings.ascii
 io.encodings.utf16 assocs math.parser combinators.short-circuit
 fry namespaces combinators.smart splitting io.encodings.ascii
-arrays io.files.info unicode.case io.directories.search literals
+arrays io.files.info io.directories.search literals
 math.functions continuations ;
 FROM: alien.c-types => uchar ;
 IN: id3
 math.functions continuations ;
 FROM: alien.c-types => uchar ;
 IN: id3
index 258886c1f5a757190af94454561ad9b4249b7fa0..730a819e98926b29ccb50d27fc9921d47dc68cc6 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors assocs calendar calendar.format
 combinators.smart io io.crlf io.encodings.utf8 kernel locals
 managed-server namespaces sequences sorting splitting
 USING: accessors assocs calendar calendar.format
 combinators.smart io io.crlf io.encodings.utf8 kernel locals
 managed-server namespaces sequences sorting splitting
-unicode.case ;
+unicode ;
 IN: managed-server.chat
 
 TUPLE: chat-server < managed-server ;
 IN: managed-server.chat
 
 TUPLE: chat-server < managed-server ;
index cf6a731f53be8df7fe852af25e53eaa4c55159ad..fac52bab7116da01bdeded384007cf90ade5dc11 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2005 Chris Double.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel lists lists.lazy tools.test strings math
 ! Copyright (C) 2005 Chris Double.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel lists lists.lazy tools.test strings math
-sequences parser-combinators arrays math.parser unicode.categories ;
+sequences parser-combinators arrays math.parser unicode ;
 IN: parser-combinators.tests
 
 ! Testing <&>
 IN: parser-combinators.tests
 
 ! Testing <&>
index 04d8efdc797c57791a46f3d89986097591c4fc06..39db45eb4a3254b0b1a7cc0bf68f907daeb04d4a 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: lists lists.lazy promises kernel sequences strings math
 arrays splitting quotations combinators namespaces locals
 ! See http://factorcode.org/license.txt for BSD license.
 USING: lists lists.lazy promises kernel sequences strings math
 arrays splitting quotations combinators namespaces locals
-unicode.case unicode.categories sequences.deep accessors ;
+unicode sequences.deep accessors ;
 IN: parser-combinators
 
 ! Parser combinator protocol
 IN: parser-combinators
 
 ! Parser combinator protocol
index fa5705679f57584b219cc08da3051f0d64a13ae3..e147620b34be2e1765a8f7e30cf1b5da50a275bf 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2006 Chris Double.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel strings math sequences lists.lazy words
 ! Copyright (C) 2006 Chris Double.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel strings math sequences lists.lazy words
-math.parser promises parser-combinators unicode.categories ;
+math.parser promises parser-combinators unicode ;
 IN: parser-combinators.simple
 
 : digit-parser ( -- parser )
 IN: parser-combinators.simple
 
 : digit-parser ( -- parser )
index 0b137212a3d508f97368651c0c82efb11c394330..c3b03eb8232e04289dca3a842bc4f7f229557ac1 100644 (file)
@@ -1,8 +1,7 @@
 ! Copyright (C) 2011-2012 John Benediktsson
 ! See http://factorcode.org/license.txt for BSD license
 
 ! Copyright (C) 2011-2012 John Benediktsson
 ! See http://factorcode.org/license.txt for BSD license
 
-USING: kernel fry make math sequences ui.text unicode.categories
-wrap ;
+USING: kernel fry make math sequences ui.text unicode wrap ;
 
 IN: pdf.wrap
 
 
 IN: pdf.wrap
 
index cf82e557d1959d9e6cd1bd4d3caf56f4d6970ac9..4b4548e8191bb4e780700d109e59d338f88d6e9a 100644 (file)
@@ -5,7 +5,7 @@ USING: accessors arrays byte-arrays fry hints kernel lists make math
     math.functions math.matrices math.order math.parser math.primes.factors
     math.primes.lists math.primes.miller-rabin math.ranges math.ratios
     math.vectors namespaces parser prettyprint quotations sequences sorting
     math.functions math.matrices math.order math.parser math.primes.factors
     math.primes.lists math.primes.miller-rabin math.ranges math.ratios
     math.vectors namespaces parser prettyprint quotations sequences sorting
-    strings unicode.case vocabs vocabs.parser words ;
+    strings unicode vocabs vocabs.parser words ;
 IN: project-euler.common
 
 ! A collection of words used by more than one Project Euler solution
 IN: project-euler.common
 
 ! A collection of words used by more than one Project Euler solution
index 1c5c8cd2468d041fdc844c577e1a0cfccd56cc90..e3c553a12733013ac2b470d6f19308607b1f9738 100644 (file)
@@ -3,7 +3,7 @@ fry io.files.temp kernel math namespaces python python.ffi
 python.modules.__builtin__ python.modules.argparse python.modules.datetime
 python.modules.os python.modules.os.path python.modules.sys
 python.modules.time python.objects python.syntax sets splitting tools.test
 python.modules.__builtin__ python.modules.argparse python.modules.datetime
 python.modules.os python.modules.os.path python.modules.sys
 python.modules.time python.objects python.syntax sets splitting tools.test
-unicode.categories ;
+unicode ;
 QUALIFIED-WITH: sequences s
 IN: python.syntax.tests
 
 QUALIFIED-WITH: sequences s
 IN: python.syntax.tests
 
index b6eefd214785192277c39d659655c6e38248bd0a..f5c098c8a821392a0b6f3fe6c9a4f9286e1c36d9 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors combinators constructors io.encodings.utf8
 io.files kernel math math.parser sequences splitting
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors combinators constructors io.encodings.utf8
 io.files kernel math math.parser sequences splitting
-unicode.categories ;
+unicode ;
 IN: resolv-conf
 
 TUPLE: network ip netmask ;
 IN: resolv-conf
 
 TUPLE: network ip netmask ;
index 6802fe0eda7245ae9074f4909aef976e71ab8e7f..33ac216f394e6da68a82240540896e2cd7c9ab96 100644 (file)
@@ -4,7 +4,7 @@ USING: accessors arrays assocs calendar.format combinators
 combinators.short-circuit fry globs http.client kernel make
 math.parser multiline namespaces present regexp
 regexp.combinators sequences sets splitting splitting.monotonic
 combinators.short-circuit fry globs http.client kernel make
 math.parser multiline namespaces present regexp
 regexp.combinators sequences sets splitting splitting.monotonic
-unicode.case unicode.categories urls ;
+unicode urls ;
 IN: robots
 
 ! visit-time is GMT, request-rate is pages/second
 IN: robots
 
 ! visit-time is GMT, request-rate is pages/second
index 403ef9daf2bad3d6ba8eac1088b22529da270a4d..9ca3c3bd3a2108d53401b8bbad3a2c2f17255ad8 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (c) 2012 Anonymous
 ! See http://factorcode.org/license.txt for BSD license.
 ! Copyright (c) 2012 Anonymous
 ! See http://factorcode.org/license.txt for BSD license.
-USING: continuations kernel io io.streams.string locals unicode.categories ;
+USING: continuations kernel io io.streams.string locals unicode ;
 IN: rosetta-code.odd-word
 
 ! http://rosettacode.org/wiki/Odd_word_problem
 IN: rosetta-code.odd-word
 
 ! http://rosettacode.org/wiki/Odd_word_problem
index e1067b14d4c261ec83445d925b0a92802e6c4cf8..2886d5190edf6f917fc1cff2958c2db77544c25d 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: grouping http.client io io.encodings.utf8 io.files
 io.files.temp kernel math memoize sequences sequences.extras
 ! See http://factorcode.org/license.txt for BSD license.
 USING: grouping http.client io io.encodings.utf8 io.files
 io.files.temp kernel math memoize sequences sequences.extras
-unicode.case urls ;
+unicode urls ;
 IN: rosetta-code.ordered-words
 
 ! http://rosettacode.org/wiki/Ordered_words
 IN: rosetta-code.ordered-words
 
 ! http://rosettacode.org/wiki/Ordered_words
index 3bc38ed7a0019b9985ab9da3227a369729b01236..be0378409ee0ac55e8b3af419661a53ce74f668d 100644 (file)
@@ -1,6 +1,6 @@
 ! (c)2010 Joe Groff bsd license
 USING: assocs kernel sequences sequences.inserters tools.test
 ! (c)2010 Joe Groff bsd license
 USING: assocs kernel sequences sequences.inserters tools.test
-unicode.case ;
+unicode ;
 IN: sequences.inserters.tests
 
 { V{ 1 2 "Three" "Four" "Five" } } [
 IN: sequences.inserters.tests
 
 { V{ 1 2 "Three" "Four" "Five" } } [
index 8e5771c5f2a90c198f6dd06500a761547d8be61d..89d19e94fa75bf81c92170d3a77c0af117be7ca3 100644 (file)
@@ -45,7 +45,7 @@ CONSTANT: google-slides
         { $code "10 dup 0 < [ 1 - ] [ 1 + ] if ." }
         { $code "10 [ \"Hello Googlers!\" print ] times" }
         { $code
         { $code "10 dup 0 < [ 1 - ] [ 1 + ] if ." }
         { $code "10 [ \"Hello Googlers!\" print ] times" }
         { $code
-            "USING: io.encodings.ascii unicode.case ;"
+            "USING: io.encodings.ascii unicode ;"
             "{ \"tomato\" \"orange\" \"banana\" }"
             "\"out.txt\" ascii ["
             "    [ >upper print ] each"
             "{ \"tomato\" \"orange\" \"banana\" }"
             "\"out.txt\" ascii ["
             "    [ >upper print ] each"
@@ -246,7 +246,7 @@ CONSTANT: google-slides
     }
     { $slide "Unicode strings"
         "Unicode-aware case conversion, char classes, collation, word breaks, and so on..."
     }
     { $slide "Unicode strings"
         "Unicode-aware case conversion, char classes, collation, word breaks, and so on..."
-        { $code "USE: unicode.case" "\"ß\" >upper ." }
+        { $code "USE: unicode" "\"ß\" >upper ." }
     }
     { $slide "Unicode strings"
         "All external byte I/O is encoded/decoded"
     }
     { $slide "Unicode strings"
         "All external byte I/O is encoded/decoded"
index ea93245ae21af5ab2ec2589e0604f04a46609efc..407700221900fdcea5684db20416df8c5d55a831 100644 (file)
@@ -3,7 +3,7 @@
 
 USING: arrays assocs combinators.short-circuit command-line
 environment io io.backend io.files io.files.info io.pathnames
 
 USING: arrays assocs combinators.short-circuit command-line
 environment io io.backend io.files io.files.info io.pathnames
-kernel namespaces sequences sets splitting system unicode.case ;
+kernel namespaces sequences sets splitting system unicode ;
 
 IN: tools.which
 
 
 IN: tools.which
 
index 2575d4bb614ca8bab98edb1ec1debe2a6afbe12c..e04c7c1a3d2091a32b027c774691b9e0d2dac4d1 100644 (file)
@@ -3,7 +3,7 @@
 
 USING: assocs combinators combinators.short-circuit formatting
 grouping hashtables io kernel make math math.parser sequences
 
 USING: assocs combinators combinators.short-circuit formatting
 grouping hashtables io kernel make math math.parser sequences
-splitting strings unicode.categories ;
+splitting strings unicode ;
 
 IN: txon
 
 
 IN: txon
 
index aa7885099d884d8e900c5ca1a6f52a787449f08b..fd53988b939cf63f2e01efeb7ea74ec06de7013e 100644 (file)
@@ -4,7 +4,7 @@ USING: accessors assocs furnace.actions furnace.redirection
 help.html help.topics html.components html.forms http.server
 http.server.dispatchers http.server.static io.directories
 io.files.temp kernel locals namespaces sequences
 help.html help.topics html.components html.forms http.server
 http.server.dispatchers http.server.static io.directories
 io.files.temp kernel locals namespaces sequences
-unicode.categories urls ;
+unicode urls ;
 IN: webapps.help
 
 TUPLE: help-webapp < dispatcher ;
 IN: webapps.help
 
 TUPLE: help-webapp < dispatcher ;
index 19368e32ab597633b85900aa951655a5dd80ec74..08927bb31d3fe4e8e464771652b00a654cf5a277 100644 (file)
@@ -3,7 +3,7 @@
 USING: accessors assocs combinators combinators.short-circuit
 combinators.smart fry io.encodings.utf8 io.files kernel
 math.parser math.statistics memoize namespaces sequences
 USING: accessors assocs combinators combinators.short-circuit
 combinators.smart fry io.encodings.utf8 io.files kernel
 math.parser math.statistics memoize namespaces sequences
-splitting unicode.case calendar arrays ;
+splitting unicode calendar arrays ;
 IN: zoneinfo
 
 CONSTANT: zoneinfo-paths
 IN: zoneinfo
 
 CONSTANT: zoneinfo-paths
index 9904f857bae9f1610d3b5d11142ffe672c6b0cca..292e5f15b52fb881c92541f85ee8662fdc6688a8 100644 (file)
@@ -1,6 +1,6 @@
 
 USING: kernel assocs locals combinators
 
 USING: kernel assocs locals combinators
-       math math.functions system unicode.case ;
+       math math.functions system unicode ;
 
 IN: dns.cache.nx
 
 
 IN: dns.cache.nx
 
index 2103c033fea1d1e592c45ef42bec5825b22a135b..e2ce5239d1a27f893c22eebcc23ad0df8496994f 100644 (file)
@@ -1,6 +1,6 @@
 
 USING: kernel sequences assocs sets locals combinators
 
 USING: kernel sequences assocs sets locals combinators
-       accessors system math math.functions unicode.case prettyprint
+       accessors system math math.functions unicode prettyprint
        combinators.smart dns ;
 
 IN: dns.cache.rr
        combinators.smart dns ;
 
 IN: dns.cache.rr
index 53d118608c95133ce8f55e7fe5f7d1fa70f99c6e..072e6a97089448429dd221ebe522c11a13c2ea12 100644 (file)
@@ -1,6 +1,6 @@
 
 USING: kernel combinators sequences sets math threads namespaces continuations
 
 USING: kernel combinators sequences sets math threads namespaces continuations
-       debugger io io.sockets unicode.case accessors destructors
+       debugger io io.sockets unicode accessors destructors
        combinators.short-circuit combinators.smart
        fry arrays
        dns dns.util dns.misc ;
        combinators.short-circuit combinators.smart
        fry arrays
        dns dns.util dns.misc ;
index 62c45882ce4d10a893f5ab209501fbd9eb62845a..d65817ff684c1af3b7e15fcb35a6dfef4a25563c 100644 (file)
@@ -3,7 +3,7 @@
 
 USING: accessors kernel threads combinators concurrency.mailboxes
        sequences strings hashtables splitting fry assocs hashtables colors
 
 USING: accessors kernel threads combinators concurrency.mailboxes
        sequences strings hashtables splitting fry assocs hashtables colors
-       sorting unicode.collation math.order
+       sorting unicode math.order
        ui ui.gadgets ui.gadgets.panes ui.gadgets.editors
        ui.gadgets.scrollers ui.commands ui.gadgets.frames ui.gestures
        ui.gadgets.tabs ui.gadgets.grids ui.gadgets.packs ui.gadgets.labels
        ui ui.gadgets ui.gadgets.panes ui.gadgets.editors
        ui.gadgets.scrollers ui.commands ui.gadgets.frames ui.gestures
        ui.gadgets.tabs ui.gadgets.grids ui.gadgets.packs ui.gadgets.labels
index 92ee7374f9970ca6753fb004bf6951bc7029f820..fd284e45c561ffb882a3a541527f5623dc8a8fad 100644 (file)
@@ -1,7 +1,7 @@
 USING: accessors arrays byte-arrays calendar classes
 classes.tuple classes.tuple.parser combinators db db.queries
 db.tuples db.types kernel math nmake parser sequences strings
 USING: accessors arrays byte-arrays calendar classes
 classes.tuple classes.tuple.parser combinators db db.queries
 db.tuples db.types kernel math nmake parser sequences strings
-strings.parser unicode.case urls words ;
+strings.parser unicode urls words ;
 IN: persistency
 
 TUPLE: persistent id ;
 IN: persistency
 
 TUPLE: persistent id ;