type
[cc1516.git] / src / yard.dcl
index 266eb75..c302420 100644 (file)
@@ -2,12 +2,13 @@ definition module yard
 
 from StdString import class toString
 from Data.Either import :: Either
 
 from StdString import class toString
 from Data.Either import :: Either
-from StdClass import class Eq
+from StdClass import class ==, 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]
+:: Error = PositionalError Int Int String | Error String
 :: 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)
@@ -17,9 +18,15 @@ instance Alternative (Parser a)
 
 instance toString Error
 
 
 instance toString Error
 
+
 runParser :: (Parser a b) [a] -> (Either Error b, [a])
 runParser :: (Parser a b) [a] -> (Either Error b, [a])
+(<?>) :: (Parser a b) Error -> Parser a b
 fail :: Parser a b
 top :: Parser a a
 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
+(until) infix 2 :: (Parser a b) (Parser a c) -> Parser a [b]
 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