styx A combined parser and scanner generator


'styx' translates the token and syntax description for a language in [$SPESTYX/Language.sty] into scanner and parser tables and a functional interface to the abstract derivation tree.

The generated tables have to be applied to the actual scanner and parser function which are part of the styx library. The result of the parser function will be a derivation tree which can be accessed through the above mentioned interface.

Arguments


NameTypeSemantic
Language name language name



Options

An option will be specified as follows: -<Name>=<Value>
The default value will be applied when the option wasn't specified.

NameTypeDefault valueSemantic
diagnose flagfalse additional diagnose and information
verbose flagfalse progress information
makeIMG flagfalse create binary table images
makeINT flagfalse create interface c source
makeC flagfalse create table c sources

Dependant on the given options different source and image files will be created:

  1. -makeIMG
    For an interpretative execution you may only need the binary [$BINSTYX/Language.pim] and [$BINSTYX/Language.lim] image files which contain the parser and scanner tables.
  2. -makeINT
    To process the derivation tree within your c/c++ program its useful to create the interface c source [$GENSTYX/Language(1,4)_int.c].
  3. -makeC
    Instead of using the table image files you can include the c sources [$GENSTYX/Language(1,4)_pim.c] and [$GENSTYX/Language(1,4)_lim.c] in your compiler. This option implies '-makeINT'.


Environment

An environment variable will be specified as followed: -<Name>=<Value>
The default value will be applied when no environment variable was specified.

NameTypeDefault valueSemantic
BINSTYX path. [.pim] und [.lim] target directory
GENSTYX path. [.c] target directory
SPESTYX path. [.sty] source directory