]> git.saurik.com Git - bison.git/blobdiff - src/flex-scanner.h
examples: improve the output of the "variant" example
[bison.git] / src / flex-scanner.h
index cf2b6b9eb8ec78c1a1ac30f181aa1d6ecb630833..d72986e8126664d0b4efde3fa836294cd4cc8d45 100644 (file)
@@ -1,6 +1,6 @@
 /* Common parts between scan-code.l, scan-gram.l, and scan-skel.l.
 
-   Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 # error "FLEX_PREFIX not defined"
 #endif
 
-/* Whether this version of Flex is (strictly) greater than
-   Major.Minor.Subminor.  */
-#define FLEX_VERSION_GT(Major, Minor, Subminor)                         \
-  (defined YY_FLEX_MAJOR_VERSION                                        \
-   && (Major < YY_FLEX_MAJOR_VERSION                                    \
-       || (Major == YY_FLEX_MAJOR_VERSION                               \
-           && (defined YY_FLEX_MINOR_VERSION                            \
-               && (Minor < YY_FLEX_MINOR_VERSION                        \
-                   || (Minor == YY_FLEX_MINOR_VERSION                   \
-                       && defined YY_FLEX_SUBMINOR_VERSION              \
-                       && Subminor < YY_FLEX_SUBMINOR_VERSION))))))
+/* Flex full version as a number.  */
+#define FLEX_VERSION                    \
+  ((YY_FLEX_MAJOR_VERSION) * 1000000    \
+   + (YY_FLEX_MINOR_VERSION) * 1000     \
+   + (YY_FLEX_SUBMINOR_VERSION))
 
 /* Pacify "gcc -Wmissing-prototypes" when flex 2.5.31 is used.  */
-#if ! FLEX_VERSION_GT (2, 5, 31)
+#if FLEX_VERSION <= 2005031
 int   FLEX_PREFIX (get_lineno) (void);
 FILE *FLEX_PREFIX (get_in) (void);
 FILE *FLEX_PREFIX (get_out) (void);
@@ -65,7 +59,7 @@ int   FLEX_PREFIX (lex_destroy) (void);
    versions according to the Flex manual) leak memory if yylex_destroy is not
    invoked.  However, yylex_destroy is not defined before Flex 2.5.9, so give
    an implementation here that at least appears to work with Flex 2.5.4.  */
-#if ! FLEX_VERSION_GT (2, 5, 9)
+#if FLEX_VERSION <= 2005009
 # define yylex_destroy() yy_delete_buffer (YY_CURRENT_BUFFER)
 #endif
 
@@ -86,10 +80,7 @@ static struct obstack obstack_for_string;
   obstack_grow (&obstack_for_string, yytext, yyleng)
 
 # define STRING_FINISH                                  \
-  do {                                                  \
-    obstack_1grow (&obstack_for_string, '\0');          \
-    last_string = obstack_finish (&obstack_for_string); \
-  } while (0)
+  (last_string = obstack_finish0 (&obstack_for_string))
 
 # define STRING_FREE                                    \
   obstack_free (&obstack_for_string, last_string)