]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Adapted to new "regex" module.
authorGuido van Rossum <guido@python.org>
Tue, 31 Dec 1991 00:00:35 +0000 (00:00 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 31 Dec 1991 00:00:35 +0000 (00:00 +0000)
Introduced egrep() and emgrep() variants.
Use '==' for equality test.
.,

Lib/grep.py
Lib/lib-old/grep.py

index 767498bd3229f2d424bb584c965a3ca091e75dd0..bfee3f5e8e649835d376ae8174fe6c9115554a89 100644 (file)
@@ -1,24 +1,36 @@
 # 'grep'
 
-import regexp
+import regex
+from regex_syntax import *
 import string
 
-def grep(expr, filename):
-       match = regexp.compile(expr).match
+def grep(pat, filename):
+       return ggrep(RE_SYNTAX_GREP, pat, filename)
+
+def egrep(pat, filename):
+       return ggrep(RE_SYNTAX_EGREP, pat, filename)
+
+def emgrep(pat, filename):
+       return ggrep(RE_SYNTAX_EMACS, pat, filename)
+
+def ggrep(syntax, pat, filename):
+       syntax = regex.set_syntax(syntax)
+       try:
+               prog = regex.compile(pat)
+       finally:
+               syntax = regex.set_syntax(syntax)
        fp = open(filename, 'r')
        lineno = 0
        while 1:
                line = fp.readline()
                if not line: break
                lineno = lineno + 1
-               res = match(line)
-               if res:
-                       #print res
-                       start, end = res[0]
-                       if line[-1:] = '\n': line = line[:-1]
+               if prog.search(line) >= 0:
+                       if line[-1:] == '\n': line = line[:-1]
                        prefix = string.rjust(`lineno`, 3) + ': '
                        print prefix + line
-                       if 0:
+                       if 0: # XXX
+                               start, end = prog.regs()[0]
                                line = line[:start]
                                if '\t' not in line:
                                        prefix = ' ' * (len(prefix) + start)
@@ -27,6 +39,6 @@ def grep(expr, filename):
                                        for c in line:
                                                if c <> '\t': c = ' '
                                                prefix = prefix + c
-                               if start = end: prefix = prefix + '\\'
+                               if start == end: prefix = prefix + '\\'
                                else: prefix = prefix + '^'*(end-start)
                                print prefix
index 767498bd3229f2d424bb584c965a3ca091e75dd0..bfee3f5e8e649835d376ae8174fe6c9115554a89 100644 (file)
@@ -1,24 +1,36 @@
 # 'grep'
 
-import regexp
+import regex
+from regex_syntax import *
 import string
 
-def grep(expr, filename):
-       match = regexp.compile(expr).match
+def grep(pat, filename):
+       return ggrep(RE_SYNTAX_GREP, pat, filename)
+
+def egrep(pat, filename):
+       return ggrep(RE_SYNTAX_EGREP, pat, filename)
+
+def emgrep(pat, filename):
+       return ggrep(RE_SYNTAX_EMACS, pat, filename)
+
+def ggrep(syntax, pat, filename):
+       syntax = regex.set_syntax(syntax)
+       try:
+               prog = regex.compile(pat)
+       finally:
+               syntax = regex.set_syntax(syntax)
        fp = open(filename, 'r')
        lineno = 0
        while 1:
                line = fp.readline()
                if not line: break
                lineno = lineno + 1
-               res = match(line)
-               if res:
-                       #print res
-                       start, end = res[0]
-                       if line[-1:] = '\n': line = line[:-1]
+               if prog.search(line) >= 0:
+                       if line[-1:] == '\n': line = line[:-1]
                        prefix = string.rjust(`lineno`, 3) + ': '
                        print prefix + line
-                       if 0:
+                       if 0: # XXX
+                               start, end = prog.regs()[0]
                                line = line[:start]
                                if '\t' not in line:
                                        prefix = ' ' * (len(prefix) + start)
@@ -27,6 +39,6 @@ def grep(expr, filename):
                                        for c in line:
                                                if c <> '\t': c = ' '
                                                prefix = prefix + c
-                               if start = end: prefix = prefix + '\\'
+                               if start == end: prefix = prefix + '\\'
                                else: prefix = prefix + '^'*(end-start)
                                print prefix