Tom Lane wrote:
Andrew Dunstan <[EMAIL PROTECTED]> writes:
Actually, we couldn't.The definition section from the .l file gets included after these functions. So we'd need to include something in gram.y before including scan.c.

Actually, since we don't use any of those functions, the following
advice from the 2.5.33 flex manual seems useful:

   A number of options are available for lint purists who want to
suppress the appearance of unneeded routines in the generated scanner.
Each of the following, if unset (e.g., `%option nounput'), results in
the corresponding routine not appearing in the generated scanner:

         input, unput
         yy_push_state, yy_pop_state, yy_top_state
         yy_scan_buffer, yy_scan_bytes, yy_scan_string
yyget_extra, yyset_extra, yyget_leng, yyget_text,
         yyget_lineno, yyset_lineno, yyget_in, yyset_in,
         yyget_out, yyset_out, yyget_lval, yyset_lval,
         yyget_lloc, yyset_lloc, yyget_debug, yyset_debug

   (though `yy_push_state()' and friends won't appear anyway unless you
use `%option stack)'.

However, I'm not sure whether 2.5.4 will choke on unrecognized %option
commands --- if it has to be conditional on version it'll be a PITA.


%option noyyget_in

causes flex 2.5.4a to barf:

/usr/bin/flex -CF -o'scan.c' scan.l
"scan.l", line 106: unrecognized %option: yyget
make[3]: *** [scan.c] Error 1


---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at


Reply via email to