X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/b7226022b07fac385defbf2297892d8c3dc3cd18..b0db817ff28727905bfb106bd5304d31b151da65:/tests/regression.at diff --git a/tests/regression.at b/tests/regression.at index c44b9f88..db6c3b9f 100644 --- a/tests/regression.at +++ b/tests/regression.at @@ -293,7 +293,7 @@ $@2 (9) on left: 3, on right: 4 -state 0 +State 0 0 $accept: . expr $end @@ -305,7 +305,7 @@ state 0 $@2 go to state 3 -state 1 +State 1 2 expr: 'a' . $@1 'b' @@ -314,42 +314,42 @@ state 1 $@1 go to state 4 -state 2 +State 2 0 $accept: expr . $end $end shift, and go to state 5 -state 3 +State 3 4 expr: $@2 . 'c' 'c' shift, and go to state 6 -state 4 +State 4 2 expr: 'a' $@1 . 'b' 'b' shift, and go to state 7 -state 5 +State 5 0 $accept: expr $end . $default accept -state 6 +State 6 4 expr: $@2 'c' . $default reduce using rule 4 (expr) -state 7 +State 7 2 expr: 'a' $@1 'b' . @@ -481,6 +481,14 @@ AT_BISON_CHECK([-o input.c input.y], [[0]], [[]], [[input.y:22.8-14: warning: symbol SPECIAL redeclared input.y:22.8-63: warning: symbol "\\'?\"\a\b\f\n\r\t\v\001\201\001\201??!" used more than once as a literal string ]]) +AT_BISON_CHECK([-fcaret -o input.c input.y], [[0]], [[]], +[[input.y:22.8-14: warning: symbol SPECIAL redeclared + %token SPECIAL "\\\'\?\"\a\b\f\n\r\t\v\001\201\x001\x000081??!" + ^^^^^^^ +input.y:22.8-63: warning: symbol "\\'?\"\a\b\f\n\r\t\v\001\201\001\201??!" used more than once as a literal string + %token SPECIAL "\\\'\?\"\a\b\f\n\r\t\v\001\201\x001\x000081??!" + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +]]) AT_COMPILE([input]) # Checking the error message here guarantees that yytname, which does contain @@ -598,7 +606,7 @@ $@1 (11) on left: 4, on right: 5 -state 0 +State 0 0 $accept: . CONST_DEC_PART $end @@ -610,14 +618,14 @@ state 0 $@1 go to state 4 -state 1 +State 1 0 $accept: CONST_DEC_PART . $end $end shift, and go to state 5 -state 2 +State 2 1 CONST_DEC_PART: CONST_DEC_LIST . 3 CONST_DEC_LIST: CONST_DEC_LIST . CONST_DEC @@ -629,56 +637,56 @@ state 2 $@1 go to state 4 -state 3 +State 3 2 CONST_DEC_LIST: CONST_DEC . $default reduce using rule 2 (CONST_DEC_LIST) -state 4 +State 4 5 CONST_DEC: $@1 . undef_id_tok '=' const_id_tok ';' undef_id_tok shift, and go to state 7 -state 5 +State 5 0 $accept: CONST_DEC_PART $end . $default accept -state 6 +State 6 3 CONST_DEC_LIST: CONST_DEC_LIST CONST_DEC . $default reduce using rule 3 (CONST_DEC_LIST) -state 7 +State 7 5 CONST_DEC: $@1 undef_id_tok . '=' const_id_tok ';' '=' shift, and go to state 8 -state 8 +State 8 5 CONST_DEC: $@1 undef_id_tok '=' . const_id_tok ';' const_id_tok shift, and go to state 9 -state 9 +State 9 5 CONST_DEC: $@1 undef_id_tok '=' const_id_tok . ';' ';' shift, and go to state 10 -state 10 +State 10 5 CONST_DEC: $@1 undef_id_tok '=' const_id_tok ';' . @@ -1125,8 +1133,8 @@ a: 'a' ; ]]) AT_BISON_CHECK([[--report=all input.y]]) -AT_CHECK([[sed -n '/^state 1$/,/^state 2$/p' input.output]], [[0]], -[[state 1 +AT_CHECK([[sed -n '/^State 1$/,/^State 2$/p' input.output]], [[0]], +[[State 1 2 start: 'a' . a 'a' 3 a: . 'a' @@ -1139,7 +1147,7 @@ AT_CHECK([[sed -n '/^state 1$/,/^state 2$/p' input.output]], [[0]], a go to state 5 -state 2 +State 2 ]]) AT_CLEANUP @@ -1597,14 +1605,14 @@ AT_CLEANUP m4_pushdef([AT_TEST], [AT_SETUP([[Lex and parse params: $1]]) -AT_BISON_OPTION_PUSHDEFS([%locations %skeleton $1]) +AT_BISON_OPTION_PUSHDEFS([%locations %skeleton "$1" %parse-param { int x } %parse-param { int y }]) ## FIXME: Improve parsing of parse-param and use the generated ## yyerror. AT_DATA_GRAMMAR([input.y], [[%defines %locations -%skeleton $1 +%skeleton "$1" %union { int ival; } %parse-param { int x } // Spaces, tabs, and new lines. @@ -1618,26 +1626,18 @@ AT_DATA_GRAMMAR([input.y], #include #include -]AT_SKEL_CC_IF([], [[ -static -void -yyerror (int x, int y, const char *msg) -{ - fprintf (stderr, "x: %d, y: %d, %s\n", x, y, msg); -}]])[ - + ]AT_YYERROR_DECLARE[ ]AT_YYLEX_DECLARE[ %} %% exp: 'a' { fprintf (stdout, "x: %d, y: %d\n", x, y); }; %% +]AT_YYERROR_DEFINE[ ]AT_YYLEX_DEFINE(["a"])[ ]AT_SKEL_CC_IF( -[AT_YYERROR_DEFINE - -int +[int yyparse (int x, int y) { yy::parser parser(x, y); @@ -1653,7 +1653,7 @@ main (void) ]]) AT_FULL_COMPILE([input]) -AT_CHECK([./input], 0, [[x: 1, y: 2 +AT_PARSER_CHECK([./input], 0, [[x: 1, y: 2 ]]) AT_BISON_OPTION_POPDEFS @@ -1661,9 +1661,9 @@ AT_CLEANUP ]) ## FIXME: test Java, and iterate over skeletons. -AT_TEST("yacc.c") -AT_TEST("glr.c") -AT_TEST("lalr1.cc") -AT_TEST("glr.cc") +AT_TEST([yacc.c]) +AT_TEST([glr.c]) +AT_TEST([lalr1.cc]) +AT_TEST([glr.cc]) m4_popdef([AT_TEST])