parent
635b02ca27
commit
2d716e1b6a
|
@ -24,3 +24,19 @@ IN: temporary
|
||||||
[ "<p>foo</p>\n<p>bar</p>" ] [ "foo\n\n\nbar" parse-farkup ] unit-test
|
[ "<p>foo</p>\n<p>bar</p>" ] [ "foo\n\n\nbar" parse-farkup ] unit-test
|
||||||
|
|
||||||
[ "" ] [ "" parse-farkup ] unit-test
|
[ "" ] [ "" parse-farkup ] unit-test
|
||||||
|
|
||||||
|
[ "<p>|a</p>" ]
|
||||||
|
[ "|a" parse-farkup ] unit-test
|
||||||
|
|
||||||
|
[ "<p>|a|</p>" ]
|
||||||
|
[ "|a|" parse-farkup ] unit-test
|
||||||
|
|
||||||
|
[ "<table><tr><td>a</td><td>b</td></tr></table>" ]
|
||||||
|
[ "a|b" parse-farkup ] unit-test
|
||||||
|
|
||||||
|
[ "<table><tr><td>a</td><td>b</td></tr></table>\n<table><tr><td>c</td><td>d</td></tr></table>" ]
|
||||||
|
[ "a|b\nc|d" parse-farkup ] unit-test
|
||||||
|
|
||||||
|
[ "<table><tr><td>a</td><td>b</td></tr></table>\n<table><tr><td>c</td><td>d</td></tr></table>\n" ]
|
||||||
|
[ "a|b\nc|d\n" parse-farkup ] unit-test
|
||||||
|
|
||||||
|
|
|
@ -82,15 +82,16 @@ MEMO: list ( -- parser )
|
||||||
list-item "\n" token hide list-of
|
list-item "\n" token hide list-of
|
||||||
[ "ul" surround-with-foo ] action ;
|
[ "ul" surround-with-foo ] action ;
|
||||||
|
|
||||||
MEMO: table-column ( -- parser ) [ "|" token text ] seq* ;
|
MEMO: table-column ( -- parser )
|
||||||
|
text [ "td" surround-with-foo ] action ;
|
||||||
|
|
||||||
MEMO: table-row ( -- parser )
|
MEMO: table-row ( -- parser )
|
||||||
[
|
[
|
||||||
"|"
|
table-column "|" token hide list-of* ,
|
||||||
] seq* ;
|
] seq* [ "tr" surround-with-foo ] action ;
|
||||||
|
|
||||||
MEMO: table ( -- parser )
|
MEMO: table ( -- parser )
|
||||||
[
|
table-row repeat1 [ "table" surround-with-foo ] action ;
|
||||||
"|"
|
|
||||||
] seq* ;
|
|
||||||
|
|
||||||
MEMO: code ( -- parser )
|
MEMO: code ( -- parser )
|
||||||
[
|
[
|
||||||
|
@ -122,9 +123,26 @@ MEMO: paragraph ( -- parser )
|
||||||
|
|
||||||
MEMO: farkup ( -- parser )
|
MEMO: farkup ( -- parser )
|
||||||
[
|
[
|
||||||
list , h1 , h2 , h3 , h4 , code , paragraph , 2nl , nl ,
|
list , table , h1 , h2 , h3 , h4 , code , paragraph , 2nl , nl ,
|
||||||
] choice* repeat0 "\n" token optional 2seq ;
|
] choice* repeat0 "\n" token optional 2seq ;
|
||||||
|
|
||||||
|
: farkup. ( parse-result -- )
|
||||||
|
parse-result-ast
|
||||||
|
[ dup string? [ write ] [ drop ] if ] deep-each ;
|
||||||
|
|
||||||
: parse-farkup ( string -- string' )
|
: parse-farkup ( string -- string' )
|
||||||
farkup parse parse-result-ast
|
farkup parse [ farkup. ] with-string-writer ;
|
||||||
[ [ dup string? [ write ] [ drop ] if ] deep-each ] with-string-writer ;
|
|
||||||
|
! MEMO: table-column ( -- parser )
|
||||||
|
! text [ "td" surround-with-foo ] action ;
|
||||||
|
!
|
||||||
|
! MEMO: table-row ( -- parser )
|
||||||
|
! [
|
||||||
|
! "|" token hide ,
|
||||||
|
! table-column "|" token hide list-of ,
|
||||||
|
! "|" token "\n" token 2array choice hide ,
|
||||||
|
! ] seq* [ "tr" surround-with-foo ] action ;
|
||||||
|
!
|
||||||
|
! MEMO: table ( -- parser )
|
||||||
|
! table-row repeat1
|
||||||
|
! [ "table" surround-with-foo ] action ;
|
||||||
|
|
Loading…
Reference in New Issue