diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2020-08-08 08:45:05 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2020-08-08 08:45:05 -0700 |
commit | 3f915ef138f8d408a37c368810fc77883e666496 (patch) | |
tree | 1afe92be9a7e97ed181a74f592c0952a2b45a274 | |
parent | 2aa8d2dbae0a7badcf0edbab7cb733f57060ed12 (diff) | |
download | txr-3f915ef138f8d408a37c368810fc77883e666496.tar.gz txr-3f915ef138f8d408a37c368810fc77883e666496.tar.bz2 txr-3f915ef138f8d408a37c368810fc77883e666496.zip |
scanner: use %option never-interactive
It looks like Flex has a "never-interactive" option which does
what the batch option should be doing: it removes the use of
isatty.
Historically, it was an %option only with no corresponding
command-line option; newer Flex has a --never-interactive
command line option also.
The batch option actually makes very little difference in the
output. If never-interactive is used, then the batch option
makes no difference.
* parser.l (%option): Add never-interactive option, remove
batch.
(VER, FLEX_VER, YY_NO_UNISTD_H, isatty, no_isatty): Remove all
these macros: under the never-interactive option, there are
no isatty calls and no inclusion of <unistd.h>.
-rw-r--r-- | parser.l | 26 |
1 files changed, 2 insertions, 24 deletions
@@ -46,29 +46,6 @@ #include "parser.h" #include "txr.h" -#define VER(MAJ, MIN, SUB) ((MAJ) * 100000 + (MIN) * 1000 + SUB) - -#define FLEX_VER VER(YY_FLEX_MAJOR_VERSION, \ - YY_FLEX_MINOR_VERSION, \ - YY_FLEX_SUBMINOR_VERSION) - -#define YY_NO_UNISTD_H - -/* Defeat flex's calls to isatty, which happens even in batch mode */ - -#undef isatty - -/* - * Until 2.5.36, the Flex skeleton contained "extern int isatty(int)", - * requiring special handling. - */ -#if FLEX_VER <= VER(2, 5, 36) -#define isatty(x) no_isatty -int no_isatty = 0; -#else -#define isatty(x) 0 -#endif - #define YY_INPUT(buf, result, max_size) \ do { \ val self = lit("parser"); \ @@ -251,7 +228,8 @@ static wchar_t *unicode_ident(scanner_t *scn, const char *lex) %} -%option stack noinput reentrant bison-bridge extra-type="parser_t *" batch +%option stack noinput reentrant bison-bridge extra-type="parser_t *" +%option never-interactive TOK [a-zA-Z0-9_]+ SGN [+\-] |