* lib/quotearg.h: Protect against multiple inclusions.

* src/location.h (location_t): Add a `file' member.
(LOCATION_RESET, LOCATION_PRINT): Adjust.
* src/complain.c (warn_at, complain_at, fatal_at): Drop
`error_one_per_line' support.
This commit is contained in:
Akim Demaille
2002-07-09 16:24:57 +00:00
parent a5d5099417
commit 1a715ef2fc
7 changed files with 194 additions and 192 deletions

View File

@@ -1,3 +1,11 @@
2002-07-09 Akim Demaille <akim@epita.fr>
* lib/quotearg.h: Protect against multiple inclusions.
* src/location.h (location_t): Add a `file' member.
(LOCATION_RESET, LOCATION_PRINT): Adjust.
* src/complain.c (warn_at, complain_at, fatal_at): Drop
`error_one_per_line' support.
2002-07-09 Akim Demaille <akim@epita.fr> 2002-07-09 Akim Demaille <akim@epita.fr>
* src/complain.h, src/complain.c (warn, complain): Remove, unused. * src/complain.h, src/complain.c (warn, complain): Remove, unused.

View File

@@ -17,6 +17,9 @@
/* Written by Paul Eggert <eggert@twinsun.com> */ /* Written by Paul Eggert <eggert@twinsun.com> */
#ifndef QUOTEARG_H_
# define QUOTEARG_H_ 1
/* Basic quoting styles. */ /* Basic quoting styles. */
enum quoting_style enum quoting_style
{ {
@@ -30,9 +33,9 @@ enum quoting_style
}; };
/* For now, --quoting-style=literal is the default, but this may change. */ /* For now, --quoting-style=literal is the default, but this may change. */
#ifndef DEFAULT_QUOTING_STYLE # ifndef DEFAULT_QUOTING_STYLE
# define DEFAULT_QUOTING_STYLE literal_quoting_style # define DEFAULT_QUOTING_STYLE literal_quoting_style
#endif # endif
/* Names of quoting styles and their corresponding values. */ /* Names of quoting styles and their corresponding values. */
extern char const *const quoting_style_args[]; extern char const *const quoting_style_args[];
@@ -40,13 +43,13 @@ extern enum quoting_style const quoting_style_vals[];
struct quoting_options; struct quoting_options;
#ifndef PARAMS # ifndef PARAMS
# if defined PROTOTYPES || defined __STDC__ # if defined PROTOTYPES || defined __STDC__
# define PARAMS(Args) Args # define PARAMS(Args) Args
# else # else
# define PARAMS(Args) () # define PARAMS(Args) ()
# endif
# endif # endif
#endif
/* The functions listed below set and use a hidden variable /* The functions listed below set and use a hidden variable
that contains the default quoting style options. */ that contains the default quoting style options. */
@@ -107,3 +110,5 @@ char *quotearg_char PARAMS ((char const *arg, char ch));
/* Equivalent to quotearg_char (ARG, ':'). */ /* Equivalent to quotearg_char (ARG, ':'). */
char *quotearg_colon PARAMS ((char const *arg)); char *quotearg_colon PARAMS ((char const *arg));
#endif /* !QUOTEARG_H_ */

View File

@@ -41,9 +41,6 @@
void exit (); void exit ();
#endif #endif
/* To get error_one_per_line. */
#include "error.h"
#include "complain.h" #include "complain.h"
#ifndef HAVE_DECL_STRERROR_R #ifndef HAVE_DECL_STRERROR_R
@@ -128,20 +125,6 @@ warn_at (location, message, va_alist)
va_list args; va_list args;
#endif #endif
if (error_one_per_line)
{
static const char *old_infile;
static int old_lineno;
if (old_lineno == location.first_line &&
(infile == old_infile || !strcmp (old_infile, infile)))
/* Simply return and print nothing. */
return;
old_infile = infile;
old_lineno = location.first_line;
}
fflush (stdout); fflush (stdout);
LOCATION_PRINT (stderr, location); LOCATION_PRINT (stderr, location);
fputs (": ", stderr); fputs (": ", stderr);
@@ -178,20 +161,6 @@ complain_at (location, message, va_alist)
va_list args; va_list args;
#endif #endif
if (error_one_per_line)
{
static const char *old_infile;
static int old_lineno;
if (old_lineno == location.first_line &&
(infile == old_infile || !strcmp (old_infile, infile)))
/* Simply return and print nothing. */
return;
old_infile = infile;
old_lineno = location.first_line;
}
fflush (stdout); fflush (stdout);
LOCATION_PRINT (stderr, location); LOCATION_PRINT (stderr, location);
fputs (": ", stderr); fputs (": ", stderr);

View File

@@ -18,7 +18,7 @@
the Free Software Foundation, Inc., 59 Temple Place - Suite 330, the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
#include "system.h"
#include "location.h" #include "location.h"
location_t empty_location = { 0, 0, 0, 0 }; location_t empty_location = { NULL, 0, 0, 0, 0 };

View File

