repositories
/
cc1516.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
hoi
[cc1516.git]
/
src
/
yard.icl
diff --git
a/src/yard.icl
b/src/yard.icl
index
b5e3c61
..
81e5883
100644
(file)
--- a/
src/yard.icl
+++ b/
src/yard.icl
@@
-60,9
+60,17
@@
top = Parser \i -> case i of
[] = (Left ParseError, [])
[x:xs] = (Right x, xs)
[] = (Left ParseError, [])
[x:xs] = (Right x, xs)
+peek :: Parser a a
+peek = Parser \i -> case i of
+ [] = (Left ParseError, [])
+ [x:xs] = (Right x, [x:xs])
+
satisfy :: (a -> Bool) -> Parser a a
satisfy f = top >>= \r -> if (f r) (return r) fail
satisfy :: (a -> Bool) -> Parser a a
satisfy f = top >>= \r -> if (f r) (return r) fail
+check :: (a -> Bool) -> Parser a a
+check f = peek >>= \r -> if (f r) (return r) fail
+
item :: a -> Parser a a | Eq a
item a = satisfy ((==)a)
item :: a -> Parser a a | Eq a
item a = satisfy ((==)a)