This file is indexed.

/usr/share/doc/styx-doc/html/styx.html is in styx-doc 2.0.1-1.

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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.66">
 <TITLE>The Styx Handbook</TITLE>
 <LINK HREF="styx-1.html" REL=next>


</HEAD>
<BODY>
<A HREF="styx-1.html">Next</A>
Previous
Contents
<HR>
<H1>The Styx Handbook</H1>

<H2>Lars D&ouml;lle, Heike Manns
<A HREF="mailto:lars.doelle@on-line.de">lars.doelle@on-line.de</A>
<A HREF="mailto:heike@free-it.org">heike@free-it.org</A></H2>Version 2.0.1, 7 July 2012
<HR>
<EM>Styx is a scanner and parser generator designed to address some
shortcomings of the traditional lex/yacc combination.
It has unique features like automatic derivation of depth grammar, production of the derivation tree including it's C interface which provides access to the abstract syntax tree, preservation of full source information and pretty printing to facilitate source-source translation, persistence to aid rapid interpreter writing.
For application in contemporary computing environments, it supports unicode,
reentrancy and offers thread-safeness. Last but not least, Styx works well
under many different OSes, among them dos, windows, and serveral unixes.
It has been successfully used in many applications and is known to provide
rapid compiler development. Both from our practical experience as well as
from the amount of written code, the gain in development time for realistic
languages versus lex/yacc is a factor of about 5-10.</EM>
<HR>
<P>
<H2><A NAME="toc1">1.</A> <A HREF="styx-1.html">Introduction and Overview</A></H2>

<UL>
<LI><A NAME="toc1.1">1.1</A> <A HREF="styx-1.html#ss1.1">The supported translation framework</A>
<LI><A NAME="toc1.2">1.2</A> <A HREF="styx-1.html#ss1.2">Reasons for this framework</A>
<LI><A NAME="toc1.3">1.3</A> <A HREF="styx-1.html#ss1.3">The role of Styx within this framework</A>
<LI><A NAME="toc1.4">1.4</A> <A HREF="styx-1.html#ss1.4">The supported language model</A>
<LI><A NAME="toc1.5">1.5</A> <A HREF="styx-1.html#ss1.5">Comparison to the lex/yacc combination</A>
</UL>
<P>
<H2><A NAME="toc2">2.</A> <A HREF="styx-2.html">A walk-through applying Styx</A></H2>

<UL>
<LI><A NAME="toc2.1">2.1</A> <A HREF="styx-2.html#ss2.1">The language definition</A>
<LI><A NAME="toc2.2">2.2</A> <A HREF="styx-2.html#ss2.2">The derived depth grammar / term algebra</A>
<LI><A NAME="toc2.3">2.3</A> <A HREF="styx-2.html#ss2.3">Testing the language definition</A>
<LI><A NAME="toc2.4">2.4</A> <A HREF="styx-2.html#ss2.4">The C language interface</A>
<LI><A NAME="toc2.5">2.5</A> <A HREF="styx-2.html#ss2.5">Using the interface</A>
</UL>
<P>
<H2><A NAME="toc3">3.</A> <A HREF="styx-3.html">The Styx Language Specification</A></H2>

<UL>
<LI><A NAME="toc3.1">3.1</A> <A HREF="styx-3.html#ss3.1">The overall source</A>
<LI><A NAME="toc3.2">3.2</A> <A HREF="styx-3.html#ss3.2">Lexical Conventions</A>
<LI><A NAME="toc3.3">3.3</A> <A HREF="styx-3.html#ss3.3">The Regular Grammar</A>
<LI><A NAME="toc3.4">3.4</A> <A HREF="styx-3.html#ss3.4">The Context-Free Grammar</A>
</UL>
<P>
<H2><A NAME="toc4">4.</A> <A HREF="styx-4.html">The Concrete Derivation Tree</A></H2>

<P>
<H2><A NAME="toc5">5.</A> <A HREF="styx-5.html">Mapping Trees to Terms</A></H2>

<UL>
<LI><A NAME="toc5.1">5.1</A> <A HREF="styx-5.html#ss5.1">Well-formed productions</A>
<LI><A NAME="toc5.2">5.2</A> <A HREF="styx-5.html#ss5.2">An induced congruence relation</A>
<LI><A NAME="toc5.3">5.3</A> <A HREF="styx-5.html#ss5.3">Classes and Representatives</A>
<LI><A NAME="toc5.4">5.4</A> <A HREF="styx-5.html#ss5.4">Compatibility Conditions</A>
<LI><A NAME="toc5.5">5.5</A> <A HREF="styx-5.html#ss5.5">Conversion to term algebras</A>
<LI><A NAME="toc5.6">5.6</A> <A HREF="styx-5.html#ss5.6">A note on the implementation</A>
<LI><A NAME="toc5.7">5.7</A> <A HREF="styx-5.html#ss5.7">Relation between the abstract grammar and the algebra.</A>
</UL>
<P>
<H2><A NAME="toc6">6.</A> <A HREF="styx-6.html">The Handyman's Guide to Styx</A></H2>

<UL>
<LI><A NAME="toc6.1">6.1</A> <A HREF="styx-6.html#ss6.1">Setting up a Styx project</A>
<LI><A NAME="toc6.2">6.2</A> <A HREF="styx-6.html#ss6.2">Writing and Testing a Grammar</A>
<LI><A NAME="toc6.3">6.3</A> <A HREF="styx-6.html#ss6.3">Using the generated interface</A>
<LI><A NAME="toc6.4">6.4</A> <A HREF="styx-6.html#ss6.4">Putting it all together</A>
</UL>
<P>
<H2><A NAME="toc7">7.</A> <A HREF="styx-7.html">A realistic Styx example</A></H2>

