Author: Romain Guillebert <romain...@gmail.com>
Branch: py3k
Changeset: r51366:d745dbc657b4
Date: 2012-01-16 18:25 +0100
http://bitbucket.org/pypy/pypy/changeset/d745dbc657b4/

Log:    Reject old octal literals

diff --git a/pypy/interpreter/pycode.py b/pypy/interpreter/pycode.py
--- a/pypy/interpreter/pycode.py
+++ b/pypy/interpreter/pycode.py
@@ -143,7 +143,7 @@
             elif opcode == opcodedesc.LOAD_NAME.index:
                 self.co_flags |= CO_CONTAINSGLOBALS
 
-    co_names = property(lambda self: [self.space.unwrap(w_name) for w_name in 
self.co_names_w]) # for trace
+    co_names = property(lambda self: [self.space.str_w(w_name) for w_name in 
self.co_names_w]) # for trace
 
     def signature(self):
         return self._signature
diff --git a/pypy/interpreter/pyparser/genpytokenize.py 
b/pypy/interpreter/pyparser/genpytokenize.py
--- a/pypy/interpreter/pyparser/genpytokenize.py
+++ b/pypy/interpreter/pyparser/genpytokenize.py
@@ -63,10 +63,8 @@
                                   groupStr(states, "0123456789abcdefABCDEF")))
     octNumber = chain(states,
                       newArcPair(states, "0"),
-                      maybe(states,
-                            chain(states,
-                                  groupStr(states, "oO"),
-                                  groupStr(states, "01234567"))),
+                      groupStr(states, "oO"),
+                      groupStr(states, "01234567"),
                       any(states, groupStr(states, "01234567")))
     binNumber = chain(states,
                       newArcPair(states, "0"),
@@ -75,7 +73,8 @@
     decNumber = chain(states,
                       groupStr(states, "123456789"),
                       any(states, makeDigits()))
-    intNumber = group(states, hexNumber, octNumber, binNumber, decNumber)
+    zero = newArcPair(states, "0")
+    intNumber = group(states, hexNumber, octNumber, binNumber, decNumber, zero)
     # ____________________________________________________________
     # Exponents
     def makeExp ():
diff --git a/pypy/interpreter/pyparser/pytokenize.py 
b/pypy/interpreter/pyparser/pytokenize.py
--- a/pypy/interpreter/pyparser/pytokenize.py
+++ b/pypy/interpreter/pyparser/pytokenize.py
@@ -25,10 +25,10 @@
 
 accepts = [True, True, True, True, True, True, True, True,
            True, True, False, True, True, True, True, False,
-           False, False, True, False, False, True, False,
-           False, True, False, True, False, True, False,
-           False, True, False, False, True, True, True,
-           False, False, True, False, False, False, True]
+           False, False, True, False, False, False, False,
+           True, False, True, False, True, False, False,
+           True, False, False, True, True, True, False,
+           False, True, False, False, False, True]
 states = [
     # 0
     {'\t': 0, '\n': 13, '\x0c': 0,
@@ -110,21 +110,21 @@
      'v': 1, 'w': 1, 'x': 1, 'y': 1,
      'z': 1},
     # 4
-    {'.': 24, '0': 21, '1': 21, '2': 21,
-     '3': 21, '4': 21, '5': 21, '6': 21,
-     '7': 21, '8': 23, '9': 23, 'B': 22,
-     'E': 25, 'J': 13, 'O': 20, 'X': 19,
-     'b': 22, 'e': 25, 'j': 13, 'o': 20,
+    {'.': 23, '0': 22, '1': 22, '2': 22,
+     '3': 22, '4': 22, '5': 22, '6': 22,
+     '7': 22, '8': 22, '9': 22, 'B': 21,
+     'E': 24, 'J': 13, 'O': 20, 'X': 19,
+     'b': 21, 'e': 24, 'j': 13, 'o': 20,
      'x': 19},
     # 5
-    {'.': 24, '0': 5, '1': 5, '2': 5,
+    {'.': 23, '0': 5, '1': 5, '2': 5,
      '3': 5, '4': 5, '5': 5, '6': 5,
-     '7': 5, '8': 5, '9': 5, 'E': 25,
-     'J': 13, 'e': 25, 'j': 13},
+     '7': 5, '8': 5, '9': 5, 'E': 24,
+     'J': 13, 'e': 24, 'j': 13},
     # 6
-    {'0': 26, '1': 26, '2': 26, '3': 26,
-     '4': 26, '5': 26, '6': 26, '7': 26,
-     '8': 26, '9': 26},
+    {'0': 25, '1': 25, '2': 25, '3': 25,
+     '4': 25, '5': 25, '6': 25, '7': 25,
+     '8': 25, '9': 25},
     # 7
     {'*': 12, '=': 13},
     # 8
@@ -142,105 +142,100 @@
     # 14
     {'\n': 13},
     # 15
-    {automata.DEFAULT: 30, '\n': 27,
-     '\r': 27, "'": 28, '\\': 29},
+    {automata.DEFAULT: 29, '\n': 26,
+     '\r': 26, "'": 27, '\\': 28},
     # 16
-    {automata.DEFAULT: 33, '\n': 27,
-     '\r': 27, '"': 31, '\\': 32},
+    {automata.DEFAULT: 32, '\n': 26,
+     '\r': 26, '"': 30, '\\': 31},
     # 17
     {'\n': 13, '\r': 14},
     # 18
-    {automata.DEFAULT: 18, '\n': 27, '\r': 27},
+    {automata.DEFAULT: 18, '\n': 26, '\r': 26},
     # 19
+    {'0': 33, '1': 33, '2': 33, '3': 33,
+     '4': 33, '5': 33, '6': 33, '7': 33,
+     '8': 33, '9': 33, 'A': 33, 'B': 33,
+     'C': 33, 'D': 33, 'E': 33, 'F': 33,
+     'a': 33, 'b': 33, 'c': 33, 'd': 33,
+     'e': 33, 'f': 33},
+    # 20
     {'0': 34, '1': 34, '2': 34, '3': 34,
-     '4': 34, '5': 34, '6': 34, '7': 34,
-     '8': 34, '9': 34, 'A': 34, 'B': 34,
-     'C': 34, 'D': 34, 'E': 34, 'F': 34,
-     'a': 34, 'b': 34, 'c': 34, 'd': 34,
-     'e': 34, 'f': 34},
-    # 20
-    {'0': 35, '1': 35, '2': 35, '3': 35,
-     '4': 35, '5': 35, '6': 35, '7': 35},
+     '4': 34, '5': 34, '6': 34, '7': 34},
     # 21
-    {'.': 24, '0': 21, '1': 21, '2': 21,
-     '3': 21, '4': 21, '5': 21, '6': 21,
-     '7': 21, '8': 23, '9': 23, 'E': 25,
-     'J': 13, 'e': 25, 'j': 13},
+    {'0': 35, '1': 35},
     # 22
-    {'0': 36, '1': 36},
+    {'.': 23, '0': 22, '1': 22, '2': 22,
+     '3': 22, '4': 22, '5': 22, '6': 22,
+     '7': 22, '8': 22, '9': 22, 'E': 24,
+     'J': 13, 'e': 24, 'j': 13},
     # 23
-    {'.': 24, '0': 23, '1': 23, '2': 23,
-     '3': 23, '4': 23, '5': 23, '6': 23,
-     '7': 23, '8': 23, '9': 23, 'E': 25,
-     'J': 13, 'e': 25, 'j': 13},
+    {'0': 23, '1': 23, '2': 23, '3': 23,
+     '4': 23, '5': 23, '6': 23, '7': 23,
+     '8': 23, '9': 23, 'E': 36, 'J': 13,
+     'e': 36, 'j': 13},
     # 24
-    {'0': 24, '1': 24, '2': 24, '3': 24,
-     '4': 24, '5': 24, '6': 24, '7': 24,
-     '8': 24, '9': 24, 'E': 37, 'J': 13,
-     'e': 37, 'j': 13},
+    {'+': 37, '-': 37, '0': 38, '1': 38,
+     '2': 38, '3': 38, '4': 38, '5': 38,
+     '6': 38, '7': 38, '8': 38, '9': 38},
     # 25
-    {'+': 38, '-': 38, '0': 39, '1': 39,
-     '2': 39, '3': 39, '4': 39, '5': 39,
-     '6': 39, '7': 39, '8': 39, '9': 39},
+    {'0': 25, '1': 25, '2': 25, '3': 25,
+     '4': 25, '5': 25, '6': 25, '7': 25,
+     '8': 25, '9': 25, 'E': 36, 'J': 13,
+     'e': 36, 'j': 13},
     # 26
-    {'0': 26, '1': 26, '2': 26, '3': 26,
-     '4': 26, '5': 26, '6': 26, '7': 26,
-     '8': 26, '9': 26, 'E': 37, 'J': 13,
-     'e': 37, 'j': 13},
+    {},
     # 27
-    {},
+    {"'": 13},
     # 28
-    {"'": 13},
+    {automata.DEFAULT: 39, '\n': 13, '\r': 14},
     # 29
+    {automata.DEFAULT: 29, '\n': 26,
+     '\r': 26, "'": 13, '\\': 28},
+    # 30
+    {'"': 13},
+    # 31
     {automata.DEFAULT: 40, '\n': 13, '\r': 14},
-    # 30
-    {automata.DEFAULT: 30, '\n': 27,
-     '\r': 27, "'": 13, '\\': 29},
-    # 31
-    {'"': 13},
     # 32
-    {automata.DEFAULT: 41, '\n': 13, '\r': 14},
+    {automata.DEFAULT: 32, '\n': 26,
+     '\r': 26, '"': 13, '\\': 31},
     # 33
-    {automata.DEFAULT: 33, '\n': 27,
-     '\r': 27, '"': 13, '\\': 32},
+    {'0': 33, '1': 33, '2': 33, '3': 33,
+     '4': 33, '5': 33, '6': 33, '7': 33,
+     '8': 33, '9': 33, 'A': 33, 'B': 33,
+     'C': 33, 'D': 33, 'E': 33, 'F': 33,
+     'a': 33, 'b': 33, 'c': 33, 'd': 33,
+     'e': 33, 'f': 33},
     # 34
     {'0': 34, '1': 34, '2': 34, '3': 34,
-     '4': 34, '5': 34, '6': 34, '7': 34,
-     '8': 34, '9': 34, 'A': 34, 'B': 34,
-     'C': 34, 'D': 34, 'E': 34, 'F': 34,
-     'a': 34, 'b': 34, 'c': 34, 'd': 34,
-     'e': 34, 'f': 34},
+     '4': 34, '5': 34, '6': 34, '7': 34},
     # 35
