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
79
80
|
Source: frown
Maintainer: Debian Haskell Group <pkg-haskell-maintainers@lists.alioth.debian.org>
Uploaders:
Joachim Breitner <nomeata@debian.org>,
Priority: extra
Section: haskell
Build-Depends:
cdbs,
debhelper (>= 9),
ghc (>= 8),
haskell-devscripts (>= 0.13),
hevea,
lhs2tex,
texlive-generic-recommended,
texlive-latex-extra,
Standards-Version: 3.9.8
Homepage: http://hackage.haskell.org/package/frown
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-haskell/DHG_packages.git/tree/p/frown
Vcs-Git: https://anonscm.debian.org/git/pkg-haskell/DHG_packages.git
X-Description: LALR(k) parser generator
Frown is an LALR(k) parser generator for Haskell 98 written in Haskell 98.
.
Its salient features are:
- The generated parsers are time and space efficient. On the downside, the
parsers are quite large.
- Frown generates four different types of parsers. as a common
characteristic, the parsers are genuinely functional (ie ‘table-free’);
the states of the underlying LR automaton are encoded as mutually
recursive functions. Three output formats use a typed stack
representation, and one format due to Ross Paterson (code=stackless)
works even without a stack.
- Encoding states as functions means that each state can be treated
individually as opposed to a table-driven approach, which necessitates a
uniform treatment of states. For instance, look-ahead is only used when
necessary to resolve conflicts.
- Frown comes with debugging and tracing facilities; the standard output
format due to Doaitse Swierstra (code=standard) may be useful for
teaching LR parsing.
- Common grammatical patterns such as repetition of symbols can be
captured using rule schemata. There are several predefined rule
schemata.
- Terminal symbols are arbitrary variable-free Haskell patterns or guards.
Both terminal and nonterminal symbols may have an arbitrary number of
synthesized attributes.
- Frown comes with extensive documentation; several example grammars are
included. Furthermore, Frown supports the use of monadic lexers, monadic
semantic actions, precedences, and associativity, the generation of
backtracking parsers, multiple start symbols, error reporting, and a
weak form of error correction.
Package: frown
Architecture: any
Section: misc
Depends:
${haskell:Depends},
${misc:Depends},
${shlibs:Depends},
Recommends:
frown-doc (= ${source:Version}),
${haskell:Recommends},
Suggests:
${haskell:Suggests},
Conflicts:
${haskell:Conflicts},
Provides:
${haskell:Provides},
Multi-Arch: foreign
Description: ${haskell:ShortDescription}
${haskell:LongDescription}
Package: frown-doc
Architecture: all
Section: doc
Depends:
${misc:Depends},
${shlibs:Depends},
Suggests:
doc-base,
Description: ${haskell:ShortDescription} -- documentation
${haskell:LongDescription}
|