Skip to content

Commit

Permalink
Clean up smart constructors for splices.
Browse files Browse the repository at this point in the history
  • Loading branch information
mainland committed Jun 6, 2013
1 parent a2ee35c commit 2f96a84
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 13 deletions.
15 changes: 9 additions & 6 deletions compiler/hsSyn/HsUtils.lhs
Expand Up @@ -55,7 +55,7 @@ module HsUtils(
emptyRecStmt, mkRecStmt,
-- Template Haskell
unqualSplice, mkHsSpliceTy, mkHsSplice, mkHsTExpSplice, mkHsQuasiQuote, unqualQuasiQuote,
unqualSplice, mkHsSpliceTy, mkHsSpliceE, mkHsSpliceTE, mkHsQuasiQuote, unqualQuasiQuote,
-- Flags
noRebindableInfo,
Expand Down Expand Up @@ -243,14 +243,17 @@ mkRecStmt stmts = emptyRecStmt { recS_stmts = stmts }
mkHsOpApp :: LHsExpr id -> id -> LHsExpr id -> HsExpr id
mkHsOpApp e1 op e2 = OpApp e1 (noLoc (HsVar op)) (error "mkOpApp:fixity") e2
mkHsSplice :: LHsExpr RdrName -> HsSplice RdrName
mkHsSplice e = HsSplice False unqualSplice e
mkHsSplice :: Bool -> LHsExpr RdrName -> HsSplice RdrName
mkHsSplice isTyped e = HsSplice isTyped unqualSplice e
mkHsTExpSplice :: LHsExpr RdrName -> HsSplice RdrName
mkHsTExpSplice e = HsSplice True unqualSplice e
mkHsSpliceE :: LHsExpr RdrName -> HsExpr RdrName
mkHsSpliceE e = HsSpliceE (mkHsSplice False e)
mkHsSpliceTE :: LHsExpr RdrName -> HsExpr RdrName
mkHsSpliceTE e = HsSpliceE (mkHsSplice True e)
mkHsSpliceTy :: LHsExpr RdrName -> HsType RdrName
mkHsSpliceTy e = HsSpliceTy (mkHsSplice e) emptyFVs placeHolderKind
mkHsSpliceTy e = HsSpliceTy (mkHsSplice False e) emptyFVs placeHolderKind
unqualSplice :: RdrName
unqualSplice = mkRdrUnqual (mkVarOccFS (fsLit "splice"))
Expand Down
12 changes: 6 additions & 6 deletions compiler/parser/Parser.y.pp
Expand Up @@ -1484,14 +1484,14 @@
| '_' { L1 EWildPat }

-- Template Haskell Extension
| TH_ID_SPLICE { L1 $ HsSpliceE (mkHsSplice
| TH_ID_SPLICE { L1 $ mkHsSpliceE
(L1 $ HsVar (mkUnqual varName
(getTH_ID_SPLICE $1)))) }
| '$(' exp ')' { LL $ HsSpliceE (mkHsSplice $2) }
| TH_ID_TY_SPLICE { L1 $ HsSpliceE (mkHsTExpSplice
(getTH_ID_SPLICE $1))) }
| '$(' exp ')' { LL $ mkHsSpliceE $2 }
| TH_ID_TY_SPLICE { L1 $ mkHsSpliceTE
(L1 $ HsVar (mkUnqual varName
(getTH_ID_TY_SPLICE $1)))) }
| '$$(' exp ')' { LL $ HsSpliceE (mkHsTExpSplice $2) }
(getTH_ID_TY_SPLICE $1))) }
| '$$(' exp ')' { LL $ mkHsSpliceTE $2 }


| SIMPLEQUOTE qvar { LL $ HsBracket (VarBr True (unLoc $2)) }
Expand Down
2 changes: 1 addition & 1 deletion compiler/parser/RdrHsSyn.lhs
Expand Up @@ -7,7 +7,7 @@ Functions over HsSyn specialised to RdrName.
module RdrHsSyn (
mkHsOpApp,
mkHsIntegral, mkHsFractional, mkHsIsString,
mkHsDo, mkHsSplice, mkTopSpliceDecl,
mkHsDo, mkHsSpliceE, mkTopSpliceDecl,
mkClassDecl,
mkTyData, mkFamInstData,
mkTySynonym, mkFamInstSynonym,
Expand Down

0 comments on commit 2f96a84

Please sign in to comment.