-    {'0': 35, '1': 35, '2': 35, '3': 35,
-     '4': 35, '5': 35, '6': 35, '7': 35},
+    {'0': 35, '1': 35},
     # 36
-    {'0': 36, '1': 36},
+    {'+': 41, '-': 41, '0': 42, '1': 42,
+     '2': 42, '3': 42, '4': 42, '5': 42,
+     '6': 42, '7': 42, '8': 42, '9': 42},
     # 37
-    {'+': 42, '-': 42, '0': 43, '1': 43,
-     '2': 43, '3': 43, '4': 43, '5': 43,
-     '6': 43, '7': 43, '8': 43, '9': 43},
+    {'0': 38, '1': 38, '2': 38, '3': 38,
+     '4': 38, '5': 38, '6': 38, '7': 38,
+     '8': 38, '9': 38},
     # 38
-    {'0': 39, '1': 39, '2': 39, '3': 39,
-     '4': 39, '5': 39, '6': 39, '7': 39,
-     '8': 39, '9': 39},
+    {'0': 38, '1': 38, '2': 38, '3': 38,
+     '4': 38, '5': 38, '6': 38, '7': 38,
+     '8': 38, '9': 38, 'J': 13, 'j': 13},
     # 39
-    {'0': 39, '1': 39, '2': 39, '3': 39,
-     '4': 39, '5': 39, '6': 39, '7': 39,
-     '8': 39, '9': 39, 'J': 13, 'j': 13},
+    {automata.DEFAULT: 39, '\n': 26,
+     '\r': 26, "'": 13, '\\': 28},
     # 40
