The lx2l Preprocessor Home Page

This directory contains lx2l, a character-based preprocessor for any file type. It was first used for the cvt2ltx package, but can be used also for many other tasks.

The main difference to other preprocessors is the capability of handling multiple threads in a single file and character remapping (i.e., every input character can be redefined as an arbitrary text for the output). Conditionals, macros (oneline or multiline macros, macros with or without parameters and local conditionals) and simple loops (!) are supported.

lx2l was built and tested with Unix, VMS and M$DOG (djgpp/gcc). If you want to use Borland C++ or another 16 Bit compiler, you have perhaps to decrease some buffer sizes.

Prerequesite software to build lx2l are flex 2.5x and bison or yacc. Many flex 2.5 specific constructions are used; so it is unlikely that the original lex works on the files; also earlier versions of flex don't work. bison/yacc is used only for the calc and compare modules (They can be omitted if you don't want to use them).

The documentation is available in different formats. All versions are generated from a single source using lx2l and some auxiliary tools. The german version is not complete, but more up-to-date than the english version.

If you want to have a look at some lx files, use one of the following links:

The new version (1.1.34) contains many extensions (arithmetic calculations, comparisons, simplified syntax for multiline macros, extensions and bug fixes for loop code, new command \img() for HTML, system() function and command, many bugfixes); but it may contain also some new bugs. To build this version, flex 2.5x and bison (or yacc) is required. The new features are not yet documented :-(((, but some examples are included - RTFS.

To download the converter source files, click here. A compiled version for m$dog (maybe not the latest version) is available here.

Comments, suggestions and bug reports are welcome; send an email to m.plugge@fh-mannheim.de.

<In Work>    NOTE: The documentation is currently incomplete: many commands are not documented. It will be extended if I get some more time again. Until then, you should check the example files for these commands.    <In Work>
 
last modified: 4.5.2000 9:22