]> git.saurik.com Git - bison.git/blobdiff - src/flex-scanner.h
c++: fix several issues with locations
[bison.git] / src / flex-scanner.h
index 028082ec22abb2bd87fee4e88eb5b8d6b7ea6d1c..d72986e8126664d0b4efde3fa836294cd4cc8d45 100644 (file)
@@ -1,6 +1,6 @@
 /* Common parts between scan-code.l, scan-gram.l, and scan-skel.l.
 
 /* 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.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 # error "FLEX_PREFIX not defined"
 #endif
 
 # error "FLEX_PREFIX not defined"
 #endif
 
-/* Whether this version of Flex is (strictly) greater than
-   Major.Minor.Subminor.  */
-#ifdef YY_FLEX_SUBMINOR_VERSION
-# define FLEX_VERSION               \
-  (YY_FLEX_MAJOR_VERSION) * 1000000 \
-+ (YY_FLEX_MINOR_VERSION) * 1000    \
-+ (YY_FLEX_SUBMINOR_VERSION)
-#else
-# define FLEX_VERSION               \
-  (YY_FLEX_MAJOR_VERSION) * 1000000 \
-+ (YY_FLEX_MINOR_VERSION) * 1000
-#endif
+/* 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.  */
 /* Pacify "gcc -Wmissing-prototypes" when flex 2.5.31 is used.  */
-# if FLEX_VERSION <= 2005031
+#if FLEX_VERSION <= 2005031
 int   FLEX_PREFIX (get_lineno) (void);
 FILE *FLEX_PREFIX (get_in) (void);
 FILE *FLEX_PREFIX (get_out) (void);
 int   FLEX_PREFIX (get_lineno) (void);
 FILE *FLEX_PREFIX (get_in) (void);
 FILE *FLEX_PREFIX (get_out) (void);
@@ -82,16 +76,13 @@ int   FLEX_PREFIX (lex_destroy) (void);
 
 static struct obstack obstack_for_string;
 
 
 static struct obstack obstack_for_string;
 
-# define STRING_GROW   \
+# define STRING_GROW                                    \
   obstack_grow (&obstack_for_string, yytext, yyleng)
 
   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)
+# define STRING_FINISH                                  \
+  (last_string = obstack_finish0 (&obstack_for_string))
 
 
-# define STRING_FREE \
+# define STRING_FREE                                    \
   obstack_free (&obstack_for_string, last_string)
 
 #endif
   obstack_free (&obstack_for_string, last_string)
 
 #endif