mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-12 06:19:33 -06:00
49 lines
1.1 KiB
Haskell
49 lines
1.1 KiB
Haskell
module PrEnv where
|
|
|
|
import Env
|
|
|
|
import AbsSrc
|
|
import AbsTgt
|
|
|
|
import qualified PrintSrc as S
|
|
import qualified PrintTgt as T
|
|
|
|
import qualified Data.Map as M
|
|
|
|
prEnv :: Env -> IO ()
|
|
prEnv env = do
|
|
putStrLn "--# types"
|
|
mapM_ putStrLn
|
|
[prs c ++ " : " ++ prs val | (c,val) <- M.toList $ types env]
|
|
putStrLn "--# typedefs"
|
|
mapM_ putStrLn
|
|
[prs c ++ " = " ++ prs val | (c,val) <- M.toList $ typedefs env]
|
|
putStrLn "--# partypes"
|
|
mapM_ putStrLn
|
|
[prs c ++ " = " ++ unwords (map prs val) | (c,val) <- M.toList $ partypes env]
|
|
putStrLn "--# parvals"
|
|
mapM_ putStrLn
|
|
[prs c ++ " = " ++ prt val | (c,val) <- M.toList $ parvals env]
|
|
putStrLn "--# values"
|
|
mapM_ putStrLn
|
|
[prs c ++ " = " ++ prt val | (c,val) <- M.toList $ values env]
|
|
|
|
|
|
prs :: (S.Print a) => a -> String
|
|
prs = S.printTree
|
|
|
|
prt :: (T.Print a) => a -> String
|
|
prt = T.printTree
|
|
|
|
{-
|
|
data Env = Env {
|
|
values :: M.Map Ident Val,
|
|
types :: M.Map Ident Type,
|
|
opers :: M.Map Ident Exp,
|
|
typedefs :: M.Map Ident Type,
|
|
partypes :: M.Map Type [Exp],
|
|
parvals :: M.Map Exp Val,
|
|
vars :: M.Map Ident Val
|
|
}
|
|
-}
|