---
name: "styx"
section: "1"
platform: "linux"
package: "styx"
version: "2.0.1-1+b1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/styx"
---

# styx(1)

A combined parser and scanner generator

## NAME

styx — A combined parser and scanner generator

## SYNOPSIS

**styx** \[**-diagnose**\]  \[**-verbose**\]  \[**-makeC**\]  \[**-makeIMG**\]  \[**-makeINT**\]  \[**-shortform**\]  \[**-BINSTYX=***directory*\]  \[**-GENSTYX=***directory*\]  \[**-SPESTYX=***directory*\] *language*

**stypp** \[**-charset=***string*\]  \[**-wprint**\]  \[**-prepar=***string*\]  \[**-premac=***string*\]  \[**-prefun=***string*\]  \[**-Start=***string*\]  \[**-xaron**\]  \[**-early**\]  \[**-shiftfun=***string*\]  \[**-reducefun=***string*\]  \[**-ppfun=***string*\]  \[**-BINSTYX=***path*\] *srclang* *tgtlang* *filename*

**stydoc** \[**-StyxPath=***path*\]  \[**-Template=***path*\]  \[**-RefAlias=***string*\]  \[**-recursiv**\]  \[**-prodcom**\]  \[**-keepNTs=***string*\]  \[**-noClass=***string*\]  \[**-exProds=***string*\]  \[**-ignRRef=***string*\]  \[**-BINSTYX=***path*\] *grammarfile* *outfile*

**ctoh** \[**-ct**\]  \[**-force**\]  \[**-CPATH=***path*\]  \[**-HPATH=***path*\]  \[**-PRJ=***path*\]  \[**-DPATH=***path*\]  \[**-DROOT=***path*\]

**ptm\_img** \[**-FileName=***path*\]  \[**-charset=***string*\]  \[**-skipset=***string*\]  \[**-binmode**\]  \[**-wprint**\]  \[**-prepar=***string*\]  \[**-premac=***string*\]  \[**-prefun=***string*\]  \[**-Start=***string*\]  \[**-xaron**\]  \[**-early**\]  \[**-shiftfun=***string*\]  \[**-reducefun=***string*\]  \[**-BINSTYX=***path*\] *language* *image*

**lim\_test** \[**-charset=***string*\]  \[**-binmode**\]  \[**-wprint**\]  \[**-prepar=***string*\]  \[**-premac=***string*\]  \[**-prefun=***string*\]  \[**-tokens**\]  \[**-symbols**\]  \[**-BINSTYX=***path*\] *language* *filename*

**pim\_test** \[**-charset=***string*\]  \[**-binmode**\]  \[**-wprint**\]  \[**-prepar=***string*\]  \[**-premac=***string*\]  \[**-prefun=***string*\]  \[**-Start=***string*\]  \[**-xaron**\]  \[**-early**\]  \[**-shiftfun=***string*\]  \[**-reducefun=***string*\]  \[**-tree**\]  \[**-BINSTYX=***path*\] *language* *filename*

## DESCRIPTION

This manual page documents briefly the  **styx**,  **stypp**,  **stydoc**,  **ctoh**,  **lim\_test** and  **pim\_test**       commands.  It was written for the **Debian GNU/Linux** distribution because the  original programs don't have manual pages, but have  documentation in HTML format (see below).

**styx** translates token and syntax  descriptions contained in  $SPESTYX/language.sty yielding scanner and  parser tables as well as a functional interface to the abstract  derivation tree.

**stypp** is sort of a \`\`*pretty*  *printer*'' for source files written in a styx-defined  language. Furthermore it can be used to port source files,  provided source and target languages have equivalent abstract  syntax.

**stydoc** generates HTML reference  documentation for a grammar specified in grammarfile using a  template.

**ctoh** is used to create header files from  C sources generated by **styx**. It is taken from  the upstream author's own project development environment where  source files are written in a manner allowing interface  definitions to be automatically generated.

**ptm\_img** translates a source file  specified by the FileName option to a binary image. If the  FileName option is omitted, the *image* file  must exist and the program writes the derivation tree to  stdout.

**lim\_test** uses a scanner image file for  *language* to scan the source in  *filename* writing the token stream to  stdout.

**pim\_test** uses scanner and parser image files for  *language* to parse the source in  *filename* writing the derivation tree to  stdout.

## ENVIRONMENT

Upstream authors use non-standard conventions for command-line  options and environment variables, to the effect that the latter are  best viewed as options which default to the value of the  identically named environment variable if not specified.

For **styx**, **SPESTYX** is  the search path for language specifications  (*language*.sty), scanner and parser image  files are located using **BINSTYX** while the  location of generated C code is determined by  **GENSTYX**.

**stypp**, **stydoc**,  **ptm\_img**, **lim\_test** and  **pim\_test** use **BINSTYX** to  locate scanner and parser image files  *language*.lim and  *language*.pim.

## SEE ALSO

The programs are documented fully in *The Styx*  *Handbook* available in the source distribution in  LinuxDoc and HTML format. On  **Debian GNU/Linux** systems the documentation is contained in the  *styx-doc* package.

## AUTHOR

This manual page was written by Siggy Brentrup  \<bsb@debian.org\> for the **Debian GNU/Linux** system (but may be used by  others).  Permission is granted to copy, distribute and/or modify  this document under the terms of the GNU Free  Documentation License, Version 1.1 or any later version published  by the Free Software Foundation; with no Invariant Sections, no  Front-Cover Texts and no Back-Cover Texts.
