diff options
author | Kazu Yamamoto <kazu@iij.ad.jp> | 2013-02-01 11:59:24 +0900 |
---|---|---|
committer | Kazu Yamamoto <kazu@iij.ad.jp> | 2013-02-01 11:59:24 +0900 |
commit | 8d4c94ca5a969a5ebbb791939fb0195dc672429e (patch) | |
tree | 560a944a7105cd715f9acba46790bd7e1a77f82f /html-test/src/QuasiExpr.hs | |
parent | 266a20afd2d27f28bbb62839ebc3f70bd83bfcce (diff) | |
parent | 3d25ea2929a9a9bd0768339b8ac5fd1b7c4670ad (diff) |
Merge branch 'ghc-7.6' into ghc-7.6-merge-2
Conflicts:
haddock.cabal
src/Haddock/Interface/AttachInstances.hs
src/Haddock/Interface/Create.hs
src/Haddock/Interface/LexParseRn.hs
src/Haddock/InterfaceFile.hs
src/Haddock/Types.hs
Only GHC HEAD can compile this. GHC 7.6.x cannot compile this.
Some test fail.
Diffstat (limited to 'html-test/src/QuasiExpr.hs')
-rw-r--r-- | html-test/src/QuasiExpr.hs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/html-test/src/QuasiExpr.hs b/html-test/src/QuasiExpr.hs new file mode 100644 index 00000000..970759ba --- /dev/null +++ b/html-test/src/QuasiExpr.hs @@ -0,0 +1,34 @@ +{-# LANGUAGE TemplateHaskell #-} + +-- Used by QuasiQuote. Example taken from the GHC documentation. +module QuasiExpr where + +import Language.Haskell.TH +import Language.Haskell.TH.Quote + +data Expr = IntExpr Integer + | AntiIntExpr String + | BinopExpr BinOp Expr Expr + | AntiExpr String + deriving Show + +data BinOp = AddOp + | SubOp + | MulOp + | DivOp + deriving Show + +eval :: Expr -> Integer +eval (IntExpr n) = n +eval (BinopExpr op x y) = (opToFun op) (eval x) (eval y) + where + opToFun AddOp = (+) + opToFun SubOp = (-) + opToFun MulOp = (*) + opToFun DivOp = div + +expr = QuasiQuoter parseExprExp undefined undefined undefined + +-- cheating... +parseExprExp :: String -> Q Exp +parseExprExp _ = [| BinopExpr AddOp (IntExpr 1) (IntExpr 2) |] |