add 2seq, 3seq

db4
Doug Coleman 2008-02-26 15:17:17 -06:00
parent 75a2838a7c
commit 11147c7bc0
1 changed files with 7 additions and 1 deletions

View File

@ -306,6 +306,12 @@ MEMO: range ( min max -- parser )
: seq ( seq -- parser ) : seq ( seq -- parser )
seq-parser construct-boa init-parser ; seq-parser construct-boa init-parser ;
: 2seq ( parser1 parser2 -- parser )
2array seq ;
: 3seq ( parser1 parser2 parser3 -- parser )
3array seq ;
: seq* ( quot -- paser ) : seq* ( quot -- paser )
{ } make seq ; inline { } make seq ; inline
@ -343,7 +349,7 @@ MEMO: delay ( parser -- parser )
delay-parser construct-boa init-parser ; delay-parser construct-boa init-parser ;
MEMO: list-of ( items separator -- parser ) MEMO: list-of ( items separator -- parser )
hide over 2array seq repeat0 [ concat ] action 2array seq [ unclip 1vector swap first append ] action ; hide over 2seq repeat0 [ concat ] action 2seq [ unclip 1vector swap first append ] action ;
MEMO: 'digit' ( -- parser ) MEMO: 'digit' ( -- parser )
[ digit? ] satisfy [ digit> ] action ; [ digit? ] satisfy [ digit> ] action ;