RunStaticAna.hs revision 98cf0f00c14d5739ef1d4e20693adaba5eefbcd4
bada0c99c6398c209ec9c6a9f5b316b7b5c99b33Christian Maeder
bada0c99c6398c209ec9c6a9f5b316b7b5c99b33Christian Maeder{- HetCATS/HasCASL/RunStaticAna.hs
bada0c99c6398c209ec9c6a9f5b316b7b5c99b33Christian Maeder $Id$
bada0c99c6398c209ec9c6a9f5b316b7b5c99b33Christian Maeder Authors: Christian Maeder
d16796d2e67b21942cb8869a2bd7727b0c49f602Christian Maeder Year: 2002
df29370ae8d8b41587957f6bcdcb43a3f1927e47Christian Maeder
bada0c99c6398c209ec9c6a9f5b316b7b5c99b33Christian Maeder parse and call static analysis
d16796d2e67b21942cb8869a2bd7727b0c49f602Christian Maeder-}
df29370ae8d8b41587957f6bcdcb43a3f1927e47Christian Maeder
bada0c99c6398c209ec9c6a9f5b316b7b5c99b33Christian Maeder
bada0c99c6398c209ec9c6a9f5b316b7b5c99b33Christian Maedermodule RunStaticAna where
bada0c99c6398c209ec9c6a9f5b316b7b5c99b33Christian Maeder
bada0c99c6398c209ec9c6a9f5b316b7b5c99b33Christian Maederimport AsToLe
import Lexer((<<))
import ParseItem
import Parsec
import ParsecError
import Result
import MonadState
import Pretty
import PrettyPrint
import PrintLe
import GlobalAnnotationsFunctions
ana :: String -> State Env ()
ana s = do e <- get
case parse (basicSpec << eof) "" s of
Left err -> appendDiags [Error (showErrorMessages
"or" "unknown parse error"
"expecting" "unexpected" "end of input"
(errorMessages err)) (let p = errorPos err in
(sourceLine p, sourceColumn p))]
Right x -> anaBasicSpec x
runAna :: String -> Env
runAna s = snd $ (runState (ana s)) initialEnv
printEnv :: Env -> IO ()
printEnv e = putStrLn $ render $ printText0 emptyGlobalAnnos e