The command line syntax for Alex is entirely standard:
$ alex {option
}file
.x {option
}
Alex expects a single
to be named
on the command line. By default, Alex will create
file
.x
containing
the Haskell source for the lexer.file
.hs
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:
where the input file is
file
.info
).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 messages as it runs.
-l
, --latin1
Disables the use of UTF-8 encoding in the generated lexer. This has two consequences:
The Alex source file is still assumed to be UTF-8 encoded, but any Unicode characters outside the range 0-255 are mapped to Latin-1 characters by taking the code point modulo 256.
The built-in macros $printable
and '.
' range over the Latin-1
character set, not the Unicode character set.
Note that this currently does not disable the UTF-8 encoding
that happens in the "basic" wrappers,
so --latin1
does not make sense in
conjunction with these wrappers (not that you would want to
do that, anyway).
-?
, --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.