]> gitweb.factorcode.org Git - factor.git/blob - extra/parser-combinators/simple/simple.factor
unicode: make this the API for all unicode things.
[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 strings math sequences lists.lazy words
4 math.parser promises parser-combinators unicode ;
5 IN: parser-combinators.simple
6
7 : digit-parser ( -- parser )
8   [ digit? ] satisfy [ digit> ] <@ ;
9
10 : integer-parser ( -- parser )
11   [ digit? ] satisfy <*> [ string>number ] <@ ;
12
13 : string-parser ( -- parser )
14   [ CHAR: " = ] satisfy
15   [ CHAR: " = not ] satisfy <*> &>
16   [ CHAR: " = ] satisfy <& [ >string ] <@  ;
17
18 : bold-parser ( -- parser )
19   "*" token
20   [ CHAR: * = not  ] satisfy <*> [ >string ] <@ &>
21   "*" token <& ;
22
23 : italic-parser ( -- parser )
24   "_" token
25   [ CHAR: _ = not ] satisfy <*> [ >string ] <@ &>
26   "_" token <& ;
27
28 : comma-list ( element -- parser )
29   "," token list-of ;