# 'grep' import regex from regex_syntax import * import string 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 if prog.search(line) >= 0: if line[-1:] == '\n': line = line[:-1] prefix = string.rjust(`lineno`, 3) + ': ' print prefix + line if 0: # XXX start, end = prog.regs()[0] line = line[:start] if '\t' not in line: prefix = ' ' * (len(prefix) + start) else: prefix = ' ' * len(prefix) for c in line: if c <> '\t': c = ' ' prefix = prefix + c if start == end: prefix = prefix + '\\' else: prefix = prefix + '^'*(end-start) print prefix