This section contains an eclectic collection of topics. As a compromise
between our intention to release Styx quickly but to provide you with a
more or less complete documentation, much had to be left out and others
could only be touched shortly. Some of the topics might evolve into
a complete chapter in later versions of this document.
- Mostly disadvantages of the scanner:
Some irregular lexical syntaxes as used in languages
cannot be scanned. Take Rpg, Fortran or Cobol with
their columnar lexical syntax as examples.
- The parser only supports a one-symbol look-ahead,
while more modern yacc versions come with lalr(2)
or even lalr(k). Since lalr(1) is known to handle
the deterministic languages, this is not a real
issue, since we can always reformulate the grammar
to cope with oddities.
- Languages that come with an ill-layered context-free
and context-dependent grammar (many do), cannot be
parsed without extra tricks. Take the "typedef"
declaration of C together with the application of
the type name in type denotations as example.
Likely examples are languages with definable operator
precedences as Algol98 or Prolog for instance.
Styx provides a few hooks to cope with stuff like this,
since version 2.0.1 the usage of "dynamic" tokens to
solve the first mentioned problem.
A typical example of the problem occurs already when
parsing expressions. As a result we want to get something
like 'expr ::= varid | lit | funid(expr,...)', but we have
prefix, infix, postfix, distfix order and whatever syntactical
sugar in the surface grammar. Further, the 'funid' tokens
come in as keywords and not as regular names.
- Node rotation
- keyword --> symbol replacements
A Method to solve the problem would be to have some 'interface time'
reduction rules. The impact of such rules with regard to the abstraction
congruence and to unparsing remains to be investigated.
- Allows to "translate" to a super-grammar of the parsed word.
- Incompletely developed especially with regard to token separation and
- Conceptionally wrong because of the indent format specification
method that causes Styx sources not be pretty printable themselves.
This misconception will be ironed out in one of the next releases.
- Successfully used anyway by the author to convert a language
with a lisp like surface grammar (and a hand-written parser)
to something proper with infix operators, function names before
the parentheses, if constructs and other. Only a little handwork
was needed to place the comments right and to adjust the layout
in certain situations due to my taste.
- Should be developed so, that it can be used as a source code
normalizer in a regular way.
- '.ant' provides a very space efficient representation of the
derivation tree to the expense that keywords and comments
are as well lost as source file references.
- It is a plug-in replacement.
- This format originated as a workaround for some disabilities
in older versions of Microsoft's memory allocation library.
- Basically, reentrancy works fine.
- Thread-safeness should work, but is not tested very well.
The word "Styx", which is the name of the here-described software
has two interpretations intended by us. The first, plain
and simple is an abbreviation or more precise a ENGLISH("Verballhornung")
of the word "syntax" which is obviously closely related to what
Styx is for. The second, more opaque and perhaps scaring interpretation
originates from the coincidence with the name of a place in Greek
mythology. It is the name of a very poisonous river that separates the
mythological underworld, the hades, from the world on the surface
of earth. Well knowing that analogies painfully stress the imagination,
we do not go further into it, but leave it to the meditation of the
- Standard installation procedure (configure, make, make install).
Use 'configure --help' to get options.
- Styx is available at http://www.speculate.de/Styx.
- The Styx package is released both under GPL and LGPL, while each
of the licenses apply to different parts.
- LD & HM
- Styx intentionally is an original freeware product, .... Thanks goes
to the freeware community to create the environment that finally
allows us to present our work to a more wider audience. We hope
using Styx will make as much fun as it made us writing it.
- Styx was written by the authors in their spare time as a tool
to create another application while working as freelancers for
the administration of the "Freie und Hansestadt Hamburg", their
Styx is copyright (c) 19xx-2002,2003 by Lars Doelle and Heike Manns.
Dos and Windows is a trademark of Microsoft. Unix is a trademark
of the Santa Cruise Corporation. All other mentioned trademarks
are trademarks of their respective owners.