---------------------------------------------------------------------- -- | -- Module : (Module) -- Maintainer : (Maintainer) -- Stability : (stable) -- Portability : (portable) -- -- > CVS $Date $ -- > CVS $Author $ -- > CVS $Revision $ -- -- (Description of the module) ----------------------------------------------------------------------------- module PrExp where import AbsGFC import GFC import Operations -- some printing -- print trees without qualifications prExp :: Exp -> String prExp e = case e of EApp f a -> pr1 f +++ pr2 a EAbsR x b -> "\\" ++ prtt x +++ "->" +++ prExp b EAbs x _ b -> prExp $ EAbsR x b EProd x a b -> "(\\" ++ prtt x +++ ":" +++ prExp a ++ ")" +++ "->" +++ prExp b EAtomR a -> prAtom a EAtom a _ -> prAtom a _ -> prtt e where pr1 e = case e of EAbsR _ _ -> prParenth $ prExp e EAbs _ _ _ -> prParenth $ prExp e EProd _ _ _ -> prParenth $ prExp e _ -> prExp e pr2 e = case e of EApp _ _ -> prParenth $ prExp e _ -> pr1 e prAtom a = case a of AC c -> prCIdent c AD c -> prCIdent c _ -> prtt a prCIdent (CIQ _ c) = prtt c