language-c-0.3.2.1: Analysis and generation of C code

Portability | ghc
Stability | experimental
Maintainer | benedikt.huber@gmail.com
Safe Haskell | None

Language.C.Data.InputStream

Description

Compile time input abstraction for the parser. Supports either ByteString or String.

Synopsis

- type InputStream = ByteString
- readInputStream :: FilePath -> IO InputStream
- inputStreamToString :: InputStream -> String
- inputStreamFromString :: String -> InputStream
- takeChar :: InputStream -> (Char, InputStream)
- inputStreamEmpty :: InputStream -> Bool
- takeChars :: Int -> InputStream -> [Char]
- countLines :: InputStream -> Int

# Documentation

type InputStream = ByteString

readInputStream :: FilePath -> IO InputStream

read a file into an `InputStream`

inputStreamToString :: InputStream -> String

convert `InputStream` to `String`

inputStreamFromString :: String -> InputStream

convert a `String` to an `InputStream`

takeChar :: InputStream -> (Char, InputStream)

`(c,is') = takeChar is` reads and removes the first character `c` from the `InputStream` `is`

inputStreamEmpty :: InputStream -> Bool

return `True` if the given input stream is empty

takeChars :: Int -> InputStream -> [Char]

`str = takeChars n is` returns the first `n` characters of the given input stream, without removing them

countLines :: InputStream -> Int

`countLines` returns the number of text lines in the given `InputStream`