OSDN Git Service

2009-11-03 Steven G. Kargl <kargl@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / gengtype-lex.l
index 9ebe0cc..da118d0 100644 (file)
@@ -1,6 +1,7 @@
 /* -*- indented-text -*- */
 /* Process source files and output type information.
-   Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009
+   Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -27,6 +28,7 @@ along with GCC; see the file COPYING3.  If not see
 
 #include "gengtype.h"
 
+#define YY_NO_INPUT
 #define YY_DECL int yylex (const char **yylval)
 #define yyterminate() return EOF_TOKEN
 
@@ -104,6 +106,7 @@ EOID        [^[:alnum:]_]
 "/*"                           { BEGIN(in_struct_comment); }
 
 {WS}                           { update_lineno (yytext, yyleng); }
+\\\n                           { lexer_line.line++; }
 
 "const"/{EOID}                 /* don't care */
 "GTY"/{EOID}                   { return GTY_TOKEN; }
@@ -115,7 +118,7 @@ EOID        [^[:alnum:]_]
 "nested_ptr"/{EOID}            { return NESTED_PTR; }
 [0-9]+                         { return NUM; }
 "param"[0-9]*"_is"/{EOID}              {
-  *yylval = xmemdup (yytext, yyleng, yyleng+1);
+  *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
   return PARAM_IS;
 }
 
@@ -126,28 +129,28 @@ EOID      [^[:alnum:]_]
   for (len = yyleng; ISSPACE (yytext[len-1]); len--)
     ;
 
-  *yylval = xmemdup (yytext, len, len+1);
+  *yylval = XDUPVAR (const char, yytext, len, len+1);
   update_lineno (yytext, yyleng);
   return SCALAR;
 }
 
 
 {ID}/{EOID}                    {
-  *yylval = xmemdup (yytext, yyleng, yyleng+1);
+  *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
   return ID;
 }
 
 \"([^"\\]|\\.)*\"              {
-  *yylval = xmemdup (yytext+1, yyleng-2, yyleng-1);
+  *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
   return STRING;
 }
   /* This "terminal" avoids having to parse integer constant expressions.  */
 "["[^\[\]]*"]"                 {
-  *yylval = xmemdup (yytext+1, yyleng-2, yyleng-1);
+  *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
   return ARRAY;
 }
 "'"("\\".|[^\\])"'"            {
-  *yylval = xmemdup (yytext+1, yyleng-2, yyleng);
+  *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng);
   return CHAR;
 }
 
@@ -186,9 +189,6 @@ EOID        [^[:alnum:]_]
 }
 
 ^{HWS}"#"{HWS}"define"{WS}"GTY(" /* do nothing */
-{WS}"GTY"{WS}?"("      {
-  error_at_line (&lexer_line, "stray GTY marker");
-}
 
 %%