\fI\%encoding support\fP, \fI\%start conditions\fP, \fI\%skeleton programs\fP and
\fI\%visualization and debug\fP\&.
Re2c provides a lot of \fI\%options\fP, \fI\%configurations\fP and \fI\%directives\fP that
-allow to customize the generated code.
+allow one to customize the generated code.
.SH OPTIONS
.INDENT 0.0
.TP
generated lexer communicates with the outer world by the means of user
interface.
Rules consist of a regular expression followed by a user\-defined action
-(semantic action): a block of C/C++ code that is executed in case of sucessful
+(semantic action): a block of C/C++ code that is executed in case of successful
match. Semantic action can be either an arbitrary block of code enclosed in
curly braces \fB{\fP and \fB}\fP, or a block of code without curly braces preceded
with \fB:=\fP and ended with a newline that is not followed by a whitespace.
(requires \fB\-c \-\-conditions\fP option).
.TP
.B \fB/*!stags:re2c ... */\fP, \fB/*!mtags:re2c ... */\fP
-These directives allow to specify a template piece of code that is expanded
+These directives allow one to specify a template piece of code that is expanded
for each s\-tag/m\-tag variable generated by re2c. This block has two optional
configurations: \fBformat = "@@";\fP (specifies the template where \fB@@\fP is
substituted with the name of each tag variable), and \fBseparator = "";\fP
tag variables).
.TP
.B \fB/*!include:re2c FILE */\fP
-This directive allows to include \fBFILE\fP (in the same sense as \fB#include\fP
+This directive allows one to include \fBFILE\fP (in the same sense as \fB#include\fP
directive in C/C++).
.TP
.B \fB/*!header:re2c:on*/\fP
than nested \fBif\fP statements and bit masks.
.TP
.B \fBre2c:cond:divider = \(aq/* *********************************** */\(aq;\fP
-Allows to customize the divider for condition blocks. One can use \fB@@\fP to insert condition name.
+Allows one to customize the divider for condition blocks. One can use \fB@@\fP to insert condition name.
.TP
.B \fBre2c:cond:divider@cond = @@;\fP
Specifies the placeholder that will be replaced with condition name in \fBre2c:cond:divider\fP\&.
Specifies the placeholder that will be replaced with condition label in \fBre2c:cond:goto\fP\&.
.TP
.B \fBre2c:cond:goto = \(aqgoto @@;\(aq;\fP
-Allows to customize \fBgoto\fP statements used with \fB:=>\fP style rules.
+Allows one to customize \fBgoto\fP statements used with \fB:=>\fP style rules.
One can use \fB@@\fP to insert the condition name.
.TP
.B \fBre2c:condprefix = yyc;\fP
use. Requires a numeric value greater than or equal to zero.
.TP
.B \fBre2c:labelprefix = \(aqyy\(aq;\fP
-Allows to change the prefix of numbered
+Allows one to change the prefix of numbered
labels. The default is \fByy\fP\&. Can be set any string that is valid in
a label name.
.TP
\fB/*!getstate:re2c*/\fP comment.
.TP
.B \fBre2c:tags:expression = \(aq@@\(aq;\fP
-Allows to customize the way re2c addresses tag variables:
+Allows one to customize the way re2c addresses tag variables:
by default it emits expressions of the form \fByyt<N>\fP,
but this might be inconvenient if tag variables are defined as fields in a struct,
or for any other reason require special accessors.
For example, setting \fBre2c:tags:expression = p\->@@\fP will result in \fBp\->yyt<N>\fP\&.
.TP
.B \fBre2c:tags:prefix = \(aqyyt\(aq;\fP
-Allows to override prefix of tag variables.
+Allows one to override prefix of tag variables.
.TP
.B \fBre2c:variable:yyaccept = yyaccept;\fP
Overrides the name of the \fByyaccept\fP variable.
.UNINDENT
.SS Using generic API
.sp
-Generic API can be used with any of the above methods. It also allows to use a
+Generic API can be used with any of the above methods. It also allows one to use a
user\-defined method by placing EOF checks in one of the basic primitives.
Usually this is either \fBYYSKIP\fP (the check is performed when advancing to the
next input character), or \fBYYPEEK\fP (the check is performed when reading the
some corner cases and come up with a method that only partially works. Also it
should be noted that not everything can be expressed via generic API: for
example, it is impossible to reimplement the way EOF rule works (in particular,
-it is impossible to re\-match the character after successfull \fBYYFILL\fP).
+it is impossible to re\-match the character after successful \fBYYFILL\fP).
.sp
Below is an example of using \fBYYSKIP\fP to perform bounds checking without
padding. \fBYYFILL\fP generation is suppressed using \fBre2c:yyfill:enable = 0;\fP
\fBYYFILL\fP is the minimal number of characters that must be supplied. If it
fails to do so, \fBYYFILL\fP must not return to the lexer (for that reason it is
best implemented as a macro that returns from the calling function on failure).
-In case of a successfull \fBYYFILL\fP invocation the limit position must be set
+In case of a successful \fBYYFILL\fP invocation the limit position must be set
either to one after the last input position in buffer, or to the end of
\fBYYMAXFILL\fP padding (in case \fBYYFILL\fP has successfully read at least \fBn\fP
characters, but not enough to fill the entire buffer). The pictures below show
.UNINDENT
.SH INCLUDE FILES
.sp
-Re2c allows to include other files using directive \fB/*!include:re2c FILE */\fP,
+Re2c allows one to include other files using directive \fB/*!include:re2c FILE */\fP,
where \fBFILE\fP is the name of file to be included. Re2c looks for included
files in the directory of the including file and in include locations, which
can be specified with \fB\-I\fP option.
.UNINDENT
.SH HEADER FILES
.sp
-Re2c allows to generate header file from the input \fB\&.re\fP file using option
+Re2c allows one to generate header file from the input \fB\&.re\fP file using option
\fB\-t \-\-type\-header\fP (or the corresponding configurations) and directives
\fB/*!header:re2c:on*/\fP and \fB/*!header:re2c:off*/\fP\&. The first directive
marks the beginning of header file, and the second directive marks the end of
example, if the lexer is invoked by the parser, or if the lexer program
communicates via a socket protocol with some other program that must wait for a
reply from the lexer before it transmits the next message). Storable state
-feature is intended exactly for such cases: it allows to generate lexers that
+feature is intended exactly for such cases: it allows one to generate lexers that
work in a "push" model. When the lexer needs more input, it stores its state and
returns to the caller. Later, when more input becomes available, the caller
resumes the lexer exactly where it stopped. There are a few changes necessary
.SH REUSABLE BLOCKS
.sp
Reuse mode is enabled with the \fB\-r \-\-reusable\fP option. In this mode re2c
-allows to reuse definitions, configurations and rules specified by a
+allows one to reuse definitions, configurations and rules specified by a
\fB/*!rules:re2c*/\fP block in subsequent \fB/*!use:re2c*/\fP blocks. As of
re2c\-1.2 it is possible to mix such blocks with normal \fB/*!re2c*/\fP blocks;
prior to that re2c expects a single rules\-block followed by use\-blocks (normal
.SH START CONDITIONS
.sp
\fIConditions\fP are enabled with \fB\-c\fP \fB\-\-conditions\fP\&.
-This option allows to encode multiple interrelated lexers within the same re2c block.
+This option allows one to encode multiple interrelated lexers within the same re2c block.
.sp
Each lexer corresponds to a single \fIcondition\fP\&.
It starts with a label of the form \fByyc_name\fP,
After matching some rule of this \fIcondition\fP,
lexer may either transfer control flow back to the entry code (after executing the associated action and optionally setting another \fIcondition\fP with \fB=>\fP),
or use \fB:=>\fP shortcut and transition directly to the start label of another \fIcondition\fP (skipping the action and the entry code).
-Configuration \fBre2c:cond:goto\fP allows to change the default behavior.
+Configuration \fBre2c:cond:goto\fP allows one to change the default behavior.
.sp
Syntactically each rule must be preceded with a list of comma\-separated \fIcondition\fP names or a wildcard \fB*\fP
enclosed in angle brackets \fB<\fP and \fB>\fP\&.
.UNINDENT
.sp
Another special form of rules with an empty condition list \fB<>\fP and no regular expression
-allows to specify an "entry condition" that can be used to execute code before entering the lexer.
+allows one to specify an "entry condition" that can be used to execute code before entering the lexer.
It is semantically equivalent to a condition with number zero, name \fB0\fP and an empty regular expression.
.INDENT 0.0
.IP \(bu 2
Generating a set of input data with good coverage may be useful for both
testing and benchmarking.
.IP \(bu 2
-Generating self\-contained executable programs allows to get minimized test
+Generating self\-contained executable programs allows one to get minimized test
cases (the original code may be large or have a lot of dependencies).
.UNINDENT
.sp
.SH AUTHORS
.sp
Re2c was originaly written by Peter Bumbulis in 1993.
-Since then it has been developed and maintained by mutiple volunteers;
+Since then it has been developed and maintained by multiple volunteers;
mots notably, Brain Young, Marcus Boerger, Dan Nuffer and Ulya Trofimovich.
.SH VERSION INFORMATION
.sp
-This manpage describes re2c version 1.2, package date 05 Aug 2019.
+This manpage describes re2c version 1.2.1, package date 13 Aug 2019.
.\" Generated by docutils manpage writer.
.