(Arne Babenhauserheide)
2014-11-19: nicer sxml test using quasiquote. nicer sxml test using quasiquote.
diff --git a/.bugs/bugs b/.bugs/bugs
--- a/.bugs/bugs
+++ b/.bugs/bugs
@@ -19,6 +19,7 @@ wisp-guile.w does not yet remove the lea
inline ' : should be '( | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:72d534a8b23b4cb168017f1bb7d8816f0ea170c4, time:1366497335.26
failing test tests/shebang.w | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:74a851f83af8996465a7b24d8453161beb0f0fd5, time:1379106761.57
non-nested multiline comments with #! !#. Requires restructuring. | owner:, open:False, id:7a57614fa920b2ddad002d044b144d0bb7c34f84, time:1389364108.01
+wisp-scheme: interpret , : as ,() similar to : , | owner:Arne Babenhauserheide <bab@draketo.de>, open:True, id:85e150dcb10c49d8f51db525e07d24e83bdba0f1, time:1416432201.21
wisp-guile: support nested multi-line comments with #| ... |#: multiline comments (srfi-30). Requires restructuring. | owner:Arne Babenhauserheide <bab@draketo.de>, open:True, id:8cf6202873d4454f57813dd17cf60432059f7c62, time:1389569421.6
wisp-guile: the repl does not require 3 returns when you use a single char as function, or rather only does so every second time | owner:, open:True, id:9cedd0bdbf4a3b17add4bfe86ad5a23e500cfc6c, time:1379064870.78
wisp-guile.w breaks on ";" and complex brackets with bracket char literals. See wisp-guile.w::91 | owner:, open:False, id:9d8b6f87fa5365733fc8655614dbf2a9ba5bd054, time:1377533321.27
diff --git a/tests/sxml.scm b/tests/sxml.scm
--- a/tests/sxml.scm
+++ b/tests/sxml.scm
@@ -1,16 +1,34 @@
(use-modules (sxml simple))
+(use-modules (ice-9 match))
-; write xml to the output port
-(sxml->xml
+; define a template
+(define template
(quote
(html
(head (title "test"))
(body
(h1 "test")
+ (message "the header")
(p "it " (em "works!")
(br)
(" it actually works!"))))))
+; transform it
+(define template2
+ (let loop
+ ((l template))
+ (match l
+ (('message a ...)
+ `(p (@ (style "margin-left: 2em"))
+ (strong ,(map loop a))))
+ ((a ...)
+ (map loop a ))
+ (a
+ a))))
+
+; write xml to the output port
+(sxml->xml template2)
+
(newline)
diff --git a/tests/sxml.w b/tests/sxml.w
--- a/tests/sxml.w
+++ b/tests/sxml.w
@@ -8,7 +8,7 @@ define template
head : title "test"
body
h1 "test"
- header-foo "the header"
+ message "the header"
p "it " : em "works!"
br
" it actually works!"
@@ -18,8 +18,9 @@ define template2
let loop
: l template
match l
- : 'header-foo a ...
- list 'p '(@ (style "margin-left: 2em")) : list 'strong : map loop a
+ : 'message a ...
+ ` p : @ : style "margin-left: 2em"
+ strong ,(map loop a)
: a ...
map loop a
a