1 ! Copyright (C) 2006 Chris Double.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel math.parser parser-combinators strings unicode ;
4 IN: parser-combinators.simple
6 : digit-parser ( -- parser )
7 [ digit? ] satisfy [ digit> ] <@ ;
9 : integer-parser ( -- parser )
10 [ digit? ] satisfy <*> [ string>number ] <@ ;
12 : string-parser ( -- parser )
13 [ CHAR: \" = ] satisfy
14 [ CHAR: \" = not ] satisfy <*> &>
15 [ CHAR: \" = ] satisfy <& [ >string ] <@ ;
17 : bold-parser ( -- parser )
19 [ CHAR: * = not ] satisfy <*> [ >string ] <@ &>
22 : italic-parser ( -- parser )
24 [ CHAR: _ = not ] satisfy <*> [ >string ] <@ &>
27 : comma-list ( element -- parser )