[project @ 1999-06-01 16:15:42 by simonmar]
[ghc-hetmet.git] / ghc / compiler / reader / PrefixSyn.lhs
index 9d1d8d0..cf2419b 100644 (file)
@@ -1,5 +1,5 @@
 %
-% (c) The GRASP/AQUA Project, Glasgow University, 1992-1996
+% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[PrefixSyn]{``Prefix-form'' syntax}
 
@@ -10,7 +10,6 @@ order that follows the \tr{Prefix_Form} document.
 \begin{code}
 module PrefixSyn (
        RdrBinding(..),
-       RdrId,
        RdrMatch(..),
        SigConverter,
        SrcFile,
@@ -24,12 +23,12 @@ module PrefixSyn (
 
 import HsSyn
 import RdrHsSyn
-import BasicTypes      ( IfaceFlavour )
-import Util            ( panic )
-import SrcLoc           ( SrcLoc )
+import RdrName         ( RdrName )
+import Panic           ( panic )
 import Char            ( isDigit, ord )
 
-type RdrId   = RdrName
+
+--UNUSED: type RdrId   = RdrName
 type SrcLine = Int
 type SrcFile = FAST_STRING
 type SrcFun  = RdrName
@@ -37,38 +36,31 @@ type SrcFun  = RdrName
 
 \begin{code}
 data RdrBinding
-  = RdrNullBind
+  =    -- On input we use the Empty/And form rather than a list
+    RdrNullBind
   | RdrAndBindings     RdrBinding RdrBinding
 
-  | RdrTyDecl          RdrNameTyDecl
-  | RdrFunctionBinding SrcLine [RdrMatch]
-  | RdrPatternBinding  SrcLine [RdrMatch]
-  | RdrClassDecl       RdrNameClassDecl
-  | RdrInstDecl        RdrNameInstDecl
-  | RdrDefaultDecl     RdrNameDefaultDecl
+       -- Value bindings havn't been united with their
+       -- signatures yet
+  | RdrValBinding      RdrNameMonoBinds
 
-                       -- signatures are mysterious; we can't
-                       -- tell if its a Sig or a ClassOpSig,
-                       -- so we just save the pieces:
+       -- Signatures are mysterious; we can't
+       -- tell if its a Sig or a ClassOpSig,
+       -- so we just save the pieces:
   | RdrSig             RdrNameSig
 
+       -- The remainder all fit into the main HsDecl form
+  | RdrHsDecl          RdrNameHsDecl
+
 type SigConverter = RdrNameSig -> RdrNameSig
 \end{code}
 
 \begin{code}
 data RdrMatch
-  = RdrMatch_NoGuard
-            SrcLine SrcFun
-            RdrNamePat
-            RdrNameHsExpr
-            RdrBinding
-
-  | RdrMatch_Guards
-            SrcLine SrcFun
-            RdrNamePat
-            [([RdrNameStmt], RdrNameHsExpr)]
-            -- (guard,         expr)
-            RdrBinding
+  = RdrMatch
+            [RdrNamePat]
+            (Maybe RdrNameHsType)
+            RdrNameGRHSs
 \end{code}
 
 Unscramble strings representing oct/dec/hex integer literals: