[pypy-svn] r65755 - in pypy/branch/parser-compiler/pypy/interpreter/pyparser: . test
benjamin at codespeak.net
benjamin at codespeak.net
Fri Jun 12 22:26:55 CEST 2009
Author: benjamin
Date: Fri Jun 12 22:26:52 2009
New Revision: 65755
Modified:
pypy/branch/parser-compiler/pypy/interpreter/pyparser/parser.py
pypy/branch/parser-compiler/pypy/interpreter/pyparser/test/test_metaparser.py
pypy/branch/parser-compiler/pypy/interpreter/pyparser/test/test_pyparse.py
Log:
the first label must *always* be 0
Modified: pypy/branch/parser-compiler/pypy/interpreter/pyparser/parser.py
==============================================================================
--- pypy/branch/parser-compiler/pypy/interpreter/pyparser/parser.py (original)
+++ pypy/branch/parser-compiler/pypy/interpreter/pyparser/parser.py Fri Jun 12 22:26:52 2009
@@ -17,7 +17,7 @@
self.symbol_to_label = {}
self.keyword_ids = {}
self.dfas = {}
- self.labels = []
+ self.labels = [0]
self.token_ids = {}
def _freeze_(self):
Modified: pypy/branch/parser-compiler/pypy/interpreter/pyparser/test/test_metaparser.py
==============================================================================
--- pypy/branch/parser-compiler/pypy/interpreter/pyparser/test/test_metaparser.py (original)
+++ pypy/branch/parser-compiler/pypy/interpreter/pyparser/test/test_metaparser.py Fri Jun 12 22:26:52 2009
@@ -36,7 +36,8 @@
assert eval_sym in g.dfas
assert g.start == eval_sym
states, first = g.dfas[eval_sym]
- assert states == [[(0, 1)], [(0, 1)]]
+ assert states == [[(1, 1)], [(0, 1)]]
+ assert g.labels[0] == 0
def test_load_python_grammars(self):
gram_pat = os.path.join(os.path.dirname(__file__), "..", "data",
@@ -87,7 +88,7 @@
def test_symbol(self):
g = self.gram_for("foo: some_other_rule\nsome_other_rule: NAME")
assert len(g.dfas) == 2
- assert len(g.labels) == 2
+ assert len(g.labels) == 3
exc = py.test.raises(PgenError, self.gram_for, "foo: no_rule").value
assert str(exc) == "no such rule: 'no_rule'"
Modified: pypy/branch/parser-compiler/pypy/interpreter/pyparser/test/test_pyparse.py
==============================================================================
--- pypy/branch/parser-compiler/pypy/interpreter/pyparser/test/test_pyparse.py (original)
+++ pypy/branch/parser-compiler/pypy/interpreter/pyparser/test/test_pyparse.py Fri Jun 12 22:26:52 2009
@@ -26,7 +26,7 @@
exc = py.test.raises(SyntaxError, parse, "name another for").value
assert exc.msg == "invalid syntax"
assert exc.lineno == 1
- assert exc.offset == 16
+ assert exc.offset == 12
assert exc.text == "name another for"
exc = py.test.raises(SyntaxError, parse, "\"blah").value
assert exc.msg == "EOL while scanning single-quoted string"
@@ -35,6 +35,10 @@
for input in ("())", "(()", "((", "))"):
py.test.raises(SyntaxError, parse, input)
+ def test_is(self):
+ self.parser.parse_source("x is y")
+ self.parser.parse_source("x is not y")
+
def test_indentation_error(self):
parse = self.parser.parse_source
input = """
More information about the Pypy-commit
mailing list