# 'grep'

import regexp
import string

def grep(expr, filename):
	match = regexp.compile(expr).match
	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]
			prefix = string.rjust(`lineno`, 3) + ': '
			print prefix + line
			if 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
