const char *help =
"\n"
" -? -h --help\n"
-" Show this help message.\n"
+" Show help message.\n"
"\n"
" -b --bit-vectors\n"
" Optimize conditional jumps using bit masks. Implies -s.\n"
"\n"
" -c --conditions\n"
-" Enable support of Flex-like \"conditions\" which allow to specify\n"
-" multiple interrelated lexer blocks.\n"
+" Enable support of Flex-like \"conditions\": multiple interrelated\n"
+" lexers within one block.\n"
"\n"
" -d --debug-output\n"
-" Emit YYDEBUG calls in the generated code. YYDEBUG should be\n"
-" defined like a void function with two parameters: void YYDEBUG\n"
-" (int state, YYCTYPE symbol), The first parameter is lexer state\n"
-" or -1, the second parameter is current input symbol.\n"
+" Emit YYDEBUG in the generated code. YYDEBUG should be defined\n"
+" by the user in the form of a void function with two parameters:\n"
+" state (lexer state or -1) and symbol (current input symbol of\n"
+" type YYCTYPE).\n"
"\n"
" -D --emit-dot\n"
-" Instead of generating code, generate DFA graph in DOT format\n"
-" (used by Graphviz). The output can be converted to PNG format\n"
-" with a command similar to dot -Tpng dfa.dot -odfa.png. Note\n"
-" that large graphs may crash Graphviz.\n"
+" Instead of normal output generate lexer graph in DOT format.\n"
+" The output can be converted to PNG with the help of Graphviz\n"
+" (something like dot -Tpng -odfa.png dfa.dot). Note that large\n"
+" graphs may crash Graphviz.\n"
"\n"
" -e --ecb\n"
-" Generate a parser that reads input in EBCDIC encoding. In this\n"
-" mode re2c assumes that character range is 0 -- 0xFF an character\n"
-" size is 1 byte.\n"
+" Generate a lexer that reads input in EBCDIC encoding. re2c\n"
+" assumes that character range is 0 -- 0xFF an character size is 1\n"
+" byte.\n"
"\n"
" -f --storable-state\n"
-" Generate a scanner which can store its inner state. This is\n"
-" useful in push-model lexers which are stopped when there is not\n"
-" enough input data and resumed by an outer program when more data\n"
+" Generate a lexer which can store its inner state. This is use‐\n"
+" ful in push-model lexers which are stopped by an outer program\n"
+" when there is not enough input, and then resumed when more input\n"
" becomes available. In this mode users should additionally\n"
" define YYGETSTATE () and YYSETSTATE (state) macros and variables\n"
" yych, yyaccept and the state as part of the lexer state.\n"
" -F --flex-syntax\n"
" Partial support for Flex syntax: in this mode named definitions\n"
" don't need the equal sign and the terminating semicolon, and\n"
-" they must be surrounded by curly braces when used. Names with‐\n"
-" out curly braces are treated as double quoted strings.\n"
+" when used they must be surrounded by curly braces. Names with‐\n"
+" out curly braces are treated as double-quoted strings.\n"
"\n"
" -g --computed-gotos\n"
" Optimize conditional jumps using non-standard \"computed goto\"\n"
"\n"
" -s --nested-ifs\n"
" Use nested if statements instead of switch statements in condi‐\n"
-" tional jumps. Non-optimizing C/C++ compilers generally generate\n"
-" better code with this option.\n"
+" tional jumps. This usually results in more efficient code with\n"
+" non-optimizing C/C++ compilers.\n"
"\n"
" -t HEADER --type-header=HEADER\n"
" Generate a HEADER file that contains enum with condition names.\n"
" Enable submatch extraction with POSIX-style capturing groups.\n"
"\n"
" -u --unicode\n"
-" Generate a parser that reads input in UTF-32 encoding. re2c\n"
+" Generate a lexer that reads input in UTF-32 encoding. re2c\n"
" assumes that character range is 0 -- 0x10FFFF and character size\n"
" is 4 bytes. Implies -s.\n"
"\n"
" Show version information in MMmmpp format (major, minor, patch).\n"
"\n"
" -w --wide-chars\n"
-" Generate a parser that reads input in UCS-2 encoding. re2c\n"
+" Generate a lexer that reads input in UCS-2 encoding. re2c\n"
" assumes that character range is 0 -- 0xFFFF and character size\n"
" is 2 bytes. Implies -s.\n"
"\n"
" -x --utf-16\n"
-" Generate a parser that reads input in UTF-16 encoding. re2c\n"
+" Generate a lexer that reads input in UTF-16 encoding. re2c\n"
" assumes that character range is 0 -- 0x10FFFF and character size\n"
" is 2 bytes. Implies -s.\n"
"\n"
" -8 --utf-8\n"
-" Generate a parser that reads input in UTF-8 encoding. re2c\n"
+" Generate a lexer that reads input in UTF-8 encoding. re2c\n"
" assumes that character range is 0 -- 0x10FFFF and character size\n"
" is 1 byte.\n"
"\n"
" --no-version\n"
" Suppress version output in the generated file.\n"
"\n"
-" --no-generation-date\n"
-" Suppress version output in the generated file.\n"
-"\n"
" --encoding-policy POLICY\n"
" Define the way re2c treats Unicode surrogates. POLICY can be\n"
" one of the following: fail (abort with an error when a surrogate\n"
" been turned on so far or will be turned on later.\n"
"\n"
" -W<warning>\n"
-" Turn on a warning.\n"
+" Turn on warning.\n"
"\n"
" -Wno-<warning>\n"
-" Turn off a warning.\n"
+" Turn off warning.\n"
"\n"
" -Werror-<warning>\n"
-" Turn on a warning and treat it as an error (this implies\n"
-" -W<warning>).\n"
+" Turn on warning and treat it as an error (this implies -W<warn‐\n"
+" ing>).\n"
"\n"
" -Wno-error-<warning>\n"
" Don't treat this particular warning as an error. This doesn't\n"
"\n"
" -Wcondition-order\n"
" Warn if the generated program makes implicit assumptions about\n"
-" condition numbering. You should use either the -t, --type-header\n"
+" condition numbering. One should use either the -t, --type-header\n"
" option or the /*!types:re2c*/ directive to generate a mapping of\n"
" condition names to numbers and then use the autogenerated condi‐\n"
" tion names.\n"
"\n"
" -Wempty-character-class\n"
" Warn if a regular expression contains an empty character class.\n"
-" Rationally, trying to match an empty character class makes no\n"
-" sense: it should always fail. However, for backwards compatibil‐\n"
-" ity reasons, re2c allows empty character classes and treats them\n"
-" as empty strings. Use the --empty-class option to change the\n"
+" Trying to match an empty character class makes no sense: it\n"
+" should always fail. However, for backwards compatibility rea‐\n"
+" sons re2c allows empty character classes and treats them as\n"
+" empty strings. Use the --empty-class option to change the\n"
" default behavior.\n"
"\n"
" -Wmatch-empty-string\n"
-" Warn if a regular expression in a rule is nullable (matches an\n"
-" empty string). If the DFA runs in a loop and an empty match is\n"
-" unintentional (the input position in not advanced manually), the\n"
-" lexer may get stuck in an infinite loop.\n"
+" Warn if a rule is nullable (matches an empty string). If the\n"
+" lexer runs in a loop and the empty match is unintentional, the\n"
+" lexer may unexpectedly hang in an infinite loop.\n"
"\n"
" -Wswapped-range\n"
-" Warn if the lower bound of a range is greater than its upper\n"
-" bound. The default behavior is to silently swap the range\n"
+" Warn if the lower bound of a range is greater than its upper\n"
+" bound. The default behavior is to silently swap the range\n"
" bounds.\n"
"\n"
" -Wundefined-control-flow\n"
-" Warn if some input strings cause undefined control flow in the\n"
-" lexer (the faulty patterns are reported). This is the most dan‐\n"
+" Warn if some input strings cause undefined control flow in the\n"
+" lexer (the faulty patterns are reported). This is the most dan‐\n"
" gerous and most common mistake. It can be easily fixed by adding\n"
-" the default rule (*) (this rule has the lowest priority, matches\n"
-" any code unit, and consumes exactly one code unit).\n"
+" the default rule * which has the lowest priority, matches any\n"
+" code unit, and consumes exactly one code unit.\n"
"\n"
" -Wunreachable-rules\n"
" Warn about rules that are shadowed by other rules and will never\n"
" match.\n"
"\n"
" -Wuseless-escape\n"
-" Warn if a symbol is escaped when it shouldn't be. By default,\n"
-" re2c silently ignores such escapes, but this may as well indi‐\n"
-" cate a typo or error in the escape sequence.\n"
+" Warn if a symbol is escaped when it shouldn't be. By default,\n"
+" re2c silently ignores such escapes, but this may as well indi‐\n"
+" cate a typo or an error in the escape sequence.\n"
"\n"
" -Wnondeterministic-tags\n"
-" Warn if tag has n-th degree of nondeterminism, where n is\n"
+" Warn if a tag has n-th degree of nondeterminism, where n is\n"
" greater than 1.\n"
"\n"
;