Trailing [[ no longer throws an error in farkup parser

db4
Slava Pestov 2009-03-28 15:29:58 -05:00
parent b34877f18e
commit fd44378736
2 changed files with 31 additions and 3 deletions

View File

@ -1,7 +1,8 @@
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
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
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
[ "<table><tr><td>foo|bar</td></tr></table>" ] [ "|foo\\|bar|" 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
[ "" like dup simple-link-title ] unless*
[ "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 ;
@ -187,7 +187,8 @@ DEFER: (parse-paragraph)
: parse-code ( state -- state' item )
dup 1 look CHAR: [ =
[ unclip-slice make-paragraph ] [
"{" take-until [ rest ] dip
"{" take-until
[ rest ] dip
"}]" take-until
[ code boa ] dip swap
] if ;