habs-parser-0.0.1: The parser of the Haskell-ABS (habs) backend

Safe HaskellNone
LanguageHaskell98

ABS.Parser

Description

The parse phase as a top-level command to be called by the main compiler module.

Synopsis

Documentation

parseString :: String -> Err Program Source #

Parses a String containing the ABS code to an AST

parseFile :: FilePath -> IO (FilePath, Err Program) Source #

Parse a single ABS source file

it is exception-safe, i.e. catches any file-IO exceptions

parseDir :: FilePath -> IO [(FilePath, Err Program)] Source #

Parse all ABS files under directory and its subdirectories recursively.

it is exception-safe, i.e. ignores any dirs it cannot read (no access or IO error)

parseFileOrDir :: FilePath -> IO [(FilePath, Err Program)] Source #

Helper top-level function to parse either an ABS source file or a directory recursively.

data Err a Source #

Constructors

Ok a 
Bad String 

Instances

Monad Err Source # 

Methods

(>>=) :: Err a -> (a -> Err b) -> Err b #

(>>) :: Err a -> Err b -> Err b #

return :: a -> Err a #

fail :: String -> Err a #

Functor Err Source # 

Methods

fmap :: (a -> b) -> Err a -> Err b #

(<$) :: a -> Err b -> Err a #

Applicative Err Source # 

Methods

pure :: a -> Err a #

(<*>) :: Err (a -> b) -> Err a -> Err b #

(*>) :: Err a -> Err b -> Err b #

(<*) :: Err a -> Err b -> Err a #

Alternative Err Source # 

Methods

empty :: Err a #

(<|>) :: Err a -> Err a -> Err a #

some :: Err a -> Err [a] #

many :: Err a -> Err [a] #

MonadPlus Err Source # 

Methods

mzero :: Err a #

mplus :: Err a -> Err a -> Err a #

Eq a => Eq (Err a) Source # 

Methods

(==) :: Err a -> Err a -> Bool #

(/=) :: Err a -> Err a -> Bool #

Ord a => Ord (Err a) Source # 

Methods

compare :: Err a -> Err a -> Ordering #

(<) :: Err a -> Err a -> Bool #

(<=) :: Err a -> Err a -> Bool #

(>) :: Err a -> Err a -> Bool #

(>=) :: Err a -> Err a -> Bool #

max :: Err a -> Err a -> Err a #

min :: Err a -> Err a -> Err a #

Read a => Read (Err a) Source # 
Show a => Show (Err a) Source # 

Methods

showsPrec :: Int -> Err a -> ShowS #

show :: Err a -> String #

showList :: [Err a] -> ShowS #