X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FcoreSyn%2FAnnCoreSyn.lhs;h=9ab22242a9170e1755efaa177475f83d96340f4b;hb=967cc47f37cb93a5e2b6df7822c9a646f0428247;hp=9f51e1a4b1c847a0f91b034e4b13f7a701135daa;hpb=0596517a9b4b2b32e5d375a986351102ac4540fc;p=ghc-hetmet.git diff --git a/ghc/compiler/coreSyn/AnnCoreSyn.lhs b/ghc/compiler/coreSyn/AnnCoreSyn.lhs index 9f51e1a..9ab2224 100644 --- a/ghc/compiler/coreSyn/AnnCoreSyn.lhs +++ b/ghc/compiler/coreSyn/AnnCoreSyn.lhs @@ -8,73 +8,78 @@ than that, just like @CoreSyntax@. (Important to be sure that it {\em really is} just like @CoreSyntax@.) \begin{code} -#include "HsVersions.h" - module AnnCoreSyn ( - AnnCoreBinding(..), AnnCoreExpr(..), + AnnCoreBinding(..), AnnCoreExpr, AnnCoreExpr'(..), -- v sad that this must be exported AnnCoreCaseAlts(..), AnnCoreCaseDefault(..), deAnnotate -- we may eventually export some of the other deAnners ) where -import Ubiq{-uitous-} +#include "HsVersions.h" import CoreSyn + +import Id ( Id ) +import Literal ( Literal ) +import PrimOp ( PrimOp ) +import CostCentre ( CostCentre ) +import Type ( GenType ) + \end{code} \begin{code} -data AnnCoreBinding val_bdr val_occ tyvar uvar annot - = AnnNonRec val_bdr (AnnCoreExpr val_bdr val_occ tyvar uvar annot) - | AnnRec [(val_bdr, AnnCoreExpr val_bdr val_occ tyvar uvar annot)] +data AnnCoreBinding val_bdr val_occ flexi annot + = AnnNonRec val_bdr (AnnCoreExpr val_bdr val_occ flexi annot) + | AnnRec [(val_bdr, AnnCoreExpr val_bdr val_occ flexi annot)] \end{code} \begin{code} -type AnnCoreExpr val_bdr val_occ tyvar uvar annot - = (annot, AnnCoreExpr' val_bdr val_occ tyvar uvar annot) +type AnnCoreExpr val_bdr val_occ flexi annot + = (annot, AnnCoreExpr' val_bdr val_occ flexi annot) -data AnnCoreExpr' val_bdr val_occ tyvar uvar annot +data AnnCoreExpr' val_bdr val_occ flexi annot = AnnVar val_occ | AnnLit Literal - | AnnCon Id [GenCoreArg val_occ tyvar uvar] - | AnnPrim PrimOp [GenCoreArg val_occ tyvar uvar] + | AnnCon Id [GenCoreArg val_occ flexi] + | AnnPrim PrimOp [GenCoreArg val_occ flexi] - | AnnLam (GenCoreBinder val_bdr tyvar uvar) - (AnnCoreExpr val_bdr val_occ tyvar uvar annot) + | AnnLam (GenCoreBinder val_bdr flexi) + (AnnCoreExpr val_bdr val_occ flexi annot) - | AnnApp (AnnCoreExpr val_bdr val_occ tyvar uvar annot) - (GenCoreArg val_occ tyvar uvar) + | AnnApp (AnnCoreExpr val_bdr val_occ flexi annot) + (GenCoreArg val_occ flexi) - | AnnCase (AnnCoreExpr val_bdr val_occ tyvar uvar annot) - (AnnCoreCaseAlts val_bdr val_occ tyvar uvar annot) + | AnnCase (AnnCoreExpr val_bdr val_occ flexi annot) + (AnnCoreCaseAlts val_bdr val_occ flexi annot) - | AnnLet (AnnCoreBinding val_bdr val_occ tyvar uvar annot) - (AnnCoreExpr val_bdr val_occ tyvar uvar annot) + | AnnLet (AnnCoreBinding val_bdr val_occ flexi annot) + (AnnCoreExpr val_bdr val_occ flexi annot) - | AnnSCC CostCentre - (AnnCoreExpr val_bdr val_occ tyvar uvar annot) + | AnnNote (CoreNote flexi) + (AnnCoreExpr val_bdr val_occ flexi annot) \end{code} \begin{code} -data AnnCoreCaseAlts val_bdr val_occ tyvar uvar annot +data AnnCoreCaseAlts val_bdr val_occ flexi annot = AnnAlgAlts [(Id, [val_bdr], - AnnCoreExpr val_bdr val_occ tyvar uvar annot)] - (AnnCoreCaseDefault val_bdr val_occ tyvar uvar annot) + AnnCoreExpr val_bdr val_occ flexi annot)] + (AnnCoreCaseDefault val_bdr val_occ flexi annot) | AnnPrimAlts [(Literal, - AnnCoreExpr val_bdr val_occ tyvar uvar annot)] - (AnnCoreCaseDefault val_bdr val_occ tyvar uvar annot) + AnnCoreExpr val_bdr val_occ flexi annot)] + (AnnCoreCaseDefault val_bdr val_occ flexi annot) -data AnnCoreCaseDefault val_bdr val_occ tyvar uvar annot +data AnnCoreCaseDefault val_bdr val_occ flexi annot = AnnNoDefault | AnnBindDefault val_bdr - (AnnCoreExpr val_bdr val_occ tyvar uvar annot) + (AnnCoreExpr val_bdr val_occ flexi annot) \end{code} \begin{code} -deAnnotate :: AnnCoreExpr val_bdr val_occ tyvar uvar ann - -> GenCoreExpr val_bdr val_occ tyvar uvar +deAnnotate :: AnnCoreExpr val_bdr val_occ flexi ann + -> GenCoreExpr val_bdr val_occ flexi deAnnotate (_, AnnVar v) = Var v deAnnotate (_, AnnLit lit) = Lit lit @@ -82,7 +87,7 @@ deAnnotate (_, AnnCon con args) = Con con args deAnnotate (_, AnnPrim op args) = Prim op args deAnnotate (_, AnnLam binder body)= Lam binder (deAnnotate body) deAnnotate (_, AnnApp fun arg) = App (deAnnotate fun) arg -deAnnotate (_, AnnSCC lbl body) = SCC lbl (deAnnotate body) +deAnnotate (_, AnnNote note body) = Note note (deAnnotate body) deAnnotate (_, AnnLet bind body) = Let (deAnnBind bind) (deAnnotate body)