]> gitweb.factorcode.org Git - factor.git/blob - extra/parser-combinators/simple/simple.factor
factor: trim more using lists.
[factor.git] / extra / parser-combinators / simple / simple.factor
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
5
6 : digit-parser ( -- parser )
7   [ digit? ] satisfy [ digit> ] <@ ;
8
9 : integer-parser ( -- parser )
10   [ digit? ] satisfy <*> [ string>number ] <@ ;
11
12 : string-parser ( -- parser )
13   [ CHAR: \" = ] satisfy
14   [ CHAR: \" = not ] satisfy <*> &>
15   [ CHAR: \" = ] satisfy <& [ >string ] <@  ;
16
17 : bold-parser ( -- parser )
18   "*" token
19   [ CHAR: * = not  ] satisfy <*> [ >string ] <@ &>
20   "*" token <& ;
21
22 : italic-parser ( -- parser )
23   "_" token
24   [ CHAR: _ = not ] satisfy <*> [ >string ] <@ &>
25   "_" token <& ;
26
27 : comma-list ( element -- parser )
28   "," token list-of ;