-
Notifications
You must be signed in to change notification settings - Fork 4
/
LLVM.hs
68 lines (56 loc) · 1.87 KB
/
LLVM.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
module LLVM.Quote.LLVM (
llmod,
lldef,
llg,
-- llbb,
-- llbbs,
lli,
llt,
llmodM,
lldefM,
llgM,
-- llbbM,
-- llbbsM,
lliM
) where
import LLVM.Quote.Base (CodeGen, quasiquote, quasiquoteM, TQuasiQuoter(unTQuasiQuoter))
import qualified LLVM.Quote.AST as A
import qualified LLVM.Quote.Parser.Parser as P
import qualified LLVM.AST as L
import Language.Haskell.TH.Quote
exts :: [A.Extensions]
exts = []
-- | Quasiquoter for 'LLVM.AST.Module'
llmod :: QuasiQuoter
llmod = unTQuasiQuoter
(quasiquote exts P.parseModule :: TQuasiQuoter L.Module)
-- | Quasiquoter for 'LLVM.AST.Definition'
lldef :: QuasiQuoter
lldef = unTQuasiQuoter
(quasiquote exts P.parseDefinition :: TQuasiQuoter L.Definition)
-- | Quasiquoter for 'LLVM.AST.Global'
llg :: QuasiQuoter
llg = unTQuasiQuoter (quasiquote exts P.parseGlobal :: TQuasiQuoter L.Global)
-- | Quasiquoter for 'LLVM.AST.Instruction.Instruction'
lli :: QuasiQuoter
lli = unTQuasiQuoter
(quasiquote exts P.parseInstruction :: TQuasiQuoter L.Instruction)
-- | Quasiquoter for 'LLVM.AST.Instruction.Terminator
llt :: QuasiQuoter
llt = unTQuasiQuoter
(quasiquote exts P.parseTerminator :: TQuasiQuoter L.Terminator)
-- | Quasiquoter for 'LLVM.AST.Module'
llmodM :: QuasiQuoter
llmodM = unTQuasiQuoter
(quasiquoteM exts P.parseModule :: TQuasiQuoter (CodeGen L.Module))
-- | Quasiquoter for 'LLVM.AST.Definition'
lldefM :: QuasiQuoter
lldefM = unTQuasiQuoter
(quasiquoteM exts P.parseDefinition :: TQuasiQuoter (CodeGen L.Definition))
-- | Quasiquoter for 'LLVM.AST.Global'
llgM :: QuasiQuoter
llgM = unTQuasiQuoter (quasiquoteM exts P.parseGlobal :: TQuasiQuoter (CodeGen L.Global))
-- | Quasiquoter for 'LLVM.AST.Instruction.Instruction'
lliM :: QuasiQuoter
lliM = unTQuasiQuoter
(quasiquoteM exts P.parseInstruction :: TQuasiQuoter (CodeGen L.Instruction))