/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ö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>
|