X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FhsSyn%2FHsSyn.lhs;fp=ghc%2Fcompiler%2FhsSyn%2FHsSyn.lhs;h=0000000000000000000000000000000000000000;hb=0065d5ab628975892cea1ec7303f968c3338cbe1;hp=a9982a630a7437863dd3bf28e4645fc6b7bf1ee8;hpb=28a464a75e14cece5db40f2765a29348273ff2d2;p=ghc-hetmet.git diff --git a/ghc/compiler/hsSyn/HsSyn.lhs b/ghc/compiler/hsSyn/HsSyn.lhs deleted file mode 100644 index a9982a6..0000000 --- a/ghc/compiler/hsSyn/HsSyn.lhs +++ /dev/null @@ -1,98 +0,0 @@ -% -% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998 -% -\section{Haskell abstract syntax definition} - -This module glues together the pieces of the Haskell abstract syntax, -which is declared in the various \tr{Hs*} modules. This module, -therefore, is almost nothing but re-exporting. - -\begin{code} -module HsSyn ( - module HsBinds, - module HsDecls, - module HsExpr, - module HsImpExp, - module HsLit, - module HsPat, - module HsTypes, - module HsUtils, - Fixity, - - HsModule(..), HsExtCore(..) - ) where - -#include "HsVersions.h" - --- friends: -import HsDecls -import HsBinds -import HsExpr -import HsImpExp -import HsLit -import HsPat -import HsTypes -import HscTypes ( DeprecTxt ) -import BasicTypes ( Fixity ) -import HsUtils - --- others: -import IfaceSyn ( IfaceBinding ) -import Outputable -import SrcLoc ( Located(..) ) -import Module ( Module ) -\end{code} - -All we actually declare here is the top-level structure for a module. -\begin{code} -data HsModule name - = HsModule - (Maybe (Located Module))-- Nothing => "module X where" is omitted - -- (in which case the next field is Nothing too) - (Maybe [LIE name]) -- Export list; Nothing => export list omitted, so export everything - -- Just [] => export *nothing* - -- Just [...] => as you would expect... - [LImportDecl name] -- We snaffle interesting stuff out of the - -- imported interfaces early on, adding that - -- info to TyDecls/etc; so this list is - -- often empty, downstream. - [LHsDecl name] -- Type, class, value, and interface signature decls - (Maybe DeprecTxt) -- reason/explanation for deprecation of this module - -data HsExtCore name -- Read from Foo.hcr - = HsExtCore - Module - [TyClDecl name] -- Type declarations only; just as in Haskell source, - -- so that we can infer kinds etc - [IfaceBinding] -- And the bindings -\end{code} - -\begin{code} -instance (OutputableBndr name) - => Outputable (HsModule name) where - - ppr (HsModule Nothing _ imports decls _) - = pp_nonnull imports $$ pp_nonnull decls - - ppr (HsModule (Just name) exports imports decls deprec) - = vcat [ - case exports of - Nothing -> pp_header (ptext SLIT("where")) - Just es -> vcat [ - pp_header lparen, - nest 8 (fsep (punctuate comma (map ppr es))), - nest 4 (ptext SLIT(") where")) - ], - pp_nonnull imports, - pp_nonnull decls - ] - where - pp_header rest = case deprec of - Nothing -> pp_modname <+> rest - Just d -> vcat [ pp_modname, ppr d, rest ] - - pp_modname = ptext SLIT("module") <+> ppr name - -pp_nonnull [] = empty -pp_nonnull xs = vcat (map ppr xs) -\end{code}