]> granicus.if.org Git - python/commitdiff
New version from Jeffrey after I complained about some glaring bugs.
authorGuido van Rossum <guido@python.org>
Fri, 11 Jul 1997 11:08:38 +0000 (11:08 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 11 Jul 1997 11:08:38 +0000 (11:08 +0000)
Lib/re.py
Modules/reopmodule.c

index 016cd68a5ecda7af8ceef00f6c978fb908c428e9..60dcb8b3b05ec6161320d968911d1f9f753f4140 100644 (file)
--- a/Lib/re.py
+++ b/Lib/re.py
@@ -137,7 +137,7 @@ class MatchObject:
            except (KeyError, TypeError):
                raise IndexError
        return self.regs[i]
-    def group(i):
+    def group(self, i):
        if type(i) == type(''):
            try:
                i = self.re.groupindex[i]
@@ -188,12 +188,13 @@ class Set(Instruction):
     name = 'set'
     def __init__(self, set):
        self.set = set
+       print set
        Instruction.__init__(self, chr(3), 33)
-    def assemble_set(self, position, labels):
+    def assemble(self, position, labels):
        result = self.opcode
        temp = 0
        for i, c in map(lambda x: (x, chr(x)), range(256)):
-           if c in self.set[2]:
+           if c in self.set:
                temp = temp | (1 << (i & 7))
            if (i % 8) == 7:
                result = result + chr(temp)
@@ -203,7 +204,7 @@ class Set(Instruction):
        result = '%-15s' % (self.name)
        self.set.sort()
        for char in self.set:
-           result = result + `char`
+           result = result + char
        return result
     
 class Exact(Instruction):
@@ -768,7 +769,7 @@ def compile(pattern, flags=0):
                expr.append(Label(label))
                label = label + 1
 
-           if stack[-1][0][1] > 0:
+           if stack[-1][0].register > 0:
                expr = [StartMemory(stack[-1][0].register)] + \
                       expr + \
                       [EndMemory(stack[-1][0].register)]
@@ -1075,7 +1076,6 @@ def compile(pattern, flags=0):
                    if next not in set:
                        set.append(next)
                    last = next
-
            if pattern[index] != ']':
                raise error, 'incomplete set'
 
index 0d12210cc6fd9afd029625c33603c96b13e8a0cb..2ac467f824b9c5a10faf2c05f26bd3b3e908cd8f 100644 (file)
@@ -119,6 +119,10 @@ reop_match(self, args)
                PyErr_SetString(ReopError, "match failure");
                return NULL;
        }
+       if (result == -1) {
+               Py_INCREF(Py_None);
+               return Py_None;
+       }
        return makeresult(&re_regs, num_regs);
 }
 
@@ -162,6 +166,10 @@ reop_search(self, args)
                PyErr_SetString(ReopError, "match failure");
                return NULL;
        }
+       if (result == -1) {
+               Py_INCREF(Py_None);
+               return Py_None;
+       }
        return makeresult(&re_regs, num_regs);
 }