on 492ae2f help sign in
48 lines 840 B history raw
1### `++mask`
3Match char
5Parser generator. Matches the next character if it is in a list of
6characters.
8Accepts
9-------
11`bud` is a list of `++char`
13Produces
14--------
16A `++rule`.
18Source
19------
21 ++ mask :: match char in set
22 ~/ %mask
23 |= bud/(list char)
24 ~/ %fun
25 |= tub/nail
26 ^- (like char)
27 ?~ q.tub
28 (fail tub)
29 ?. (lien bud |=(a/char =(i.q.tub a)))
30 (fail tub)
31 (next tub)
32 ::
34Examples
35--------
37 ~zod/try=> (scan "a" (mask "cba"))
38 ~~a
39 ~zod/try=> ((mask "abc") [[1 1] "abc"])
40 [p=[p=1 q=2] q=[~ [p=~~a q=[p=[p=1 q=2] q="bc"]]]]
41 ~zod/try=> ((mask "abc") [[1 1] "bbc"])
42 [p=[p=1 q=2] q=[~ [p=~~b q=[p=[p=1 q=2] q="bc"]]]]
43 ~zod/try=> ((mask "abc") [[1 1] "dbc"])
44 [p=[p=1 q=1] q=~]
48***