(flex.info.gz) Definitions Section
Info Catalog
(flex.info.gz) Format
(flex.info.gz) Format
(flex.info.gz) Rules Section
5.1 Format of the Definitions Section
=====================================
The "definitions section" contains declarations of simple "name"
definitions to simplify the scanner specification, and declarations of
"start conditions", which are explained in a later section.
Name definitions have the form:
name definition
The `name' is a word beginning with a letter or an underscore (`_')
followed by zero or more letters, digits, `_', or `-' (dash). The
definition is taken to begin at the first non-whitespace character
following the name and continuing to the end of the line. The
definition can subsequently be referred to using `{name}', which will
expand to `(definition)'. For example,
DIGIT [0-9]
ID [a-z][a-z0-9]*
Defines `DIGIT' to be a regular expression which matches a single
digit, and `ID' to be a regular expression which matches a letter
followed by zero-or-more letters-or-digits. A subsequent reference to
{DIGIT}+"."{DIGIT}*
is identical to
([0-9])+"."([0-9])*
and matches one-or-more digits followed by a `.' followed by
zero-or-more digits.
An unindented comment (i.e., a line beginning with `/*') is copied
verbatim to the output up to the next `*/'.
Any _indented_ text or text enclosed in `%{' and `%}' is also copied
verbatim to the output (with the %{ and %} symbols removed). The %{
and %} symbols must appear unindented on lines by themselves.
A `%top' block is similar to a `%{' ... `%}' block, except that the
code in a `%top' block is relocated to the _top_ of the generated file,
before any flex definitions (1). The `%top' block is useful when you
want certain preprocessor macros to be defined or certain files to be
included before the generated code. The single characters, `{' and
`}' are used to delimit the `%top' block, as show in the example below:
%top{
/* This code goes at the "top" of the generated file. */
#include <stdint.h>
#include <inttypes.h>
}
Multiple `%top' blocks are allowed, and their order is preserved.
---------- Footnotes ----------
(1) Actually, `yyIN_HEADER' is defined before the `%top' block.
Info Catalog
(flex.info.gz) Format
(flex.info.gz) Format
(flex.info.gz) Rules Section
automatically generated byinfo2html