<UL>
<LI><A NAME="toc7.1">7.1</A> <A HREF="styx-7.html#ss7.1">The concrete PL0 syntax</A>
<LI><A NAME="toc7.2">7.2</A> <A HREF="styx-7.html#ss7.2">The generated abstract grammar</A>
<LI><A NAME="toc7.3">7.3</A> <A HREF="styx-7.html#ss7.3">An example PL0 program</A>
<LI><A NAME="toc7.4">7.4</A> <A HREF="styx-7.html#ss7.4">The Semantic of PL0 programs</A>
<LI><A NAME="toc7.5">7.5</A> <A HREF="styx-7.html#ss7.5">Implementing a PL0 interpreter</A>
</UL>
<P>
<H2><A NAME="toc8">8.</A> <A HREF="styx-8.html">Further aspects</A></H2>

<UL>
<LI><A NAME="toc8.1">8.1</A> <A HREF="styx-8.html#ss8.1">Some notes on dangling else grammars and abstraction</A>
<LI><A NAME="toc8.2">8.2</A> <A HREF="styx-8.html#ss8.2">The error recovery mechanism</A>
<LI><A NAME="toc8.3">8.3</A> <A HREF="styx-8.html#ss8.3">Using persistence</A>
<LI><A NAME="toc8.4">8.4</A> <A HREF="styx-8.html#ss8.4">Unicode support</A>
<LI><A NAME="toc8.5">8.5</A> <A HREF="styx-8.html#ss8.5">The preprocessing facility</A>
<LI><A NAME="toc8.6">8.6</A> <A HREF="styx-8.html#ss8.6">Using early reduction</A>
<LI><A NAME="toc8.7">8.7</A> <A HREF="styx-8.html#ss8.7">Parsing from strings and special files</A>
<LI><A NAME="toc8.8">8.8</A> <A HREF="styx-8.html#ss8.8">Using the scanner alone</A>
<LI><A NAME="toc8.9">8.9</A> <A HREF="styx-8.html#ss8.9">Integration of external scanner and parser</A>
<LI><A NAME="toc8.10">8.10</A> <A HREF="styx-8.html#ss8.10">Constructing and accessing a derivation tree</A>
<LI><A NAME="toc8.11">8.11</A> <A HREF="styx-8.html#ss8.11">Meta-operations</A>
<LI><A NAME="toc8.12">8.12</A> <A HREF="styx-8.html#ss8.12">Pretty printing</A>
<LI><A NAME="toc8.13">8.13</A> <A HREF="styx-8.html#ss8.13">Programming language support</A>
</UL>
<P>
<H2><A NAME="toc9">9.</A> <A HREF="styx-9.html">Odds'n'Ends</A></H2>

<UL>
<LI><A NAME="toc9.1">9.1</A> <A HREF="styx-9.html#ss9.1">Disadvantages with regard to lex/yacc   </A>
<LI><A NAME="toc9.2">9.2</A> <A HREF="styx-9.html#ss9.2">Intensive grammar abstractions   </A>
<LI><A NAME="toc9.3">9.3</A> <A HREF="styx-9.html#ss9.3">Pretty printing   </A>
<LI><A NAME="toc9.4">9.4</A> <A HREF="styx-9.html#ss9.4">'.ant' vs. '.int' C-Interface   </A>
<LI><A NAME="toc9.5">9.5</A> <A HREF="styx-9.html#ss9.5">Reentrancy and thread-safeness   </A>
<LI><A NAME="toc9.6">9.6</A> <A HREF="styx-9.html#ss9.6">Meaning of the name "Styx"</A>
<LI><A NAME="toc9.7">9.7</A> <A HREF="styx-9.html#ss9.7">Installation, Availability and License   </A>
<LI><A NAME="toc9.8">9.8</A> <A HREF="styx-9.html#ss9.8">Authors and Credits   </A>
<LI><A NAME="toc9.9">9.9</A> <A HREF="styx-9.html#ss9.9">Copyright and Trademarks   </A>
</UL>
<P>
<H2><A NAME="toc10">10.</A> <A HREF="styx-10.html">References</A></H2>

<UL>
<LI><A NAME="toc10.1">10.1</A> <A HREF="styx-10.html#ss10.1">Language Reference</A>
<LI><A NAME="toc10.2">10.2</A> <A HREF="styx-10.html#ss10.2">Library Reference</A>
<LI><A NAME="toc10.3">10.3</A> <A HREF="styx-10.html#ss10.3">Manual pages</A>
<LI><A NAME="toc10.4">10.4</A> <A HREF="styx-10.html#ss10.4">Styx based example applications</A>
</UL>
<P>
<H2><A NAME="toc11">11.</A> <A HREF="styx-11.html">Bibliography</A></H2>

<UL>
<LI><A NAME="toc11.1">11.1</A> <A HREF="styx-11.html#ss11.1">Recommended books on compiler construction</A>
</UL>
<P>
<H2><A NAME="toc12">12.</A> <A HREF="styx-12.html">Appendix</A></H2>

<HR>
<A HREF="styx-1.html">Next</A>
Previous
Contents
</BODY>
</HTML>