summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bootstrap.conf2
-rw-r--r--src/reader.c16
2 files changed, 6 insertions, 12 deletions
diff --git a/bootstrap.conf b/bootstrap.conf
index b2d0f974..7c436a59 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -17,7 +17,7 @@
# gnulib modules used by this package.
gnulib_modules='
- argmatch assert assume
+ argmatch assert
calloc-posix close closeout config-h c-strcase
configmake
dirname
diff --git a/src/reader.c b/src/reader.c
index 12faef96..664dea71 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -729,17 +729,11 @@ static symbol *
find_start_symbol (void)
{
symbol_list *res = grammar;
- for (;
- res && symbol_is_dummy (res->content.sym);
- res = res->next)
- {
- for (res = res->next;
- res && res->content.sym;
- res = res->next)
- continue;
- assume (res);
- }
- assume (res);
+ /* Skip all the possible dummy rules of the first rule. */
+ for (; symbol_is_dummy (res->content.sym); res = res->next)
+ /* Skip the LHS, and then all the RHS of the dummy rule. */
+ for (res = res->next; res->content.sym; res = res->next)
+ continue;
return res->content.sym;
}