parser-combinators: refactor <:&> and <&:>

darcs
chris.double 2006-10-06 02:46:02 +00:00
parent c040050b52
commit 080430a386
1 changed files with 4 additions and 12 deletions

View File

@ -178,21 +178,13 @@ M: some-parser (parse) ( input parser -- result )
#! Same as <&> except discard the results of the first parser.
<&> [ second ] <@ ;
: <:&>-parser ( input parser1 parser2 -- result )
: <:&> ( parser1 parser2 -- result )
#! Same as <&> except flatten the result.
<&> [ dup second swap first [ % , ] { } make ] <@ call ;
<&> [ dup second swap first [ % , ] { } make ] <@ ;
: <:&> ( parser1 parser2 -- parser )
: <&:> ( parser1 parser2 -- result )
#! Same as <&> except flatten the result.
[ <:&>-parser ] curry curry ;
: <&:>-parser ( input parser1 parser2 -- result )
#! Same as <&> except flatten the result.
<&> [ dup second swap first [ , % ] { } make ] <@ call ;
: <&:> ( parser1 parser2 -- parser )
#! Same as <&> except flatten the result.
[ <&:>-parser ] curry curry ;
<&> [ dup second swap first [ , % ] { } make ] <@ ;
DEFER: <*>