Merge branch 'master' of git://factorcode.org/git/factor

db4
Slava Pestov 2009-03-28 22:19:04 -05:00
commit 40f3d88fcf
4 changed files with 36 additions and 4 deletions

View File

@ -1,7 +1,8 @@
! Copyright (C) 2008 Doug Coleman. ! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: farkup kernel peg peg.ebnf tools.test namespaces xml USING: farkup kernel peg peg.ebnf tools.test namespaces xml
urls.encoding assocs xml.traversal xml.data ; urls.encoding assocs xml.traversal xml.data sequences random
io continuations math ;
IN: farkup.tests IN: farkup.tests
relative-link-prefix off relative-link-prefix off
@ -180,3 +181,29 @@ link-no-follow? off
[ "<p><em>italics<strong>both</strong></em>after<strong></strong></p>" ] [ "_italics*both_after*" convert-farkup ] unit-test [ "<p><em>italics<strong>both</strong></em>after<strong></strong></p>" ] [ "_italics*both_after*" convert-farkup ] unit-test
[ "<table><tr><td>foo|bar</td></tr></table>" ] [ "|foo\\|bar|" convert-farkup ] unit-test [ "<table><tr><td>foo|bar</td></tr></table>" ] [ "|foo\\|bar|" convert-farkup ] unit-test
[ "<p></p>" ] [ "\\" convert-farkup ] unit-test [ "<p></p>" ] [ "\\" convert-farkup ] unit-test
! [ "<p>[abc]</p>" ] [ "[abc]" convert-farkup ] unit-test
: random-markup ( -- string )
10 [
2 random 1 = [
{
"[["
"*"
"_"
"|"
"-"
"[{"
"\n"
} random
] [
"abc"
] if
] replicate concat ;
[ t ] [
100 [
drop random-markup
[ convert-farkup drop t ] [ drop print f ] recover
] all?
] unit-test

View File

@ -75,7 +75,7 @@ DEFER: (parse-paragraph)
"|" split1 "|" split1
[ "" like dup simple-link-title ] unless* [ "" like dup simple-link-title ] unless*
[ "image:" ?head ] dip swap [ image boa ] [ parse-paragraph link boa ] if [ "image:" ?head ] dip swap [ image boa ] [ parse-paragraph link boa ] if
] dip [ (parse-paragraph) cons ] when* ; ] dip [ (parse-paragraph) cons ] [ 1list ] if* ;
: ?first ( seq -- elt ) 0 swap ?nth ; : ?first ( seq -- elt ) 0 swap ?nth ;
@ -187,7 +187,8 @@ DEFER: (parse-paragraph)
: parse-code ( state -- state' item ) : parse-code ( state -- state' item )
dup 1 look CHAR: [ = dup 1 look CHAR: [ =
[ unclip-slice make-paragraph ] [ [ unclip-slice make-paragraph ] [
"{" take-until [ rest ] dip "{" take-until
[ rest ] dip
"}]" take-until "}]" take-until
[ code boa ] dip swap [ code boa ] dip swap
] if ; ] if ;

View File

@ -19,3 +19,7 @@ kernel io.streams.string xml.writer ;
/* a comment */ "> <string-reader> htmlize-stream /* a comment */ "> <string-reader> htmlize-stream
write-xml write-xml
] unit-test ] unit-test
[ "<span class=\"MARKUP\">: foo</span> <span class=\"MARKUP\">;</span>" ] [
{ ": foo ;" } "factor" htmlize-lines xml>string
] unit-test

View File

@ -84,7 +84,7 @@ M: string-matcher text-matches?
] keep string>> length and ; ] keep string>> length and ;
M: regexp text-matches? M: regexp text-matches?
[ >string ] dip re-contains? ; [ >string ] dip first-match to>> ;
: rule-start-matches? ( rule -- match-count/f ) : rule-start-matches? ( rule -- match-count/f )
dup start>> tuck swap can-match-here? [ dup start>> tuck swap can-match-here? [