Added eof parser
[cc1516.git] / src / yard.dcl
index 73a82c0..a029c4b 100644 (file)
@@ -6,8 +6,9 @@ from StdClass import class Eq
 from Data.Functor import class Functor
 from Control.Monad import class Monad
 from Control.Applicative import class Applicative, class Alternative
 from Data.Functor import class Functor
 from Control.Monad import class Monad
 from Control.Applicative import class Applicative, class Alternative
+import Data.Void
 
 
-:: Error = ParseError | LexError String | Expected [String] Int
+:: Error = ParseError | LexError String | Unexpected String Int
 :: Parser a b = Parser ([a] -> (Either Error b, [a]))
 
 instance Functor (Parser a)
 :: Parser a b = Parser ([a] -> (Either Error b, [a]))
 
 instance Functor (Parser a)
@@ -21,6 +22,9 @@ runParser :: (Parser a b) [a] -> (Either Error b, [a])
 (<?>) :: (Parser a b) (String, Int) -> Parser a b
 fail :: Parser a b
 top :: Parser a a
 (<?>) :: (Parser a b) (String, Int) -> Parser a b
 fail :: Parser a b
 top :: Parser a a
+peek :: Parser a a
 satisfy :: (a -> Bool) -> Parser a a
 satisfy :: (a -> Bool) -> Parser a a
+check :: (a -> Bool) -> Parser a a
 item :: a -> Parser a a | Eq a
 list :: [a] -> Parser a [a] | Eq a
 item :: a -> Parser a a | Eq a
 list :: [a] -> Parser a [a] | Eq a
+eof :: Parser a Void