module CSPM.Parser ( parseFile, parseInteractiveStmt, parseExpression, parseStringAsFile, ParseMonad, runParser, ) where import CSPM.DataStructures.Syntax import CSPM.Parser.Monad import CSPM.Parser.Parser import Util.Annotated -- External Interface parseInteractiveStmt :: String -> ParseMonad PInteractiveStmt parseInteractiveStmt str = pushFileContents "" str >> parseInteractiveStmt_ parseExpression :: String -> ParseMonad PExp parseExpression str = pushFileContents "" str >> parseExpression_ parseFile :: String -> ParseMonad [PModule] parseFile fname = do decls <- pushFile fname parseFile_ return [An Unknown dummyAnnotation (GlobalModule decls)] parseStringAsFile :: String -> ParseMonad [PModule] parseStringAsFile str = do decls <- pushFileContents "" str >> parseFile_ return [An Unknown dummyAnnotation (GlobalModule decls)]