lexer met line numbers
[cc1516.git] / src / yard.dcl
index 73a82c0..7d08a9c 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 = 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,10 +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) (String, Int) -> Parser a b
+(<?>) :: (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