-    {automata.DEFAULT: 40, '\n': 27,
-     '\r': 27, "'": 13, '\\': 29},
+    {automata.DEFAULT: 40, '\n': 26,
+     '\r': 26, '"': 13, '\\': 31},
     # 41
-    {automata.DEFAULT: 41, '\n': 27,
-     '\r': 27, '"': 13, '\\': 32},
+    {'0': 42, '1': 42, '2': 42, '3': 42,
+     '4': 42, '5': 42, '6': 42, '7': 42,
+     '8': 42, '9': 42},
     # 42
-    {'0': 43, '1': 43, '2': 43, '3': 43,
-     '4': 43, '5': 43, '6': 43, '7': 43,
-     '8': 43, '9': 43},
-    # 43
-    {'0': 43, '1': 43, '2': 43, '3': 43,
-     '4': 43, '5': 43, '6': 43, '7': 43,
-     '8': 43, '9': 43, 'J': 13, 'j': 13},
+    {'0': 42, '1': 42, '2': 42, '3': 42,
+     '4': 42, '5': 42, '6': 42, '7': 42,
+     '8': 42, '9': 42, 'J': 13, 'j': 13},
     ]
 pseudoDFA = automata.DFA(states, accepts)
 
@@ -304,6 +299,8 @@
     ]
 doubleDFA = automata.DFA(states, accepts)
 
+
+
 #_______________________________________________________________________
 # End of automatically generated DFA's
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to