This file is indexed.

/usr/share/doc/frown-doc/html/Manual002.html is in frown-doc 0.6.1-14.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="hevea 2.06">
<link rel="stylesheet" type="text/css" href="Manual.css">
<title>Introduction</title>
</head>
<body >
<a href="Manual001.html"><img src="previous_motif.gif" alt="Previous"></a>
<a href="index.html"><img src="contents_motif.gif" alt="Up"></a>
<a href="Manual003.html"><img src="next_motif.gif" alt="Next"></a>
<hr>
<h1 id="sec2" class="chapter">Chapter 1  Introduction</h1>
<p>
<a id="sec:introduction"></a>
</p><p><span style="font-family:sans-serif">Frown</span> is an LALR(<span style="font-style:italic">k</span>) parser generator for Haskell 98 written in
Haskell 98.</p><p>The work on <span style="font-family:sans-serif">Frown</span> started as an experiment in generating genuinely
functional LR parsers. The first version was written within three
days—yes, Haskell is a wonderful language for rapid prototyping.
Since then <span style="font-family:sans-serif">Frown</span> has gone through several cycles of reorganization
and rewriting. It also grew considerably: dozens of features were
added, examples were conceived and tested, and this manual was
written. In the end, <span style="font-family:sans-serif">Frown</span> has become a useable tool. I hope you
will find it useful, too.</p>
<h2 id="sec3" class="section">1.1  Obtaining and installing <span style="font-family:sans-serif">Frown</span></h2>
<p>
<a id="sec:install"></a>
</p>
<h5 id="sec4" class="paragraph">Obtaining <span style="font-family:sans-serif">Frown</span></h5>
<p>The parser generator is available from
</p><blockquote class="quote">
<span style="font-family:monospace">http://www.informatik.uni-bonn.de/~ralf/frown</span>.
</blockquote><p>
The bundle includes the sources and the complete documentation (dvi,
ps, PDF, and HTML).</p>
<h5 id="sec5" class="paragraph">Requirements</h5>
<p>You should be able to build <span style="font-family:sans-serif">Frown</span> with every Haskell 98-compliant
compiler. You have to use a not too ancient compiler as there have
been some changes to the Haskell language in Sep. 2001 (GHC 5.02 and
later versions will do).</p><p>The Haskell interpreter Hugs 98 is needed for running the testsuite.</p><p>Various tools are required to generate the documentation from scratch:
<span style="font-family:monospace">lhs2TeX</span>, L<sup>A</sup>T<sub>E</sub>X, functional , H<span style="font-size:small"><sup>E</sup></span>V<span style="font-size:small"><sup>E</sup></span>A and H<span style="font-size:small"><sup>A</sup></span>C<span style="font-size:small"><sup>H</sup></span>A. Note, however, that
the bundle already includes the complete documentation.</p>
<h5 id="sec6" class="paragraph">Installation</h5>
<p>Unzip and untar the bundle. This creates a directory called <span style="font-family:monospace">Frown</span>.
Enter this directory.
</p><table style="border:0;border-spacing:0" class="cellpadding0"><tr><td style="text-align:left;white-space:nowrap" ><span style="font-family:monospace"> ralf&gt; tar xzf frown.tar.gz</span></td></tr>
<tr><td style="text-align:left;white-space:nowrap" ><span style="font-family:monospace"> ralf&gt; cd Frown
</span></td></tr>
</table><p>
The documentation resides in the directory <span style="font-family:monospace">Manual</span>; example grammars
can be found in <span style="font-family:monospace">Examples</span> and <span style="font-family:monospace">Manual/Examples</span> (the files ending in
<span style="font-family:monospace">.g</span> and <span style="font-family:monospace">.lg</span>).</p><p>You can install <span style="font-family:sans-serif">Frown</span> using either traditional makefiles or Cabal.</p>
<h5 id="sec7" class="paragraph">Using makefiles</h5>
<p>Optionally, edit the <span style="font-family:monospace">Makefile</span> to specify destinations for the binary
and the documentation (this information is only used by <span style="font-family:monospace">make install</span>). Now, you can trigger
</p><table style="border:0;border-spacing:0" class="cellpadding0"><tr><td style="text-align:left;white-space:nowrap" ><span style="font-family:monospace"> ralf/Frown&gt; make
</span></td></tr>
</table><p>
which compiles <span style="font-family:sans-serif">Frown</span> generating an executable called <span style="font-family:monospace">frown</span> (to use
<span style="font-family:sans-serif">Frown</span> you only need this executable). Optionally, continue with
</p><table style="border:0;border-spacing:0" class="cellpadding0"><tr><td style="text-align:left;white-space:nowrap" ><span style="font-family:monospace"> ralf/Frown&gt; make install
</span></td></tr>
</table><p>
to install the executable and the documentation.</p><p>For reference, here is a list of possible targets:
</p><dl class="description"><dt class="dt-description">
<span style="font-weight:bold"><span style="font-family:monospace">make</span></span></dt><dd class="dd-description"> <br>
 Compiles <span style="font-family:sans-serif">Frown</span> generating an executable called <span style="font-family:monospace">frown</span> (to use <span style="font-family:sans-serif">Frown</span> 
you only need this executable).</dd><dt class="dt-description"><span style="font-weight:bold"><span style="font-family:monospace">make install</span></span></dt><dd class="dd-description"> <br>
 Compiles <span style="font-family:sans-serif">Frown</span> and installs the executable and the documentation.</dd><dt class="dt-description"><span style="font-weight:bold"><span style="font-family:monospace">make test</span></span></dt><dd class="dd-description"> <br>
 Runs the testsuite.<sup><a id="text1" href="#note1">1</a></sup></dd><dt class="dt-description"><span style="font-weight:bold"><span style="font-family:monospace">make man</span></span></dt><dd class="dd-description"> <br>
 Generates the documentation in various formats (dvi, ps, PDF, and
HTML).</dd><dt class="dt-description"><span style="font-weight:bold"><span style="font-family:monospace">make clean</span></span></dt><dd class="dd-description"> <br>
 Removes some temporary files.</dd><dt class="dt-description"><span style="font-weight:bold"><span style="font-family:monospace">make distclean</span></span></dt><dd class="dd-description"> <br>
 Removes all files except the ones that are included in the distribution.
