-
Notifications
You must be signed in to change notification settings - Fork 5
/
hsx2hs.cabal
78 lines (68 loc) · 3.85 KB
/
hsx2hs.cabal
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
69
70
71
72
73
74
75
76
77
78
Name: hsx2hs
Version: 0.14.1.11
License: BSD3
License-File: LICENSE
Author: Niklas Broberg, Joel Bjornson
Maintainer: Jeremy Shaw <[email protected]>
Stability: Experimental
Category: Language
Synopsis: HSX (Haskell Source with XML) allows literal XML syntax in Haskell source code.
Description: HSX (Haskell Source with XML) allows literal XML syntax in Haskell source code.
The hsx2hs preprocessor translates .hsx source files into ordinary .hs files. Literal
XML syntax is translated into function calls for creating XML values of the appropriate
forms.
hsx2hs transforms literal XML syntax into a series of function calls. Any project
can make use of the syntax by providing definitions for those functions, and the
XML values produced will be of the types specified. This works for any types, since
hsx2hs doesn't make any assumptions, or inserts any information depending on types.
XMLGenerator defines a few typeclasses that together cover the functions injected by the
preprocessor. A project that uses these classes to provide the semantics for the injected
syntax will be able to use any functions written in terms of these, allowing better code
reusability than if each project defines its own semantics for the XML syntax. Also, the classes
makes it possible to use the literal syntax at different types within the same module.
Achieving that is not as simple as it may seem, but the XMLGenerator module provides all the
necessary machinery.
Homepage: https://github.com/seereason/hsx2hs
Tested-With: GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5, GHC==8.8.4, GHC==8.10.7, GHC==9.0.2, GHC==9.2.5, GHC==9.4.4
Cabal-Version: >= 1.10
Build-Type: Simple
source-repository head
type: git
location: https://github.com/seereason/hsx2hs
Library
Default-Language: Haskell2010
Build-depends: base >= 4 && < 5,
mtl >= 2.0 && < 2.4,
haskell-src-exts >= 1.18 && < 1.24,
haskell-src-meta >= 0.7 && < 0.9,
template-haskell >= 2.7 && < 2.20,
bytestring,
utf8-string >= 0.3 && < 1.1
Hs-Source-Dirs: src
Exposed-Modules: Language.Haskell.HSX.Transform
Language.Haskell.HSX.QQ
Default-Extensions: MultiParamTypeClasses,
FunctionalDependencies,
OverlappingInstances,
UndecidableInstances,
FlexibleInstances,
GeneralizedNewtypeDeriving,
TypeFamilies,
TypeSynonymInstances,
FlexibleContexts,
TypeOperators,
CPP
Executable hsx2hs
Default-Language: Haskell2010
Default-Extensions: CPP
Main-Is: hsx2hs.hs
Hs-Source-Dirs: src
Build-depends: base >= 4 && < 5,
mtl >= 2.0 && < 2.4,
haskell-src-exts >= 1.18 && < 1.24,
haskell-src-meta >= 0.7 && < 0.9,
template-haskell >= 2.7 && < 2.20,
bytestring,
utf8-string >= 0.3 && < 1.1
Other-modules: Language.Haskell.HSX.Transform
Language.Haskell.HSX.QQ