module Language.CSPM.Frontend
(
parse
,ParseError(..)
,parseFile
,benchmarkFrontend
,eitherToExc
,handleLexError
,handleParseError
,handleRenameError
,Token
,LexError(..)
,Lexer.lexInclude
,Lexer.lexPlain
,Lexer.removeIgnoredToken
,Module
,ModuleFromParser
,ModuleFromRenaming
,Labeled (..)
,castModule
,Bindings
,SrcLoc (..)
,renameModule
,RenameInfo (..)
,RenameError (..)
,removeSourceLocations
,removeParens
,unUniqueIdent
,computeFreeNames
,setNodeIdsZero
,frontendVersion
)
where
import Language.CSPM.Parser (ParseError(..), parse)
import Language.CSPM.Rename
(RenameError (..), RenameInfo (..), renameModule, ModuleFromRenaming)
import Language.CSPM.Token (Token, LexError(..))
import Language.CSPM.AST
(Labeled (..), Module (..), Bindings, castModule, ModuleFromParser)
import Language.CSPM.SrcLoc (SrcLoc(..))
import Language.CSPM.AstUtils
(removeSourceLocations,removeParens ,unUniqueIdent
, computeFreeNames, setNodeIdsZero)
import qualified Language.CSPM.LexHelper as Lexer
(lexInclude, lexPlain, removeIgnoredToken)
import Language.CSPM.PrettyPrinter ()
import Language.CSPM.Utils
(eitherToExc, handleLexError, handleParseError, handleRenameError
,parseFile, benchmarkFrontend)
import Paths_CSPM_Frontend (version)
import Data.Version (Version)
frontendVersion :: Version
frontendVersion = version