</dd></dl>
<h5 id="sec8" class="paragraph">Using Cabal</h5>
<p>Alternatively, you can build <span style="font-family:sans-serif">Frown</span> using Cabal (version 1.1.3 or
later), Haskell’s Common Architecture for Building Applications and
Libraries.</p><p>For a global install, type:
</p><table style="border:0;border-spacing:0" class="cellpadding0"><tr><td style="text-align:left;white-space:nowrap" ><span style="font-family:monospace"> ralf/Frown&gt; runhaskell Setup.hs configure --ghc</span></td></tr>
<tr><td style="text-align:left;white-space:nowrap" ><span style="font-family:monospace"> ralf/Frown&gt; runhaskell Setup.hs build</span></td></tr>
<tr><td style="text-align:left;white-space:nowrap" ><span style="font-family:monospace"> ralf/Frown&gt; runhaskell Setup.hs install
</span></td></tr>
</table><p>
If you want to install <span style="font-family:sans-serif">Frown</span> locally, use (you may wish to replace
<span style="font-family:monospace">$HOME</span> by a directory of your choice):
</p><table style="border:0;border-spacing:0" class="cellpadding0"><tr><td style="text-align:left;white-space:nowrap" ><span style="font-family:monospace"> ralf/Frown&gt; runhaskell Setup.hs configure --ghc --prefix=$HOME</span></td></tr>
<tr><td style="text-align:left;white-space:nowrap" ><span style="font-family:monospace"> ralf/Frown&gt; runhaskell Setup.hs build</span></td></tr>
<tr><td style="text-align:left;white-space:nowrap" ><span style="font-family:monospace"> ralf/Frown&gt; runhaskell Setup.hs install --user
</span></td></tr>
</table>
<h5 id="sec9" class="paragraph">Usage</h5>
<p>The call
</p><table style="border:0;border-spacing:0" class="cellpadding0"><tr><td style="text-align:left;white-space:nowrap" ><span style="font-family:monospace"> ralf/Frown&gt; frown -h
</span></td></tr>
</table><p>
displays the various options. For more information consult this
manual.</p>
<h2 id="sec10" class="section">1.2  Reporting bugs</h2>
<p>Bug reports should be send to Ralf Hinze (<span style="font-family:monospace">ralf@cs.uni-bonn.de</span>).
The report should include all information necessary to reproduce the
bug: the compiler used to compile <span style="font-family:sans-serif">Frown</span>, the grammar source file (and
possibly auxiliary Haskell source files), and the command-line
invocation of <span style="font-family:sans-serif">Frown</span>.</p><p>Suggestions for improvements or request for features should also be
sent to the above address.</p>
<h2 id="sec11" class="section">1.3  License</h2>
<p><span style="font-family:sans-serif">Frown</span> is distributed under the GNU general public licence
(version 2).</p><pre class="verbatim">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                             %
%   Frown --- An LALR(k) parser generator for Haskell 98                      %
%   Copyright (C) 2001-2005 Ralf Hinze                                        %
%                                                                             %
%   This program is free software; you can redistribute it and/or modify      %
%   it under the terms of the GNU General Public License (version 2) as       %
%   published by the Free Software Foundation.                                %
%                                                                             %
%   This program is distributed in the hope that it will be useful,           %
%   but WITHOUT ANY WARRANTY; without even the implied warranty of            %
%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             %
%   GNU General Public License for more details.                              %
%                                                                             %
%   You should have received a copy of the GNU General Public License         %
%   along with this program; see the file COPYING.  If not, write to          %
%   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,          %
%   Boston, MA 02111-1307, USA.                                               %
%                                                                             %
%   Contact information                                                       %
%   Email:      Ralf Hinze &lt;ralf@cs.uni-bonn.de&gt;                              %
%   Homepage:   http://www.informatik.uni-bonn.de/~ralf/                      %
%   Paper mail: Dr. Ralf Hinze                                                %
%               Institut für Informatik III                                   %
%               Universität Bonn                                              %
%               Römerstraße 164                                               %
%               53117 Bonn, Germany                                           %
%                                                                             %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</pre>
<h2 id="sec12" class="section">1.4  Credits</h2>
<p><span style="font-family:sans-serif">Frown</span> wouldn’t have seen the light of day without the work of Ross
Paterson and Doaitse Swierstra. Ross invoked my interest in LR parsing
and he devised the <span style="font-family:monospace">--code=stackless</span> and <span style="font-family:monospace">--code=gvstack</span> output
formats. Doaitse invented the <span style="font-family:monospace">--code=standard</span> format, which was
historically the first format <span style="font-family:sans-serif">Frown</span> supported.</p><p>A big thank you goes to Andres Löh and Ross Paterson for various bug
reports and suggestions for improvement.</p>
<hr class="footnoterule"><dl class="thefootnotes"><dt class="dt-thefootnotes">
<a id="note1" href="#text1">1</a></dt><dd class="dd-thefootnotes"><div class="footnotetext">There are some known problems. The
format <span style="font-family:monospace">code=stackless</span> behaves differently for <span style="font-family:monospace">Loop.g</span> (the
generated parser is less strict than the standard one). Also,
<span style="font-family:monospace">Empty.g</span> does not work yet. Finally, error reports may differ for
different formats and for optimized and unoptimized versions (as some
parsers perform additional reductions before an error is
reported).</div>
</dd></dl>
<hr>
<a href="Manual001.html"><img src="previous_motif.gif" alt="Previous"></a>
<a href="index.html"><img src="contents_motif.gif" alt="Up"></a>
<a href="Manual003.html"><img src="next_motif.gif" alt="Next"></a>
</body>
</html>