Add <:&:> to parser-combinators
parent
a019a64407
commit
3fc47bae3a
|
@ -190,6 +190,10 @@ M: some-parser (parse) ( input parser -- result )
|
||||||
#! Same as <&> except flatten the result.
|
#! Same as <&> except flatten the result.
|
||||||
<&> [ dup second swap first [ , % ] { } make ] <@ ;
|
<&> [ dup second swap first [ , % ] { } make ] <@ ;
|
||||||
|
|
||||||
|
: <:&:> ( parser1 parser2 -- result )
|
||||||
|
#! Same as <&> except flatten the result.
|
||||||
|
<&> [ dup second swap first [ % % ] { } make ] <@ ;
|
||||||
|
|
||||||
LAZY: <*> ( parser -- parser )
|
LAZY: <*> ( parser -- parser )
|
||||||
dup <*> <&:> { } succeed <|> ;
|
dup <*> <&:> { } succeed <|> ;
|
||||||
|
|
||||||
|
@ -263,4 +267,4 @@ LAZY: <(+)> ( parser -- parser )
|
||||||
nonempty-list-of { } succeed <|> ;
|
nonempty-list-of { } succeed <|> ;
|
||||||
|
|
||||||
LAZY: surrounded-by ( parser start end -- parser' )
|
LAZY: surrounded-by ( parser start end -- parser' )
|
||||||
[ token ] 2apply swapd pack ;
|
[ token ] 2apply swapd pack ;
|
||||||
|
|
Loading…
Reference in New Issue