History

set-reader-macro: return void

Sigrid Solveig Haflínudóttir committed 3 months ago

Commit 6865e1c1 parent 734dc8f3 files · +13 −12Browse files

Unified · Split

3 files
  1. boot/sl.boot +1 −1
  2. src/system.sl +2 −1
  3. test/read.sl +10 −10
boot/sl.boot+1−1
@@ -1039,7 +1039,7 @@ rune? #fn("A120805121Q:" #(#fn(type-of) rune) 6) self-evaluating? · 1038 unmodified lines
1039separate-doc-from-body #fn("w10002000W1000J70D9?14DIDI20?6421?7480<80=2288513H081JC0893>073898881P62:813P08688513G07389=888789<51P81P62:74815180P:" #(#fn("A17021802263:" #(<=1039separate-doc-from-body #fn("w10002000W1000J70D9?14DIDI20?6421?7480<80=2288513H081JC0893>073898881P62:813P08688513G07389=888789<51P81P62:74815180P:" #(#fn("A17021802263:" #(<=
1040:doc-a :doc-z) doc? 8) #fn("A180B3H080<20C@080TB390718061:80:" #(λ compile) maybe-lambda 6)1040:doc-a :doc-z) doc? 8) #fn("A180B3H080<20C@080TB390718061:80:" #(λ compile) maybe-lambda 6)
1041#fn(str?) separate-doc-from-body reverse) 13)1041#fn(str?) separate-doc-from-body reverse) 13)
1042set-reader-macro! #fn("w20003000W2000J7070?247180513=0228051?0@40D94237425828053D981;38048081P63:" #(*read-table*1042set-reader-macro! #fn("w20003000W2000J7070?247180513=0228051?0@40D94237425828053D981;38048081P534DI:" #(*read-table*
1043rune? #fn(str) #fn(put!) foldl #fn("A22081802150532281808653486:" #(#fn(get)1043rune? #fn(str) #fn(put!) foldl #fn("A22081802150532281808653486:" #(#fn(get)
1044#fn(table)1044#fn(table)
1045#fn(put!)) 9)) 9)1045#fn(put!)) 9)) 9)
src/system.sl+2−1
@@ -2434,7 +2434,8 @@ · 2433 unmodified lines
2434 rt2434 rt
2435 s)2435 s)
2436 NIL2436 NIL
2437 (and fn (cons s fn))))2437 (and fn (cons s fn)))
2438 #.(void))
2438 2439
2439;;; exceptions2440;;; exceptions
2440 2441
test/read.sl+10−10
@@ -8,9 +8,9 @@ · 7 unmodified lines
8 (when (equal? m "!")8 (when (equal? m "!")
9 (return (void (read s))))9 (return (void (read s))))
10 `(cons ',(case m ("$" 'usd) ("€" 'eur)) ,(read s)))10 `(cons ',(case m ("$" 'usd) ("€" 'eur)) ,(read s)))
11 (set-reader-macro! #\$ capital)11 (assert (void? (set-reader-macro! #\$ capital)))
12 (set-reader-macro! #\€ capital)12 (assert (void? (set-reader-macro! #\€ capital)))
13 (set-reader-macro! #\! capital)13 (assert (void? (set-reader-macro! #\! capital)))
14 (assert (eq? (get-reader-macro #\$) capital))14 (assert (eq? (get-reader-macro #\$) capital))
15 (assert (eq? (get-reader-macro #\€) capital))15 (assert (eq? (get-reader-macro #\€) capital))
16 (assert (eq? (get-reader-macro #\!) capital)))16 (assert (eq? (get-reader-macro #\!) capital)))
@@ -19,7 +19,7 @@ · 2 unmodified lines
19 (assert (equal? €20 '(eur . 20)))19 (assert (equal? €20 '(eur . 20)))
20 (assert (equal? (list $10 !10) '((usd . 10))))20 (assert (equal? (list $10 !10) '((usd . 10))))
21 (assert (not (list !10)))21 (assert (not (list !10)))
22 (set-reader-macro! "$" NIL)) ; the fall of the US empire22 (assert (void? (set-reader-macro! "$" NIL)))) ; the fall of the US empire
23#.(begin23#.(begin
24 (assert (equal? $10 'nothing)))24 (assert (equal? $10 'nothing)))
25 25
@@ -31,8 +31,8 @@ · 5 unmodified lines
31 (subseq m 1)31 (subseq m 1)
32 (str (subseq m 1) (read s)))]}32 (str (subseq m 1) (read s)))]}
33 `(cons 'path ,path)))33 `(cons 'path ,path)))
34 (set-reader-macro! "@." to-path)34 (assert (void? (set-reader-macro! "@." to-path)))
35 (set-reader-macro! "@/" to-path)35 (assert (void? (set-reader-macro! "@/" to-path)))
36 (assert (eq? (get-reader-macro "@.") to-path))36 (assert (eq? (get-reader-macro "@.") to-path))
37 (assert (eq? (get-reader-macro "@/") to-path)))37 (assert (eq? (get-reader-macro "@/") to-path)))
38#.(begin38#.(begin
@@ -49,16 +49,16 @@ · 10 unmodified lines
49 49
50;; read-list-until and reader macros50;; read-list-until and reader macros
51#.(begin51#.(begin
52 (set-reader-macro! "<<"52 (assert (void? (set-reader-macro! "<<"
53 (λ (s m) `(list ,@(read-list-until ">>" s))))53 (λ (s m) `(list ,@(read-list-until ">>" s))))))
54 (def s (buffer "<<€1 €2 €3>>1 2"))54 (def s (buffer "<<€1 €2 €3>>1 2"))
55 (assert (equal? (eval (read s)) '((eur . 1) (eur . 2) (eur . 3))))55 (assert (equal? (eval (read s)) '((eur . 1) (eur . 2) (eur . 3))))
56 (assert (equal? (read s) 1)))56 (assert (equal? (read s) 1)))
57 57
58;; two reader macros with read-list-until within each other58;; two reader macros with read-list-until within each other
59#.(begin59#.(begin
60 (set-reader-macro! "%%"60 (assert (void? (set-reader-macro! "%%"
61 (λ (s r) `(list ,@(read-list-until "$$" s))))61 (λ (s r) `(list ,@(read-list-until "$$" s))))))
62 (def s (buffer "<<%%1$$>>"))62 (def s (buffer "<<%%1$$>>"))
63 (assert (equal? (eval (read s)) '((1))))63 (assert (equal? (eval (read s)) '((1))))
64 (def s (buffer "<<%% 1 >> $$"))64 (def s (buffer "<<%% 1 >> $$"))

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t