Chapter 6. Invoking Alex

The command line syntax for Alex is entirely standard:

$ alex { option } file.x  { option }

Alex expects a single file.x to be named on the command line. By default, Alex will create file.hs containing the Haskell source for the lexer.

The options that Alex accepts are listed below:

-o file, --outfile=file,

Specifies the filename in which the output is to be placed. By default, this is the name of the input file with the .x suffix replaced by .hs.

-i [file], --info [=file],

Produces a human-readable rendition of the state machine (DFA) that Alex derives from the lexer, in file (default: file.info where the input file is file.x).

The format of the info file is currently a bit basic, and not particularly informative.

-t [dir], --template=dir,

Look in dir for template files.

-g, --ghc,

Causes Alex to produce a lexer which is optimised for compiling with GHC. The lexer will be significantly more efficient, both in terms of the size of the compiled lexer and its runtime.

-d, --debug,

Causes Alex to produce a lexer which will output debugging messsages as it runs.

-?, --help,

Display help and exit.

-V, --version,

Output version information and exit. Note that for legacy reasons -v is supported, too, but the use of it is deprecated. -v will be used for verbose mode when it is actually implemented.