From: Joel E. Denny <jdenny@ces.clemson.edu>
Date: Thu, 10 Aug 2006 04:53:04 +0000 (+0000)
Subject: Clean up scanners a bit.
X-Git-Tag: v2.3b~317
X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/f9bfc42aa704603fc3aeb18be00c78871569a0b4

Clean up scanners a bit.
* src/flex-scanner.h (FLEX_NO_OBSTACK): New macro that blocks obstack
definitions so gcc won't warn when obstack_for_string is unused.
* src/scan-code.l: config.h and system.h are already #include'd by
scan-code-c.c, so get rid of them here.
* src/scan-gram.l: Likewise.
* src/scan-skel.l: Likewise, and use flex-scanner.h without obstack
definitions rather than duplicating the rest of it.
* src/scan-gram-c.c, scan-skel-c.c: #include "system.h".
---

diff --git a/ChangeLog b/ChangeLog
index 00db969a..178e103e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2006-08-10  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Clean up scanners a bit.
+	* src/flex-scanner.h (FLEX_NO_OBSTACK): New macro that blocks obstack
+	definitions so gcc won't warn when obstack_for_string is unused.
+	* src/scan-code.l: config.h and system.h are already #include'd by
+	scan-code-c.c, so get rid of them here.
+	* src/scan-gram.l: Likewise.
+	* src/scan-skel.l: Likewise, and use flex-scanner.h without obstack
+	definitions rather than duplicating the rest of it.
+	* src/scan-gram-c.c, scan-skel-c.c: #include "system.h".
+
 2006-08-09  Joel E. Denny  <jdenny@ces.clemson.edu>
 
 	Suppress signed/unsigned comparison warnings for yycheck.
diff --git a/src/flex-scanner.h b/src/flex-scanner.h
index bf190afd..3e16234c 100644
--- a/src/flex-scanner.h
+++ b/src/flex-scanner.h
@@ -1,4 +1,4 @@
-/* Common parts between scan-code.l and scan-gram.l.
+/* Common parts between scan-code.l, scan-gram.l, and scan-skel.l.
 
    Copyright (C) 2006 Free Software Foundation, Inc.
 
@@ -59,6 +59,8 @@ int   FLEX_PREFIX (lex_destroy) (void);
    STRING_FINISH also stores this string in LAST_STRING, which can be
    used, and which is used by STRING_FREE to free the last string.  */
 
+#ifndef FLEX_NO_OBSTACK
+
 static struct obstack obstack_for_string;
 
 #define STRING_GROW   \
@@ -72,3 +74,5 @@ static struct obstack obstack_for_string;
 
 #define STRING_FREE \
   obstack_free (&obstack_for_string, last_string)
+
+#endif
diff --git a/src/scan-code.l b/src/scan-code.l
index 4fc0664e..f4aa02cb 100644
--- a/src/scan-code.l
+++ b/src/scan-code.l
@@ -24,17 +24,15 @@
 %option prefix="code_" outfile="lex.yy.c"
 
 %{
-#include <config.h>
-#include "system.h"
-
 /* Work around a bug in flex 2.5.31.  See Debian bug 333231
    <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>.  */
 #undef code_wrap
 #define code_wrap() 1
 
 #define FLEX_PREFIX(Id) code_ ## Id
-#include "complain.h"
 #include "flex-scanner.h"
+
+#include "complain.h"
 #include "reader.h"
 #include "getargs.h"
 #include <assert.h>
diff --git a/src/scan-gram-c.c b/src/scan-gram-c.c
index 8f12e2c5..6bacac62 100644
--- a/src/scan-gram-c.c
+++ b/src/scan-gram-c.c
@@ -1,2 +1,3 @@
 #include <config.h>
+#include "system.h"
 #include "scan-gram.c"
diff --git a/src/scan-gram.l b/src/scan-gram.l
index eb5ee55a..8193ddf2 100644
--- a/src/scan-gram.l
+++ b/src/scan-gram.l
@@ -24,9 +24,6 @@
 %option prefix="gram_" outfile="lex.yy.c"
 
 %{
-#include <config.h>
-#include "system.h"
-
 /* Work around a bug in flex 2.5.31.  See Debian bug 333231
    <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>.  */
 #undef gram_wrap
diff --git a/src/scan-skel-c.c b/src/scan-skel-c.c
index 1a047cf2..fb1aea61 100644
--- a/src/scan-skel-c.c
+++ b/src/scan-skel-c.c
@@ -1,2 +1,3 @@
 #include <config.h>
+#include "system.h"
 #include "scan-skel.c"
diff --git a/src/scan-skel.l b/src/scan-skel.l
index d16c6ba9..e787d288 100644
--- a/src/scan-skel.l
+++ b/src/scan-skel.l
@@ -29,7 +29,9 @@
 #undef skel_wrap
 #define skel_wrap() 1
 
-#include "system.h"
+#define FLEX_NO_OBSTACK
+#define FLEX_PREFIX(Id) skel_ ## Id
+#include "flex-scanner.h"
 
 #include <dirname.h>
 #include <error.h>
@@ -40,19 +42,7 @@
 #include "files.h"
 #include "scan-skel.h"
 
-/* Pacify "gcc -Wmissing-prototypes" when flex 2.5.31 is used.  */
 int skel_lex (void);
-int skel_get_lineno (void);
-FILE *skel_get_in (void);
-FILE *skel_get_out (void);
-int skel_get_leng (void);
-char *skel_get_text (void);
-void skel_set_lineno (int);
-void skel_set_in (FILE *);
-void skel_set_out (FILE *);
-int skel_get_debug (void);
-void skel_set_debug (int);
-int skel_lex_destroy (void);
 
 #define QPUTS(String) \
    fputs (quotearg_style (c_quoting_style, String), yyout)