mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-10 12:53:03 +00:00
* tests/sets.at (Broken Closure): Add the ending `;'.
* tests/input.at (Invalid $n, Invalid @n): Likewise. * tests/output.at (AT_CHECK_OUTPUT): Likewise. * src/reader.at (readgram): Complain if a rule is not ended with a semi-colon.
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2002-03-04 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* tests/sets.at (Broken Closure): Add the ending `;'.
|
||||
* tests/input.at (Invalid $n, Invalid @n): Likewise.
|
||||
* tests/output.at (AT_CHECK_OUTPUT): Likewise.
|
||||
* src/reader.at (readgram): Complain if a rule is not ended with a
|
||||
semi-colon.
|
||||
|
||||
2002-02-28 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* tests/Makefile.am (check_SCRIPTS): New.
|
||||
|
||||
9
NEWS
9
NEWS
@@ -1,7 +1,14 @@
|
||||
Bison News
|
||||
----------
|
||||
|
||||
Changes in version 1.33a:
|
||||
Changes in version 1.33b:
|
||||
|
||||
* A missing `;' ending a rule triggers a warning
|
||||
In accordance with POSIX, and in agreement with other
|
||||
Yacc implementations, Bison will mandate this semicolon in a near
|
||||
future. This eases the implementation of a Bison parser of Bison
|
||||
grammars by making this grammar LALR(1) instead of LR(2). To
|
||||
facilitate the transition, this release introduces a warning.
|
||||
|
||||
* Revert the C++ namespace changes introduced in 1.31, as they caused too
|
||||
many portability hassles.
|
||||
|
||||
@@ -1440,7 +1440,10 @@ readgram (void)
|
||||
unlex (t1);
|
||||
symval = ssave;
|
||||
if (t1 == tok_colon)
|
||||
break;
|
||||
{
|
||||
complain (_("previous rule lacks an ending `;'"));
|
||||
break;
|
||||
}
|
||||
|
||||
if (!first_rhs) /* JF */
|
||||
first_rhs = symval;
|
||||
@@ -1549,6 +1552,8 @@ readgram (void)
|
||||
/* Warn if there is no default for $$ but we need one. */
|
||||
else if (!xactions && !first_rhs && lhs->type_name != 0)
|
||||
complain (_("empty rule for typed nonterminal, and no action"));
|
||||
if (t == tok_two_percents || t == tok_eof)
|
||||
complain (_("previous rule lacks an ending `;'"));
|
||||
if (t == tok_semicolon)
|
||||
t = lex ();
|
||||
}
|
||||
@@ -1585,7 +1590,7 @@ readgram (void)
|
||||
}
|
||||
else if (t == tok_start)
|
||||
{
|
||||
parse_start_decl ();
|
||||
parse_start_decl (;)
|
||||
t = lex ();
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -29,7 +29,7 @@ AT_SETUP([Invalid $n])
|
||||
|
||||
AT_DATA([input.y],
|
||||
[[%%
|
||||
exp: { $$ = $1 ; }
|
||||
exp: { $$ = $1 ; };
|
||||
]])
|
||||
|
||||
AT_CHECK([bison input.y], [1], [],
|
||||
@@ -48,7 +48,7 @@ AT_SETUP([Invalid @n])
|
||||
|
||||
AT_DATA([input.y],
|
||||
[[%%
|
||||
exp: { @$ = @1 ; }
|
||||
exp: { @$ = @1 ; };
|
||||
]])
|
||||
|
||||
AT_CHECK([bison input.y], [1], [],
|
||||
|
||||
@@ -26,7 +26,7 @@ m4_define([AT_CHECK_OUTPUT],
|
||||
AT_DATA([$1],
|
||||
[[$2
|
||||
%%
|
||||
foo: {}
|
||||
foo: {};
|
||||
]])
|
||||
|
||||
AT_CHECK([bison $3 $1], 0)
|
||||
|
||||
@@ -103,7 +103,7 @@ AT_DATA([input.y],
|
||||
[[/* Bison used to swallow the character after `}'. */
|
||||
|
||||
%%
|
||||
exp: { tests = {{{{{{{{{{}}}}}}}}}}; }
|
||||
exp: { tests = {{{{{{{{{{}}}}}}}}}}; };
|
||||
%%
|
||||
]])
|
||||
|
||||
@@ -382,7 +382,7 @@ expr:
|
||||
|
||||
{
|
||||
|
||||
}
|
||||
};
|
||||
]])
|
||||
|
||||
AT_CHECK([bison input.y -o input.c -v], 0, [], [])
|
||||
|
||||
@@ -161,14 +161,14 @@ AT_SETUP([Broken Closure])
|
||||
|
||||
AT_DATA([input.y],
|
||||
[[%%
|
||||
a: b
|
||||
b: c
|
||||
c: d
|
||||
d: e
|
||||
e: f
|
||||
f: g
|
||||
g: h
|
||||
h: 'h'
|
||||
a: b;
|
||||
b: c;
|
||||
c: d;
|
||||
d: e;
|
||||
e: f;
|
||||
f: g;
|
||||
g: h;
|
||||
h: 'h';
|
||||
]])
|
||||
|
||||
AT_CHECK([bison --trace input.y 2>&1 |
|
||||
|
||||
Reference in New Issue
Block a user