CSPM-Frontend-0.10.0.0: A CSP-M parser compatible with FDR-2.91

Copyright(c) Fontaine 2008 - 2011
LicenseBSD3
MaintainerFontaine@cs.uni-duesseldorf.de
Stabilityexperimental
PortabilityGHC-only
Safe HaskellNone
LanguageHaskell2010

Language.CSPM.Frontend

Description

Frontend contains some reexports from other modules

Synopsis

Documentation

parse :: SourceName -> [Token] -> Either ParseError ModuleFromParser Source

The parse function parses a List of Token. It returns a ParseError or a Labled Module. The SourceName argument is currently not used.

data ParseError Source

ParseError data type. This is an instance of Excpetion

parseFile :: FilePath -> IO ModuleFromParser Source

Lex and parse a file and return a LModule, throw an exception in case of an error

benchmarkFrontend :: FilePath -> IO (ModuleFromParser, ModuleFromRenaming) Source

Lex and parse File. | Return the module and print some timing infos

eitherToExc :: Exception a => Either a b -> IO b Source

"eitherToExe" returns the Right part of Either or throws the Left part as an dynamic exception.

handleLexError :: (LexError -> IO a) -> IO a -> IO a Source

Handle a dymanic exception of type LexError.

handleParseError :: (ParseError -> IO a) -> IO a -> IO a Source

Handle a dymanic exception of type ParseError.

handleRenameError :: (RenameError -> IO a) -> IO a -> IO a Source

Handle a dymanic exception of type RenameError.

lexInclude :: String -> IO (Either LexError [Token]) Source

lex input-string and inport all includes files

lexPlain :: String -> Either LexError [Token] Source

lex a String .

removeIgnoredToken :: [Token] -> [Token] Source

Remove comments, whitespaces and unneeded newlines.

data Module a Source

Instances

Eq (Module a) 
Data a => Data (Module a) 
Ord (Module a) 
Show (Module a) 
Generic (Module a) 
Pretty (Module a) 
Typeable (* -> *) Module 
type Rep (Module a) 

type ModuleFromRenaming = Module FromRenaming Source

A module that has gone through renaming

data Labeled t Source

Constructors

Labeled 

Fields

nodeId :: NodeId
 
srcLoc :: SrcLoc
 
unLabel :: t
 

Instances

Eq t => Eq (Labeled t) 
Data t => Data (Labeled t) 
Ord t => Ord (Labeled t) 
Show t => Show (Labeled t) 
Generic (Labeled t) 
Pretty x => Pretty (Labeled x) 
Typeable (* -> *) Labeled 
type Rep (Labeled t) 

removeSourceLocations :: Data a => a -> a Source

removeSourceLocations sets all locationsInfos to NoLocation

removeParens :: Data a => a -> a Source

removeParens removes all occurences of of Parens, i.e. explicit parentheses from the AST

unUniqueIdent :: Data a => a -> a Source

unUniqueIdent replaces the all UIdent with the Ident of the the new name, thus forgetting additional information like the bindingside, etc. Usefull to get a smaller AST.

computeFreeNames :: Data a => a -> FreeNames Source

Compute the FreeNames of an Expression. This function does only work after renaming has been done. This implementation is inefficient.

setNodeIdsZero :: Data a => a -> a Source

Set all NodeIds to zero.

frontendVersion :: Version Source

The version of the CSPM-Frontend library