summaryrefslogtreecommitdiffstats
path: root/contrib/ipfilter/tools/lex_var.h
diff options
context:
space:
mode:
authordarrenr <darrenr@FreeBSD.org>2005-04-25 17:31:50 +0000
committerdarrenr <darrenr@FreeBSD.org>2005-04-25 17:31:50 +0000
commitd438802dcb3e270d6fcc65f075c808c64853a7c2 (patch)
treee2e1c7115044e6dfc86ff65598566fa32e5f7421 /contrib/ipfilter/tools/lex_var.h
parent590450fec65a8e72a8965117398bc8f14938b4a8 (diff)
downloadFreeBSD-src-d438802dcb3e270d6fcc65f075c808c64853a7c2.zip
FreeBSD-src-d438802dcb3e270d6fcc65f075c808c64853a7c2.tar.gz
import ipfilter 4.1.8 into the vendor branch
Diffstat (limited to 'contrib/ipfilter/tools/lex_var.h')
-rw-r--r--contrib/ipfilter/tools/lex_var.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/contrib/ipfilter/tools/lex_var.h b/contrib/ipfilter/tools/lex_var.h
new file mode 100644
index 0000000..33fba25
--- /dev/null
+++ b/contrib/ipfilter/tools/lex_var.h
@@ -0,0 +1,55 @@
+/* $NetBSD$ */
+
+
+extern long string_start;
+extern long string_end;
+extern char *string_val;
+extern long pos;
+
+#define YY_INPUT(buf, result, max_size) \
+ if (pos >= string_start && pos <= string_end) { \
+ buf[0] = string_val[pos - string_start]; \
+ pos++; \
+ result = 1; \
+ } else if ( yy_current_buffer->yy_is_interactive ) \
+ { \
+ int c = '*', n; \
+ for ( n = 0; n < 1 && \
+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+ buf[n] = (char) c; \
+ if ( c == '\n' ) \
+ buf[n++] = (char) c; \
+ if ( c == EOF && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
+ result = n; \
+ pos++; \
+ } \
+ else if ( ((result = fread( buf, 1, 1, yyin )) == 0) \
+ && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" );
+
+#ifdef input
+# undef input
+# define input() (((pos >= string_start) && (pos < string_end)) ? \
+ yysptr = yysbuf, string_val[pos++ - string_start] : \
+ ((yytchar = yysptr > yysbuf ? U(*--yysptr) : \
+ getc(yyin)) == 10 ? (pos++, yylineno++, yytchar) : \
+ yytchar) == EOF ? (pos++, 0) : (pos++, yytchar))
+#endif
+
+#ifdef lex_input
+# undef lex_input
+# define lex_input() (((pos >= string_start) && (pos < string_end)) ? \
+ yysptr = yysbuf, string_val[pos++ - string_start] : \
+ ((yytchar = yysptr > yysbuf ? U(*--yysptr) : \
+ getc(yyin)) == 10 ? (pos++, yylineno++, yytchar) : \
+ yytchar) == EOF ? (pos++, 0) : (pos++, yytchar))
+#endif
+
+#ifdef unput
+# undef unput
+# define unput(c) { if (pos > 0) pos--; \
+ yytchar = (c); if (yytchar == '\n') yylineno--; \
+ *yysptr++ = yytchar; }
+#endif
+
OpenPOWER on IntegriCloud