Comments kunnen nu eindigen met een EOF ipv newline
[cc1516.git] / src / yard.dcl
index cedf0df..bc4f940 100644 (file)
@@ -6,6 +6,7 @@ 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 | Unexpected String Int
 :: Parser a b = Parser ([a] -> (Either Error b, [a]))
 
 :: Error = ParseError | LexError String | Unexpected String Int
 :: Parser a b = Parser ([a] -> (Either Error b, [a]))
@@ -17,6 +18,8 @@ instance Alternative (Parser a)
 
 instance toString Error
 
 
 instance toString Error
 
+//(`until`) infix 1
+
 runParser :: (Parser a b) [a] -> (Either Error b, [a])
 (<?>) :: (Parser a b) (String, Int) -> Parser a b
 fail :: Parser a b
 runParser :: (Parser a b) [a] -> (Either Error b, [a])
 (<?>) :: (Parser a b) (String, Int) -> Parser a b
 fail :: Parser a b
@@ -24,5 +27,7 @@ top :: Parser a a
 peek :: Parser a a
 satisfy :: (a -> Bool) -> Parser a a
 check :: (a -> Bool) -> Parser a a
 peek :: Parser a a
 satisfy :: (a -> Bool) -> Parser a a
 check :: (a -> Bool) -> Parser a a
+until :: (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