[pypy-svn] r13193 - pypy/branch/pycompiler/module/recparser
adim at codespeak.net
adim at codespeak.net
Wed Jun 8 18:51:10 CEST 2005
Author: adim
Date: Wed Jun 8 18:51:09 2005
New Revision: 13193
Modified:
pypy/branch/pycompiler/module/recparser/grammar.py
Log:
fixed tiny bug in lookahead algorithm
Modified: pypy/branch/pycompiler/module/recparser/grammar.py
==============================================================================
--- pypy/branch/pycompiler/module/recparser/grammar.py (original)
+++ pypy/branch/pycompiler/module/recparser/grammar.py Wed Jun 8 18:51:09 2005
@@ -69,6 +69,7 @@
if new_size != size:
changed = True
for r in rules:
+ assert len(r.first_set) > 0, "Error: ot Empty firstset for %s" % r
r.reorder_rule()
@@ -165,7 +166,8 @@
return self._match(source, builder, level)
token = source.peek()
- pos1 = source.get_pos()
+ if self._trace:
+ pos1 = source.get_pos()
in_first_set = self.match_first_set(token)
if not in_first_set: # and not EmptyToken in self.first_set:
if EmptyToken in self.first_set:
@@ -395,8 +397,11 @@
LAH(S) = LAH(A)
"""
for rule in self.args:
+ if not rule.first_set:
+ break
if EmptyToken in self.first_set:
self.first_set.remove( EmptyToken )
+
# del self.first_set[EmptyToken]
# while we're in this loop, keep agregating possible tokens
for t in rule.first_set:
More information about the Pypy-commit
mailing list