Copyright | (c) 20082011 Benedikt Huber |
---|---|
License | BSD-style |
Maintainer | benedikt.huber@gmail.com |
Stability | experimental |
Portability | ghc |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Compile time input abstraction for the parser, relying on ByteString. The String interface only supports Latin-1 since alex-3, as alex now requires byte based access to the input stream.
Synopsis
- type InputStream = ByteString
- readInputStream :: FilePath -> IO InputStream
- inputStreamToString :: InputStream -> String
- inputStreamFromString :: String -> InputStream
- takeByte :: InputStream -> (Word8, InputStream)
- takeChar :: InputStream -> (Char, InputStream)
- inputStreamEmpty :: InputStream -> Bool
- takeChars :: Int -> InputStream -> [Char]
- countLines :: InputStream -> Int
Documentation
type InputStream = ByteString Source #
readInputStream :: FilePath -> IO InputStream Source #
read a file into an InputStream
inputStreamToString :: InputStream -> String Source #
convert InputStream
to String
inputStreamFromString :: String -> InputStream Source #
convert a String
to an InputStream
takeByte :: InputStream -> (Word8, InputStream) Source #
(b,is') = takeByte is
reads and removes
the first byte b
from the InputStream
is
takeChar :: InputStream -> (Char, InputStream) Source #
(c,is') = takeChar is
reads and removes
the first character c
from the InputStream
is
inputStreamEmpty :: InputStream -> Bool Source #
return True
if the given input stream is empty
takeChars :: Int -> InputStream -> [Char] Source #
str = takeChars n is
returns the first n
characters
of the given input stream, without removing them
countLines :: InputStream -> Int Source #
countLines
returns the number of text lines in the
given InputStream