aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/data/text/escape.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/library/lux/data/text/escape.lux')
-rw-r--r--stdlib/source/library/lux/data/text/escape.lux49
1 files changed, 25 insertions, 24 deletions
diff --git a/stdlib/source/library/lux/data/text/escape.lux b/stdlib/source/library/lux/data/text/escape.lux
index 7e02459e1..f7fbaaf46 100644
--- a/stdlib/source/library/lux/data/text/escape.lux
+++ b/stdlib/source/library/lux/data/text/escape.lux
@@ -70,19 +70,20 @@
(def: .public (escapable? char)
(-> Char Bit)
- (case char
- (^template [<char>]
- [(^ (static <char>))
- true])
- ([..\0] [..\a] [..\b] [..\t]
- [..\n] [..\v] [..\f] [..\r]
- [..\''] [..\\])
-
- _
- (or (n.< ..ascii_bottom char)
- (n.> ..ascii_top char))))
-
-(def: (ascii_escape replacement pre_offset pre_limit previous current)
+ (or (n.< ..ascii_bottom char)
+ (n.> ..ascii_top char)
+ (case char
+ (^template [<char>]
+ [(^ (static <char>))
+ true])
+ ([..\0] [..\a] [..\b] [..\t]
+ [..\n] [..\v] [..\f] [..\r]
+ [..\''] [..\\])
+
+ _
+ false)))
+
+(def: (ascii_escaped replacement pre_offset pre_limit previous current)
(-> Text Nat Nat Text Text [Text Text Nat])
(let [post_offset (inc pre_offset)
post_limit (n.- post_offset pre_limit)]
@@ -92,7 +93,7 @@
("lux text clip" post_offset post_limit current)
post_limit]))
-(def: (unicode_escape char pre_offset pre_limit previous current)
+(def: (unicode_escaped char pre_offset pre_limit previous current)
(-> Char Nat Nat Text Text [Text Text Nat])
(let [code (\ n.hex encode char)
replacement (format ..sigil "u"
@@ -109,7 +110,7 @@
("lux text clip" post_offset post_limit current)
post_limit]))
-(def: .public (escape text)
+(def: .public (escaped text)
{#.doc (doc "Yields a escaped version of the text.")}
(-> Text Text)
(loop [offset 0
@@ -120,7 +121,7 @@
(case ("lux text char" offset current)
(^template [<char> <replacement>]
[(^ (static <char>))
- (let [[previous' current' limit'] (ascii_escape <replacement> offset limit previous current)]
+ (let [[previous' current' limit'] (ascii_escaped <replacement> offset limit previous current)]
(recur 0 previous' current' limit'))])
([..\0 ..escaped_\0]
[..\a ..escaped_\a]
@@ -136,7 +137,7 @@
char
(if (or (n.< ..ascii_bottom char)
(n.> ..ascii_top char))
- (let [[previous' current' limit'] (unicode_escape char offset limit previous current)]
+ (let [[previous' current' limit'] (unicode_escaped char offset limit previous current)]
(recur 0 previous' current' limit'))
(recur (inc offset) previous current limit)))
(format previous current))))
@@ -166,7 +167,7 @@
(def: unicode_escape_offset
(n.+ ..ascii_escape_offset ..code_size))
-(def: (ascii_un_escape replacement offset previous current limit)
+(def: (ascii_un_escaped replacement offset previous current limit)
(-> Text Nat Text Text Nat [Text Text Nat])
(let [limit' (|> limit (n.- offset) (n.- ..ascii_escape_offset))]
[(format previous
@@ -175,7 +176,7 @@
("lux text clip" (n.+ ..ascii_escape_offset offset) limit' current)
limit']))
-(def: (unicode_un_escape offset previous current limit)
+(def: (unicode_un_escaped offset previous current limit)
(-> Nat Text Text Nat (Try [Text Text Nat]))
(case (|> current
("lux text clip" (n.+ ..ascii_escape_offset offset) ..code_size)
@@ -191,7 +192,7 @@
(#try.Failure error)
(exception.except ..invalid_unicode_escape [current offset])))
-(def: .public (un_escape text)
+(def: .public (un_escaped text)
{#.doc (doc "Yields an un-escaped text."
"Fails if it was improperly escaped.")}
(-> Text (Try Text))
@@ -207,7 +208,7 @@
(case ("lux text char" @sigil current)
(^template [<sigil> <un_escaped>]
[(^ (static <sigil>))
- (let [[previous' current' limit'] (..ascii_un_escape <un_escaped> offset previous current limit)]
+ (let [[previous' current' limit'] (..ascii_un_escaped <un_escaped> offset previous current limit)]
(recur 0 previous' current' limit'))])
([..\0_sigil //.\0]
[..\a_sigil //.\a]
@@ -224,7 +225,7 @@
(let [@unicode (n.+ code_size @sigil)]
(if (n.< limit @unicode)
(do try.monad
- [[previous' current' limit'] (..unicode_un_escape offset previous current limit)]
+ [[previous' current' limit'] (..unicode_un_escaped offset previous current limit)]
(recur 0 previous' current' limit'))
(exception.except ..invalid_unicode_escape [text offset])))
@@ -238,9 +239,9 @@
"" current
_ (format previous current))))))
-(syntax: .public (escaped {literal <code>.text})
+(syntax: .public (literal {literal <code>.text})
{#.doc (doc "If given a escaped text literal, expands to an un-escaped version.")}
- (case (..un_escape literal)
+ (case (..un_escaped literal)
(#try.Success un_escaped)
(in (list (code.text un_escaped)))