@@ -20,9 +20,11 @@
#ifndef LOCATION_H_ #ifndef LOCATION_H_
# define LOCATION_H_ # define LOCATION_H_
# include "quotearg.h"
typedef struct location_s typedef struct location_s
{ {
const char *file;
int first_line; int first_line;
int first_column; int first_column;
int last_line; int last_line;
@@ -31,36 +33,52 @@ typedef struct location_s
#define YYLTYPE location_t #define YYLTYPE location_t
/* Initialize LOC. */ /* Initialize LOC. */
# define LOCATION_RESET(Loc) \ # define LOCATION_RESET(Loc) \
(Loc).first_column = (Loc).first_line = 1; \ do { \
(Loc).last_column = (Loc).last_line = 1; (Loc).file = NULL; \
(Loc).first_column = (Loc).first_line = 1; \
(Loc).last_column = (Loc).last_line = 1; \
} while (0)
/* Advance of NUM columns. */ /* Advance of NUM columns. */
# define LOCATION_COLUMNS(Loc, Num) \ # define LOCATION_COLUMNS(Loc, Num) \
(Loc).last_column += Num; do { \
(Loc).last_column += Num; \
} while (0)
/* Advance of NUM lines. */ /* Advance of NUM lines. */
# define LOCATION_LINES(Loc, Num) \ # define LOCATION_LINES(Loc, Num) \
(Loc).last_column = 1; \ do { \
(Loc).last_line += Num; (Loc).last_column = 1; \
(Loc).last_line += Num; \
} while (0)
/* Restart: move the first cursor to the last position. */ /* Restart: move the first cursor to the last position. */
# define LOCATION_STEP(Loc) \ # define LOCATION_STEP(Loc) \
(Loc).first_column = (Loc).last_column; \ do { \
(Loc).first_line = (Loc).last_line; (Loc).first_column = (Loc).last_column; \
(Loc).first_line = (Loc).last_line; \
} while (0)
/* Output LOC on the stream OUT. */ /* Output LOC on the stream OUT. */
# define LOCATION_PRINT(Out, Loc) \ # define LOCATION_PRINT(Out, Loc) \
fprintf (stderr, "%s:", infile); \ do { \
if ((Loc).first_line != (Loc).last_line) \ fprintf (stderr, "%s:", quotearg_style (escape_quoting_style, \
fprintf (Out, "%d.%d-%d.%d", \ (Loc).file)); \
(Loc).first_line, (Loc).first_column, \ if ((Loc).first_line != (Loc).last_line) \
(Loc).last_line, (Loc).last_column - 1); \ fprintf (Out, "%d.%d-%d.%d", \
else if ((Loc).first_column < (Loc).last_column - 1) \ (Loc).first_line, (Loc).first_column, \
fprintf (Out, "%d.%d-%d", (Loc).first_line, \ (Loc).last_line, (Loc).last_column - 1); \
(Loc).first_column, (Loc).last_column - 1); \ else if ((Loc).first_column < (Loc).last_column - 1) \
else \ fprintf (Out, "%d.%d-%d", (Loc).first_line, \
fprintf (Out, "%d.%d", (Loc).first_line, (Loc).first_column) (Loc).first_column, (Loc).last_column - 1); \
else \
fprintf (Out, "%d.%d", (Loc).first_line, (Loc).first_column); \
} while (0)
extern location_t empty_location; extern location_t empty_location;

View File

@@ -705,16 +705,16 @@ int yy_flex_debug = 1;
static yyconst short int yy_rule_linenum[101] = static yyconst short int yy_rule_linenum[101] =
{ 0, { 0,
121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
151, 152, 154, 155, 156, 157, 159, 160, 161, 166, 152, 153, 155, 156, 157, 158, 160, 161, 162, 167,
169, 172, 175, 176, 179, 182, 185, 193, 199, 215, 170, 173, 176, 177, 180, 183, 186, 194, 200, 216,
216, 227, 239, 240, 241, 258, 267, 269, 289, 304, 217, 228, 240, 241, 242, 259, 268, 270, 290, 305,
306, 326, 338, 342, 343, 344, 345, 346, 347, 348, 307, 327, 339, 343, 344, 345, 346, 347, 348, 349,
349, 350, 356, 367, 373, 374, 376, 378, 396, 402, 350, 351, 357, 368, 374, 375, 377, 379, 397, 403,
403, 405, 407, 425, 428, 431, 432, 435, 446, 457, 404, 406, 408, 426, 429, 432, 433, 436, 447, 458,
459, 461, 464, 465, 468, 488, 495, 496, 497, 517 460, 462, 465, 466, 469, 489, 496, 497, 498, 518
} ; } ;
@@ -763,13 +763,14 @@ char *yytext;
#define YY_USER_INIT \ #define YY_USER_INIT \
do { \ do { \
LOCATION_RESET (*yylloc); \ LOCATION_RESET (*yylloc); \
yylloc->file = infile; \
/* This is only to avoid GCC warnings. */ \ /* This is only to avoid GCC warnings. */ \
if (yycontrol) {;}; \ if (yycontrol) {;}; \
} while (0) } while (0)
#define YY_USER_ACTION LOCATION_COLUMNS (*yylloc, yyleng) #define YY_USER_ACTION LOCATION_COLUMNS (*yylloc, yyleng);
#define YY_LINES LOCATION_LINES (*yylloc, yyleng); #define YY_LINES LOCATION_LINES (*yylloc, yyleng);
#define YY_STEP LOCATION_STEP (*yylloc) #define YY_STEP LOCATION_STEP (*yylloc);
/* STRING_OBSTACK -- Used to store all the characters that we need to /* STRING_OBSTACK -- Used to store all the characters that we need to
keep (to construct ID, STRINGS etc.). Use the following macros to keep (to construct ID, STRINGS etc.). Use the following macros to
@@ -824,7 +825,7 @@ static void handle_at PARAMS ((braced_code_t code_kind,
#define SC_PROLOGUE 7 #define SC_PROLOGUE 7
#define SC_EPILOGUE 8 #define SC_EPILOGUE 8
#line 828 "lex.yy.c" #line 829 "lex.yy.c"
/* Macros after this point can all be overridden by user definitions in /* Macros after this point can all be overridden by user definitions in
* section 1. * section 1.
@@ -986,7 +987,7 @@ YY_DECL
register char *yy_cp, *yy_bp; register char *yy_cp, *yy_bp;
register int yy_act; register int yy_act;
#line 97 "scan-gram.l" #line 98 "scan-gram.l"
/* At each yylex invocation, mark the current position as the /* At each yylex invocation, mark the current position as the
@@ -1009,7 +1010,7 @@ YY_DECL
/*----------------------------. /*----------------------------.
| Scanning Bison directives. | | Scanning Bison directives. |
`----------------------------*/ `----------------------------*/
#line 1013 "lex.yy.c" #line 1014 "lex.yy.c"
if ( yy_init ) if ( yy_init )
{ {
@@ -1111,197 +1112,197 @@ do_action: /* This label is used only to access EOF actions. */
case 1: case 1:
YY_RULE_SETUP YY_RULE_SETUP
#line 121 "scan-gram.l" #line 122 "scan-gram.l"
return PERCENT_NONASSOC; return PERCENT_NONASSOC;
YY_BREAK YY_BREAK
case 2: case 2:
YY_RULE_SETUP YY_RULE_SETUP
#line 122 "scan-gram.l" #line 123 "scan-gram.l"
return PERCENT_DEBUG; return PERCENT_DEBUG;
YY_BREAK YY_BREAK
case 3: case 3:
YY_RULE_SETUP YY_RULE_SETUP
#line 123 "scan-gram.l" #line 124 "scan-gram.l"
return PERCENT_DEFINE; return PERCENT_DEFINE;
YY_BREAK YY_BREAK
case 4: case 4:
YY_RULE_SETUP YY_RULE_SETUP
#line 124 "scan-gram.l" #line 125 "scan-gram.l"
return PERCENT_DEFINES; return PERCENT_DEFINES;
YY_BREAK YY_BREAK
case 5: case 5:
YY_RULE_SETUP YY_RULE_SETUP
#line 125 "scan-gram.l" #line 126 "scan-gram.l"
return PERCENT_DESTRUCTOR; return PERCENT_DESTRUCTOR;
YY_BREAK YY_BREAK
case 6: case 6:
YY_RULE_SETUP YY_RULE_SETUP
#line 126 "scan-gram.l" #line 127 "scan-gram.l"
return PERCENT_DPREC; return PERCENT_DPREC;
YY_BREAK YY_BREAK
case 7: case 7:
YY_RULE_SETUP YY_RULE_SETUP
#line 127 "scan-gram.l" #line 128 "scan-gram.l"
return PERCENT_ERROR_VERBOSE; return PERCENT_ERROR_VERBOSE;
YY_BREAK YY_BREAK
case 8: case 8:
YY_RULE_SETUP YY_RULE_SETUP
#line 128 "scan-gram.l" #line 129 "scan-gram.l"
return PERCENT_EXPECT; return PERCENT_EXPECT;
YY_BREAK YY_BREAK
case 9: case 9:
YY_RULE_SETUP YY_RULE_SETUP
#line 129 "scan-gram.l" #line 130 "scan-gram.l"
return PERCENT_FILE_PREFIX; return PERCENT_FILE_PREFIX;
YY_BREAK YY_BREAK
case 10: case 10:
YY_RULE_SETUP YY_RULE_SETUP
#line 130 "scan-gram.l" #line 131 "scan-gram.l"
return PERCENT_YACC; return PERCENT_YACC;
YY_BREAK YY_BREAK
case 11: case 11:
YY_RULE_SETUP YY_RULE_SETUP
#line 131 "scan-gram.l" #line 132 "scan-gram.l"
return PERCENT_GLR_PARSER; return PERCENT_GLR_PARSER;
YY_BREAK YY_BREAK
case 12: case 12:
YY_RULE_SETUP YY_RULE_SETUP
#line 132 "scan-gram.l" #line 133 "scan-gram.l"
return PERCENT_LEFT; return PERCENT_LEFT;
YY_BREAK YY_BREAK
case 13: case 13:
YY_RULE_SETUP YY_RULE_SETUP
#line 133 "scan-gram.l" #line 134 "scan-gram.l"
return PERCENT_LOCATIONS; return PERCENT_LOCATIONS;
YY_BREAK YY_BREAK
case 14: case 14:
YY_RULE_SETUP YY_RULE_SETUP
#line 134 "scan-gram.l" #line 135 "scan-gram.l"
return PERCENT_MERGE; return PERCENT_MERGE;
YY_BREAK YY_BREAK
case 15: case 15:
YY_RULE_SETUP YY_RULE_SETUP
#line 135 "scan-gram.l" #line 136 "scan-gram.l"
return PERCENT_NAME_PREFIX; return PERCENT_NAME_PREFIX;
YY_BREAK YY_BREAK
case 16: case 16:
YY_RULE_SETUP YY_RULE_SETUP
#line 136 "scan-gram.l" #line 137 "scan-gram.l"
return PERCENT_NO_LINES; return PERCENT_NO_LINES;
YY_BREAK YY_BREAK
case 17: case 17:
YY_RULE_SETUP YY_RULE_SETUP
#line 137 "scan-gram.l" #line 138 "scan-gram.l"
return PERCENT_NONASSOC; return PERCENT_NONASSOC;
YY_BREAK YY_BREAK
case 18: case 18:
YY_RULE_SETUP YY_RULE_SETUP
#line 138 "scan-gram.l" #line 139 "scan-gram.l"
return PERCENT_NTERM; return PERCENT_NTERM;
YY_BREAK YY_BREAK
case 19: case 19:
YY_RULE_SETUP YY_RULE_SETUP
#line 139 "scan-gram.l" #line 140 "scan-gram.l"
return PERCENT_OUTPUT; return PERCENT_OUTPUT;
YY_BREAK YY_BREAK
case 20: case 20:
YY_RULE_SETUP YY_RULE_SETUP
#line 140 "scan-gram.l" #line 141 "scan-gram.l"
return PERCENT_PREC; return PERCENT_PREC;
YY_BREAK YY_BREAK
case 21: case 21:
YY_RULE_SETUP YY_RULE_SETUP
#line 141 "scan-gram.l" #line 142 "scan-gram.l"
return PERCENT_PRINTER; return PERCENT_PRINTER;
YY_BREAK YY_BREAK
case 22: case 22:
YY_RULE_SETUP YY_RULE_SETUP
#line 142 "scan-gram.l" #line 143 "scan-gram.l"
return PERCENT_PURE_PARSER; return PERCENT_PURE_PARSER;
YY_BREAK YY_BREAK
case 23: case 23:
YY_RULE_SETUP YY_RULE_SETUP
#line 143 "scan-gram.l" #line 144 "scan-gram.l"
return PERCENT_RIGHT; return PERCENT_RIGHT;
YY_BREAK YY_BREAK
case 24: case 24:
YY_RULE_SETUP YY_RULE_SETUP
#line 144 "scan-gram.l" #line 145 "scan-gram.l"
return PERCENT_SKELETON; return PERCENT_SKELETON;
YY_BREAK YY_BREAK
case 25: case 25:
YY_RULE_SETUP YY_RULE_SETUP
#line 145 "scan-gram.l" #line 146 "scan-gram.l"
return PERCENT_START; return PERCENT_START;
YY_BREAK YY_BREAK
case 26: case 26:
YY_RULE_SETUP YY_RULE_SETUP
#line 146 "scan-gram.l" #line 147 "scan-gram.l"
return PERCENT_TOKEN; return PERCENT_TOKEN;
YY_BREAK YY_BREAK
case 27: case 27:
YY_RULE_SETUP YY_RULE_SETUP
#line 147 "scan-gram.l" #line 148 "scan-gram.l"
return PERCENT_TOKEN; return PERCENT_TOKEN;
YY_BREAK YY_BREAK
case 28: case 28:
YY_RULE_SETUP YY_RULE_SETUP
#line 148 "scan-gram.l" #line 149 "scan-gram.l"
return PERCENT_TOKEN_TABLE; return PERCENT_TOKEN_TABLE;
YY_BREAK YY_BREAK
case 29: case 29:
YY_RULE_SETUP YY_RULE_SETUP
#line 149 "scan-gram.l" #line 150 "scan-gram.l"
return PERCENT_TYPE; return PERCENT_TYPE;
YY_BREAK YY_BREAK
case 30: case 30:
YY_RULE_SETUP YY_RULE_SETUP
#line 150 "scan-gram.l" #line 151 "scan-gram.l"
return PERCENT_UNION; return PERCENT_UNION;
YY_BREAK YY_BREAK
case 31: case 31:
YY_RULE_SETUP YY_RULE_SETUP
#line 151 "scan-gram.l" #line 152 "scan-gram.l"
return PERCENT_VERBOSE; return PERCENT_VERBOSE;
YY_BREAK YY_BREAK
case 32: case 32:
YY_RULE_SETUP YY_RULE_SETUP
#line 152 "scan-gram.l" #line 153 "scan-gram.l"
return PERCENT_YACC; return PERCENT_YACC;
YY_BREAK YY_BREAK
case 33: case 33:
YY_RULE_SETUP YY_RULE_SETUP
#line 154 "scan-gram.l" #line 155 "scan-gram.l"
return EQUAL; return EQUAL;
YY_BREAK YY_BREAK
case 34: case 34:
YY_RULE_SETUP YY_RULE_SETUP
#line 155 "scan-gram.l" #line 156 "scan-gram.l"
return COLON; return COLON;
YY_BREAK YY_BREAK
case 35: case 35:
YY_RULE_SETUP YY_RULE_SETUP
#line 156 "scan-gram.l" #line 157 "scan-gram.l"
return PIPE; return PIPE;
YY_BREAK YY_BREAK
case 36: case 36:
YY_RULE_SETUP YY_RULE_SETUP
#line 157 "scan-gram.l" #line 158 "scan-gram.l"
return SEMICOLON; return SEMICOLON;
YY_BREAK YY_BREAK
case 37: case 37:
YY_RULE_SETUP YY_RULE_SETUP
#line 159 "scan-gram.l" #line 160 "scan-gram.l"
YY_LINES; YY_STEP; YY_LINES; YY_STEP;
YY_BREAK YY_BREAK
case 38: case 38:
YY_RULE_SETUP YY_RULE_SETUP
#line 160 "scan-gram.l" #line 161 "scan-gram.l"
YY_STEP; YY_STEP;
YY_BREAK YY_BREAK
case 39: case 39:
YY_RULE_SETUP YY_RULE_SETUP
#line 161 "scan-gram.l" #line 162 "scan-gram.l"
{ {
yylval->symbol = symbol_get (yytext, *yylloc); yylval->symbol = symbol_get (yytext, *yylloc);
return ID; return ID;
@@ -1309,48 +1310,48 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 40: case 40:
YY_RULE_SETUP YY_RULE_SETUP
#line 166 "scan-gram.l" #line 167 "scan-gram.l"
yylval->integer = strtol (yytext, 0, 10); return INT; yylval->integer = strtol (yytext, 0, 10); return INT;
YY_BREAK YY_BREAK
/* Characters. We don't check there is only one. */ /* Characters. We don't check there is only one. */
case 41: case 41:
YY_RULE_SETUP YY_RULE_SETUP
#line 169 "scan-gram.l" #line 170 "scan-gram.l"
YY_OBS_GROW; yy_push_state (SC_ESCAPED_CHARACTER); YY_OBS_GROW; yy_push_state (SC_ESCAPED_CHARACTER);
YY_BREAK YY_BREAK
/* Strings. */ /* Strings. */
case 42: case 42:
YY_RULE_SETUP YY_RULE_SETUP
#line 172 "scan-gram.l" #line 173 "scan-gram.l"
YY_OBS_GROW; yy_push_state (SC_ESCAPED_STRING); YY_OBS_GROW; yy_push_state (SC_ESCAPED_STRING);
YY_BREAK YY_BREAK
/* Comments. */ /* Comments. */
case 43: case 43:
YY_RULE_SETUP YY_RULE_SETUP
#line 175 "scan-gram.l" #line 176 "scan-gram.l"
yy_push_state (SC_COMMENT); yy_push_state (SC_COMMENT);
YY_BREAK YY_BREAK
case 44: case 44:
YY_RULE_SETUP YY_RULE_SETUP
#line 176 "scan-gram.l" #line 177 "scan-gram.l"
YY_STEP; YY_STEP;
YY_BREAK YY_BREAK
/* Prologue. */ /* Prologue. */
case 45: case 45:
YY_RULE_SETUP YY_RULE_SETUP
#line 179 "scan-gram.l" #line 180 "scan-gram.l"
yy_push_state (SC_PROLOGUE); yy_push_state (SC_PROLOGUE);
YY_BREAK YY_BREAK
/* Code in between braces. */ /* Code in between braces. */
case 46: case 46:
YY_RULE_SETUP YY_RULE_SETUP
#line 182 "scan-gram.l" #line 183 "scan-gram.l"
YY_OBS_GROW; ++braces_level; yy_push_state (SC_BRACED_CODE); YY_OBS_GROW; ++braces_level; yy_push_state (SC_BRACED_CODE);
YY_BREAK YY_BREAK
/* A type. */ /* A type. */
case 47: case 47:
YY_RULE_SETUP YY_RULE_SETUP
#line 185 "scan-gram.l" #line 186 "scan-gram.l"
{ {
obstack_grow (&string_obstack, yytext + 1, yyleng - 2); obstack_grow (&string_obstack, yytext + 1, yyleng - 2);
YY_OBS_FINISH; YY_OBS_FINISH;
@@ -1360,7 +1361,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 48: case 48:
YY_RULE_SETUP YY_RULE_SETUP
#line 193 "scan-gram.l" #line 194 "scan-gram.l"
{ {
if (++percent_percent_count == 2) if (++percent_percent_count == 2)
yy_push_state (SC_EPILOGUE); yy_push_state (SC_EPILOGUE);
@@ -1369,7 +1370,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 49: case 49:
YY_RULE_SETUP YY_RULE_SETUP
#line 199 "scan-gram.l" #line 200 "scan-gram.l"
{ {
LOCATION_PRINT (stderr, *yylloc); LOCATION_PRINT (stderr, *yylloc);
fprintf (stderr, ": invalid character: `%c'\n", *yytext); fprintf (stderr, ": invalid character: `%c'\n", *yytext);
@@ -1386,12 +1387,12 @@ YY_RULE_SETUP
case 50: case 50:
YY_RULE_SETUP YY_RULE_SETUP
#line 215 "scan-gram.l" #line 216 "scan-gram.l"
if (YY_START != SC_COMMENT) obstack_sgrow (&string_obstack, "@<:@"); if (YY_START != SC_COMMENT) obstack_sgrow (&string_obstack, "@<:@");
YY_BREAK YY_BREAK
case 51: case 51:
YY_RULE_SETUP YY_RULE_SETUP
#line 216 "scan-gram.l" #line 217 "scan-gram.l"
if (YY_START != SC_COMMENT) obstack_sgrow (&string_obstack, "@:>@"); if (YY_START != SC_COMMENT) obstack_sgrow (&string_obstack, "@:>@");
YY_BREAK YY_BREAK
@@ -1402,7 +1403,7 @@ if (YY_START != SC_COMMENT) obstack_sgrow (&string_obstack, "@:>@");
case 52: case 52:
YY_RULE_SETUP YY_RULE_SETUP
#line 227 "scan-gram.l" #line 228 "scan-gram.l"
{ /* End of the comment. */ { /* End of the comment. */
if (yy_top_state () == INITIAL) if (yy_top_state () == INITIAL)
{ {
@@ -1417,21 +1418,21 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 53: case 53:
YY_RULE_SETUP YY_RULE_SETUP
#line 239 "scan-gram.l" #line 240 "scan-gram.l"
if (yy_top_state () != INITIAL) YY_OBS_GROW; if (yy_top_state () != INITIAL) YY_OBS_GROW;
YY_BREAK YY_BREAK
case 54: case 54:
YY_RULE_SETUP YY_RULE_SETUP
#line 240 "scan-gram.l" #line 241 "scan-gram.l"
if (yy_top_state () != INITIAL) YY_OBS_GROW; YY_LINES; if (yy_top_state () != INITIAL) YY_OBS_GROW; YY_LINES;
YY_BREAK YY_BREAK
case 55: case 55:
YY_RULE_SETUP YY_RULE_SETUP
#line 241 "scan-gram.l" #line 242 "scan-gram.l"
/* Stray `*'. */if (yy_top_state () != INITIAL) YY_OBS_GROW; /* Stray `*'. */if (yy_top_state () != INITIAL) YY_OBS_GROW;
YY_BREAK YY_BREAK
case YY_STATE_EOF(SC_COMMENT): case YY_STATE_EOF(SC_COMMENT):
#line 243 "scan-gram.l" #line 244 "scan-gram.l"
{ {
LOCATION_PRINT (stderr, *yylloc); LOCATION_PRINT (stderr, *yylloc);
fprintf (stderr, ": unexpected end of file in a comment\n"); fprintf (stderr, ": unexpected end of file in a comment\n");
@@ -1447,7 +1448,7 @@ case YY_STATE_EOF(SC_COMMENT):
case 56: case 56:
YY_RULE_SETUP YY_RULE_SETUP
#line 258 "scan-gram.l" #line 259 "scan-gram.l"
{ {
assert (yy_top_state () == INITIAL); assert (yy_top_state () == INITIAL);
YY_OBS_GROW; YY_OBS_GROW;
@@ -1459,16 +1460,16 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 57: case 57:
YY_RULE_SETUP YY_RULE_SETUP
#line 267 "scan-gram.l" #line 268 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
case 58: case 58:
YY_RULE_SETUP YY_RULE_SETUP
#line 269 "scan-gram.l" #line 270 "scan-gram.l"
obstack_1grow (&string_obstack, '\n'); YY_LINES; obstack_1grow (&string_obstack, '\n'); YY_LINES;
YY_BREAK YY_BREAK
case YY_STATE_EOF(SC_ESCAPED_STRING): case YY_STATE_EOF(SC_ESCAPED_STRING):
#line 271 "scan-gram.l" #line 272 "scan-gram.l"
{ {
LOCATION_PRINT (stderr, *yylloc); LOCATION_PRINT (stderr, *yylloc);
fprintf (stderr, ": unexpected end of file in a string\n"); fprintf (stderr, ": unexpected end of file in a string\n");
@@ -1488,7 +1489,7 @@ case YY_STATE_EOF(SC_ESCAPED_STRING):
case 59: case 59:
YY_RULE_SETUP YY_RULE_SETUP
#line 289 "scan-gram.l" #line 290 "scan-gram.l"
{ {
YY_OBS_GROW; YY_OBS_GROW;
assert (yy_top_state () == INITIAL); assert (yy_top_state () == INITIAL);
@@ -1506,16 +1507,16 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 60: case 60:
YY_RULE_SETUP YY_RULE_SETUP
#line 304 "scan-gram.l" #line 305 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
case 61: case 61:
YY_RULE_SETUP YY_RULE_SETUP
#line 306 "scan-gram.l" #line 307 "scan-gram.l"
obstack_1grow (&string_obstack, '\n'); YY_LINES; obstack_1grow (&string_obstack, '\n'); YY_LINES;
YY_BREAK YY_BREAK
case YY_STATE_EOF(SC_ESCAPED_CHARACTER): case YY_STATE_EOF(SC_ESCAPED_CHARACTER):
#line 308 "scan-gram.l" #line 309 "scan-gram.l"
{ {
LOCATION_PRINT (stderr, *yylloc); LOCATION_PRINT (stderr, *yylloc);
fprintf (stderr, ": unexpected end of file in a character\n"); fprintf (stderr, ": unexpected end of file in a character\n");
@@ -1534,7 +1535,7 @@ case YY_STATE_EOF(SC_ESCAPED_CHARACTER):
case 62: case 62:
YY_RULE_SETUP YY_RULE_SETUP
#line 326 "scan-gram.l" #line 327 "scan-gram.l"
{ {
long c = strtol (yytext + 1, 0, 8); long c = strtol (yytext + 1, 0, 8);
if (c > 255) if (c > 255)
@@ -1549,54 +1550,54 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 63: case 63:
YY_RULE_SETUP YY_RULE_SETUP
#line 338 "scan-gram.l" #line 339 "scan-gram.l"
{ {
obstack_1grow (&string_obstack, strtol (yytext + 2, 0, 16)); obstack_1grow (&string_obstack, strtol (yytext + 2, 0, 16));
} }
YY_BREAK YY_BREAK
case 64: case 64:
YY_RULE_SETUP YY_RULE_SETUP
#line 342 "scan-gram.l" #line 343 "scan-gram.l"
obstack_1grow (&string_obstack, '\a'); obstack_1grow (&string_obstack, '\a');
YY_BREAK YY_BREAK
case 65: case 65:
YY_RULE_SETUP YY_RULE_SETUP
#line 343 "scan-gram.l" #line 344 "scan-gram.l"
obstack_1grow (&string_obstack, '\b'); obstack_1grow (&string_obstack, '\b');
YY_BREAK YY_BREAK
case 66: case 66:
YY_RULE_SETUP YY_RULE_SETUP
#line 344 "scan-gram.l" #line 345 "scan-gram.l"
obstack_1grow (&string_obstack, '\f'); obstack_1grow (&string_obstack, '\f');
YY_BREAK YY_BREAK
case 67: case 67:
YY_RULE_SETUP YY_RULE_SETUP
#line 345 "scan-gram.l" #line 346 "scan-gram.l"
obstack_1grow (&string_obstack, '\n'); obstack_1grow (&string_obstack, '\n');
YY_BREAK YY_BREAK
case 68: case 68:
YY_RULE_SETUP YY_RULE_SETUP
#line 346 "scan-gram.l" #line 347 "scan-gram.l"
obstack_1grow (&string_obstack, '\r'); obstack_1grow (&string_obstack, '\r');
YY_BREAK YY_BREAK
case 69: case 69:
YY_RULE_SETUP YY_RULE_SETUP
#line 347 "scan-gram.l" #line 348 "scan-gram.l"
obstack_1grow (&string_obstack, '\t'); obstack_1grow (&string_obstack, '\t');
YY_BREAK YY_BREAK
case 70: case 70:
YY_RULE_SETUP YY_RULE_SETUP
#line 348 "scan-gram.l" #line 349 "scan-gram.l"
obstack_1grow (&string_obstack, '\v'); obstack_1grow (&string_obstack, '\v');
YY_BREAK YY_BREAK
case 71: case 71:
YY_RULE_SETUP YY_RULE_SETUP
#line 349 "scan-gram.l" #line 350 "scan-gram.l"
obstack_1grow (&string_obstack, yytext[1]); obstack_1grow (&string_obstack, yytext[1]);
YY_BREAK YY_BREAK
case 72: case 72:
YY_RULE_SETUP YY_RULE_SETUP
#line 350 "scan-gram.l" #line 351 "scan-gram.l"
{ {
LOCATION_PRINT (stderr, *yylloc); LOCATION_PRINT (stderr, *yylloc);
fprintf (stderr, ": unrecognized escape: %s\n", quote (yytext)); fprintf (stderr, ": unrecognized escape: %s\n", quote (yytext));
@@ -1606,7 +1607,7 @@ YY_RULE_SETUP
/* FLex wants this rule, in case of a `\<<EOF>>'. */ /* FLex wants this rule, in case of a `\<<EOF>>'. */
case 73: case 73:
YY_RULE_SETUP YY_RULE_SETUP
#line 356 "scan-gram.l" #line 357 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
@@ -1618,7 +1619,7 @@ YY_OBS_GROW;
case 74: case 74:
YY_RULE_SETUP YY_RULE_SETUP
#line 367 "scan-gram.l" #line 368 "scan-gram.l"
{ {
YY_OBS_GROW; YY_OBS_GROW;
assert (yy_top_state () != INITIAL); assert (yy_top_state () != INITIAL);
@@ -1627,27 +1628,27 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 75: case 75:
YY_RULE_SETUP YY_RULE_SETUP
#line 373 "scan-gram.l" #line 374 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
case 76: case 76:
YY_RULE_SETUP YY_RULE_SETUP
#line 374 "scan-gram.l" #line 375 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
/* FLex wants this rule, in case of a `\<<EOF>>'. */ /* FLex wants this rule, in case of a `\<<EOF>>'. */
case 77: case 77:
YY_RULE_SETUP YY_RULE_SETUP
#line 376 "scan-gram.l" #line 377 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
case 78: case 78:
YY_RULE_SETUP YY_RULE_SETUP
#line 378 "scan-gram.l" #line 379 "scan-gram.l"
YY_OBS_GROW; YY_LINES; YY_OBS_GROW; YY_LINES;
YY_BREAK YY_BREAK
case YY_STATE_EOF(SC_CHARACTER): case YY_STATE_EOF(SC_CHARACTER):
#line 380 "scan-gram.l" #line 381 "scan-gram.l"
{ {
LOCATION_PRINT (stderr, *yylloc); LOCATION_PRINT (stderr, *yylloc);
fprintf (stderr, ": unexpected end of file in a character\n"); fprintf (stderr, ": unexpected end of file in a character\n");
@@ -1664,7 +1665,7 @@ case YY_STATE_EOF(SC_CHARACTER):
case 79: case 79:
YY_RULE_SETUP YY_RULE_SETUP
#line 396 "scan-gram.l" #line 397 "scan-gram.l"
{ {
assert (yy_top_state () != INITIAL); assert (yy_top_state () != INITIAL);
YY_OBS_GROW; YY_OBS_GROW;
@@ -1673,27 +1674,27 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 80: case 80:
YY_RULE_SETUP YY_RULE_SETUP
#line 402 "scan-gram.l" #line 403 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
case 81: case 81:
YY_RULE_SETUP YY_RULE_SETUP
#line 403 "scan-gram.l" #line 404 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
/* FLex wants this rule, in case of a `\<<EOF>>'. */ /* FLex wants this rule, in case of a `\<<EOF>>'. */
case 82: case 82:
YY_RULE_SETUP YY_RULE_SETUP
#line 405 "scan-gram.l" #line 406 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
case 83: case 83:
YY_RULE_SETUP YY_RULE_SETUP
#line 407 "scan-gram.l" #line 408 "scan-gram.l"
YY_OBS_GROW; YY_LINES; YY_OBS_GROW; YY_LINES;
YY_BREAK YY_BREAK
case YY_STATE_EOF(SC_STRING): case YY_STATE_EOF(SC_STRING):
#line 409 "scan-gram.l" #line 410 "scan-gram.l"
{ {
LOCATION_PRINT (stderr, *yylloc); LOCATION_PRINT (stderr, *yylloc);
fprintf (stderr, ": unexpected end of file in a string\n"); fprintf (stderr, ": unexpected end of file in a string\n");
@@ -1710,30 +1711,30 @@ case YY_STATE_EOF(SC_STRING):
/* Characters. We don't check there is only one. */ /* Characters. We don't check there is only one. */
case 84: case 84:
YY_RULE_SETUP YY_RULE_SETUP
#line 425 "scan-gram.l" #line 426 "scan-gram.l"
YY_OBS_GROW; yy_push_state (SC_CHARACTER); YY_OBS_GROW; yy_push_state (SC_CHARACTER);
YY_BREAK YY_BREAK
/* Strings. */ /* Strings. */
case 85: case 85:
YY_RULE_SETUP YY_RULE_SETUP
#line 428 "scan-gram.l" #line 429 "scan-gram.l"
YY_OBS_GROW; yy_push_state (SC_STRING); YY_OBS_GROW; yy_push_state (SC_STRING);
YY_BREAK YY_BREAK
/* Comments. */ /* Comments. */
case 86: case 86:
YY_RULE_SETUP YY_RULE_SETUP
#line 431 "scan-gram.l" #line 432 "scan-gram.l"
YY_OBS_GROW; yy_push_state (SC_COMMENT); YY_OBS_GROW; yy_push_state (SC_COMMENT);
YY_BREAK YY_BREAK
case 87: case 87:
YY_RULE_SETUP YY_RULE_SETUP
#line 432 "scan-gram.l" #line 433 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
/* Not comments. */ /* Not comments. */
case 88: case 88:
YY_RULE_SETUP YY_RULE_SETUP
#line 435 "scan-gram.l" #line 436 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
@@ -1745,7 +1746,7 @@ YY_OBS_GROW;
case 89: case 89:
YY_RULE_SETUP YY_RULE_SETUP
#line 446 "scan-gram.l" #line 447 "scan-gram.l"
{ {
YY_OBS_GROW; YY_OBS_GROW;
if (--braces_level == 0) if (--braces_level == 0)
@@ -1759,39 +1760,39 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 90: case 90:
YY_RULE_SETUP YY_RULE_SETUP
#line 457 "scan-gram.l" #line 458 "scan-gram.l"
YY_OBS_GROW; braces_level++; YY_OBS_GROW; braces_level++;
YY_BREAK YY_BREAK
case 91: case 91:
YY_RULE_SETUP YY_RULE_SETUP
#line 459 "scan-gram.l" #line 460 "scan-gram.l"
{ handle_dollar (current_braced_code, { handle_dollar (current_braced_code,
yytext, *yylloc); } yytext, *yylloc); }
YY_BREAK YY_BREAK
case 92: case 92:
YY_RULE_SETUP YY_RULE_SETUP
#line 461 "scan-gram.l" #line 462 "scan-gram.l"
{ handle_at (current_braced_code, { handle_at (current_braced_code,
yytext, *yylloc); } yytext, *yylloc); }
YY_BREAK YY_BREAK
case 93: case 93:
YY_RULE_SETUP YY_RULE_SETUP
#line 464 "scan-gram.l" #line 465 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
case 94: case 94:
YY_RULE_SETUP YY_RULE_SETUP
#line 465 "scan-gram.l" #line 466 "scan-gram.l"
YY_OBS_GROW; YY_LINES; YY_OBS_GROW; YY_LINES;
YY_BREAK YY_BREAK
/* A lose $, or /, or etc. */ /* A lose $, or /, or etc. */
case 95: case 95:
YY_RULE_SETUP YY_RULE_SETUP
#line 468 "scan-gram.l" #line 469 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
case YY_STATE_EOF(SC_BRACED_CODE): case YY_STATE_EOF(SC_BRACED_CODE):
#line 470 "scan-gram.l" #line 471 "scan-gram.l"
{ {
LOCATION_PRINT (stderr, *yylloc); LOCATION_PRINT (stderr, *yylloc);
fprintf (stderr, ": unexpected end of file in a braced code\n"); fprintf (stderr, ": unexpected end of file in a braced code\n");
@@ -1809,7 +1810,7 @@ case YY_STATE_EOF(SC_BRACED_CODE):
case 96: case 96:
YY_RULE_SETUP YY_RULE_SETUP
#line 488 "scan-gram.l" #line 489 "scan-gram.l"
{ {
yy_pop_state (); yy_pop_state ();
YY_OBS_FINISH; YY_OBS_FINISH;
@@ -1819,21 +1820,21 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 97: case 97:
YY_RULE_SETUP YY_RULE_SETUP
#line 495 "scan-gram.l" #line 496 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
case 98: case 98:
YY_RULE_SETUP YY_RULE_SETUP
#line 496 "scan-gram.l" #line 497 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
case 99: case 99:
YY_RULE_SETUP YY_RULE_SETUP
#line 497 "scan-gram.l" #line 498 "scan-gram.l"
YY_OBS_GROW; YY_LINES; YY_OBS_GROW; YY_LINES;
YY_BREAK YY_BREAK
case YY_STATE_EOF(SC_PROLOGUE): case YY_STATE_EOF(SC_PROLOGUE):
#line 499 "scan-gram.l" #line 500 "scan-gram.l"
{ {
LOCATION_PRINT (stderr, *yylloc); LOCATION_PRINT (stderr, *yylloc);
fprintf (stderr, ": unexpected end of file in a prologue\n"); fprintf (stderr, ": unexpected end of file in a prologue\n");
@@ -1852,11 +1853,11 @@ case YY_STATE_EOF(SC_PROLOGUE):
case 100: case 100:
YY_RULE_SETUP YY_RULE_SETUP
#line 517 "scan-gram.l" #line 518 "scan-gram.l"
YY_OBS_GROW; YY_OBS_GROW;
YY_BREAK YY_BREAK
case YY_STATE_EOF(SC_EPILOGUE): case YY_STATE_EOF(SC_EPILOGUE):
#line 519 "scan-gram.l" #line 520 "scan-gram.l"
{ {
yy_pop_state (); yy_pop_state ();
YY_OBS_FINISH; YY_OBS_FINISH;
@@ -1867,10 +1868,10 @@ case YY_STATE_EOF(SC_EPILOGUE):
case 101: case 101:
YY_RULE_SETUP YY_RULE_SETUP
#line 528 "scan-gram.l" #line 529 "scan-gram.l"
YY_FATAL_ERROR( "flex scanner jammed" ); YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK YY_BREAK
#line 1874 "lex.yy.c" #line 1875 "lex.yy.c"
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
yyterminate(); yyterminate();
@@ -2760,7 +2761,7 @@ int main()
return 0; return 0;
} }
#endif #endif
#line 528 "scan-gram.l" #line 529 "scan-gram.l"
/*------------------------------------------------------------------. /*------------------------------------------------------------------.

View File

@@ -34,13 +34,14 @@
#define YY_USER_INIT \ #define YY_USER_INIT \
do { \ do { \
LOCATION_RESET (*yylloc); \ LOCATION_RESET (*yylloc); \
yylloc->file = infile; \
/* This is only to avoid GCC warnings. */ \ /* This is only to avoid GCC warnings. */ \
if (yycontrol) {;}; \ if (yycontrol) {;}; \
} while (0) } while (0)
#define YY_USER_ACTION LOCATION_COLUMNS (*yylloc, yyleng) #define YY_USER_ACTION LOCATION_COLUMNS (*yylloc, yyleng);
#define YY_LINES LOCATION_LINES (*yylloc, yyleng); #define YY_LINES LOCATION_LINES (*yylloc, yyleng);
#define YY_STEP LOCATION_STEP (*yylloc) #define YY_STEP LOCATION_STEP (*yylloc);
/* STRING_OBSTACK -- Used to store all the characters that we need to /* STRING_OBSTACK -- Used to store all the characters that we need to
keep (to construct ID, STRINGS etc.). Use the following macros to keep (to construct ID, STRINGS etc.). Use the following macros to