[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