X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/1d0f55cc843d6dfca01e2c13fd49ee2c119c6631..bfdcc3a0b273c116e01d289ce52d400f22e4da14:/src/lalr.c?ds=sidebyside
diff --git a/src/lalr.c b/src/lalr.c
index 4aa05b9e..98661544 100644
--- a/src/lalr.c
+++ b/src/lalr.c
@@ -1,7 +1,7 @@
/* Compute lookahead criteria for Bison.
- Copyright (C) 1984, 1986, 1989, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1986, 1989, 2000-2012 Free Software Foundation,
+ Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -19,8 +19,7 @@
along with this program. If not, see . */
-/* Compute how to make the finite state machine deterministic; find
- which rules need lookahead in each state, and which lookahead
+/* Find which rules need lookahead in each state, and which lookahead
tokens they accept. */
#include
@@ -28,7 +27,6 @@
#include
#include
-#include
#include "LR0.h"
#include "complain.h"
@@ -36,7 +34,7 @@
#include "getargs.h"
#include "gram.h"
#include "lalr.h"
-#include "muscle_tab.h"
+#include "muscle-tab.h"
#include "nullable.h"
#include "reader.h"
#include "relation.h"
@@ -344,10 +342,11 @@ state_lookahead_tokens_count (state *s, bool default_reduction_only_for_accept)
/* We need a lookahead either to distinguish different reductions
(i.e., there are two or more), or to distinguish a reduction from a
shift. Otherwise, it is straightforward, and the state is
- `consistent'. However, treat only the accepting state as
- consistent (because there is never a lookahead token that makes
- sense there, and so no lookahead token should be read) if the user
- has otherwise disabled default reductions. */
+ `consistent'. However, do not treat a state with any reductions as
+ consistent unless it is the accepting state (because there is never
+ a lookahead token that makes sense there, and so no lookahead token
+ should be read) if the user has otherwise disabled default
+ reductions. */
if (rp->num > 1
|| (rp->num == 1 && sp->num && TRANSITION_IS_SHIFT (sp, 0))
|| (rp->num == 1 && rp->rules[0]->number != 0