* src/parse-gram.y: Define PERCENT_EXPECT_RR.

(declaration): Replace expected_conflicts with expected_sr_conflicts.
Add %expect-rr rule.

* src/scan-gram.l: Recognize %expect-rr.

* src/conflicts.h (expected_sr_conflicts): Rename from
expected_conflicts.
(expected_rr_conflicts): Declare.

* src/conflicts.c (expected_sr_conflicts): Rename from
expected_conflicts.
(expected_rr_conflicts): Define.
(conflicts_print): Check r/r conflicts against expected_rr_conflicts
for GLR parsers.
Use expected_sr_conflicts in place of expected_conflicts.
Warn if expected_rr_conflicts used in non-GLR parser.

* doc/bison.texinfo: Add documentation for %expect-rr.
This commit is contained in:
Paul Hilfinger
2004-03-26 22:41:16 +00:00
parent 1452af69b4
commit d63282419d
8 changed files with 444 additions and 380 deletions

View File

@@ -50,33 +50,34 @@
PERCENT_DEFINES = 275,
PERCENT_ERROR_VERBOSE = 276,
PERCENT_EXPECT = 277,
PERCENT_FILE_PREFIX = 278,
PERCENT_GLR_PARSER = 279,
PERCENT_INITIAL_ACTION = 280,
PERCENT_LEX_PARAM = 281,
PERCENT_LOCATIONS = 282,
PERCENT_NAME_PREFIX = 283,
PERCENT_NO_DEFAULT_PREC = 284,
PERCENT_NO_LINES = 285,
PERCENT_NONDETERMINISTIC_PARSER = 286,
PERCENT_OUTPUT = 287,
PERCENT_PARSE_PARAM = 288,
PERCENT_PURE_PARSER = 289,
PERCENT_SKELETON = 290,
PERCENT_START = 291,
PERCENT_TOKEN_TABLE = 292,
PERCENT_VERBOSE = 293,
PERCENT_YACC = 294,
TYPE = 295,
EQUAL = 296,
SEMICOLON = 297,
PIPE = 298,
ID = 299,
ID_COLON = 300,
PERCENT_PERCENT = 301,
PROLOGUE = 302,
EPILOGUE = 303,
BRACED_CODE = 304
PERCENT_EXPECT_RR = 278,
PERCENT_FILE_PREFIX = 279,
PERCENT_GLR_PARSER = 280,
PERCENT_INITIAL_ACTION = 281,
PERCENT_LEX_PARAM = 282,
PERCENT_LOCATIONS = 283,
PERCENT_NAME_PREFIX = 284,
PERCENT_NO_DEFAULT_PREC = 285,
PERCENT_NO_LINES = 286,
PERCENT_NONDETERMINISTIC_PARSER = 287,
PERCENT_OUTPUT = 288,
PERCENT_PARSE_PARAM = 289,
PERCENT_PURE_PARSER = 290,
PERCENT_SKELETON = 291,
PERCENT_START = 292,
PERCENT_TOKEN_TABLE = 293,
PERCENT_VERBOSE = 294,
PERCENT_YACC = 295,
TYPE = 296,
EQUAL = 297,
SEMICOLON = 298,
PIPE = 299,
ID = 300,
ID_COLON = 301,
PERCENT_PERCENT = 302,
PROLOGUE = 303,
EPILOGUE = 304,
BRACED_CODE = 305
};
#endif
#define GRAM_EOF 0
@@ -100,39 +101,40 @@
#define PERCENT_DEFINES 275
#define PERCENT_ERROR_VERBOSE 276
#define PERCENT_EXPECT 277
#define PERCENT_FILE_PREFIX 278
#define PERCENT_GLR_PARSER 279
#define PERCENT_INITIAL_ACTION 280
#define PERCENT_LEX_PARAM 281
#define PERCENT_LOCATIONS 282
#define PERCENT_NAME_PREFIX 283
#define PERCENT_NO_DEFAULT_PREC 284
#define PERCENT_NO_LINES 285
#define PERCENT_NONDETERMINISTIC_PARSER 286
#define PERCENT_OUTPUT 287
#define PERCENT_PARSE_PARAM 288
#define PERCENT_PURE_PARSER 289
#define PERCENT_SKELETON 290
#define PERCENT_START 291
#define PERCENT_TOKEN_TABLE 292
#define PERCENT_VERBOSE 293
#define PERCENT_YACC 294
#define TYPE 295
#define EQUAL 296
#define SEMICOLON 297
#define PIPE 298
#define ID 299
#define ID_COLON 300
#define PERCENT_PERCENT 301
#define PROLOGUE 302
#define EPILOGUE 303
#define BRACED_CODE 304
#define PERCENT_EXPECT_RR 278
#define PERCENT_FILE_PREFIX 279
#define PERCENT_GLR_PARSER 280
#define PERCENT_INITIAL_ACTION 281
#define PERCENT_LEX_PARAM 282
#define PERCENT_LOCATIONS 283
#define PERCENT_NAME_PREFIX 284
#define PERCENT_NO_DEFAULT_PREC 285
#define PERCENT_NO_LINES 286
#define PERCENT_NONDETERMINISTIC_PARSER 287
#define PERCENT_OUTPUT 288
#define PERCENT_PARSE_PARAM 289
#define PERCENT_PURE_PARSER 290
#define PERCENT_SKELETON 291
#define PERCENT_START 292
#define PERCENT_TOKEN_TABLE 293
#define PERCENT_VERBOSE 294
#define PERCENT_YACC 295
#define TYPE 296
#define EQUAL 297
#define SEMICOLON 298
#define PIPE 299
#define ID 300
#define ID_COLON 301
#define PERCENT_PERCENT 302
#define PROLOGUE 303
#define EPILOGUE 304
#define BRACED_CODE 305
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 80 "parse-gram.y"
#line 80 "../../src/parse-gram.y"
typedef union YYSTYPE {
symbol *symbol;
symbol_list *list;
@@ -142,7 +144,7 @@ typedef union YYSTYPE {
uniqstr uniqstr;
} YYSTYPE;
/* Line 1285 of yacc.c. */
#line 146 "y.tab.h"
#line 148 "y.tab.h"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1