1 /* Scan Bison Skeletons.                                       -*- C -*-
 
   3    Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
 
   5    This file is part of Bison, the GNU Compiler Compiler.
 
   7    Bison is free software; you can redistribute it and/or modify it
 
   8    under the terms of the GNU General Public License as published by
 
   9    the Free Software Foundation; either version 2, or (at your option)
 
  12    Bison is distributed in the hope that it will be useful, but
 
  13    WITHOUT ANY WARRANTY; without even the implied warranty of
 
  14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
  15    General Public License for more details.
 
  17    You should have received a copy of the GNU General Public License
 
  18    along with Bison; see the file COPYING.  If not, write to the Free
 
  19    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 
  22 %option nodefault noyywrap nounput never-interactive debug
 
  23 %option prefix="skel_" outfile="lex.yy.c"
 
  36 #define QPUTS(String) \
 
  37    fputs (quotearg_style (c_quoting_style, (String)), yyout)
 
  43   int lineno IF_LINT (= 0);
 
  48   char const *filename = yytext + sizeof "@output " - 1;
 
  49   yytext[yyleng - 1] = '\0';
 
  53       if (strcmp (filename, "@output_header_name@") == 0)
 
  54         filename = spec_defines_file;
 
  55       else if (strcmp (filename, "@output_parser_name@") == 0)
 
  56         filename = parser_file_name;
 
  62   outname = xstrdup (filename);
 
  64   yyout = xfopen (outname, "w");
 
  68 "@@"       fputc ('@', yyout);
 
  69 "@{"       fputc ('[', yyout);
 
  70 "@}"       fputc (']', yyout);
 
  72 "@oline@"  fprintf (yyout, "%d", lineno + 1);
 
  73 "@ofile@"  QPUTS (outname);
 
  74 "@output_parser_name@"  QPUTS (parser_file_name);
 
  75 "@output_header_name@"  QPUTS (spec_defines_file);
 
  81 <<EOF>>    xfclose (yyout); free (outname); return EOF;
 
  84 /*------------------------.
 
  85 | Scan a Bison skeleton.  |
 
  86 `------------------------*/
 
  88 void scan_skel (FILE *);
 
  94   skel__flex_debug = trace_flag & trace_skeleton;
 
  96   /* Reclaim Flex's buffers.  */
 
  97   yy_delete_buffer (YY_CURRENT_BUFFER);