| 
									
										
										
										
											1991-12-30 16:03:05 +00:00
										 |  |  | # Provide backward compatibility for module "regexp" using "regex". | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import regex | 
					
						
							|  |  |  | from regex_syntax import * | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Prog: | 
					
						
							| 
									
										
										
										
											1993-12-17 15:25:27 +00:00
										 |  |  | 	def __init__(self, pat): | 
					
						
							| 
									
										
										
										
											1991-12-30 16:03:05 +00:00
										 |  |  | 		save_syntax = regex.set_syntax(RE_SYNTAX_AWK) | 
					
						
							|  |  |  | 		try: | 
					
						
							|  |  |  | 			self.prog = regex.compile(pat) | 
					
						
							|  |  |  | 		finally: | 
					
						
							|  |  |  | 			xxx = regex.set_syntax(save_syntax) | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 	def match(self, str, offset = 0): | 
					
						
							| 
									
										
										
										
											1991-12-30 16:03:05 +00:00
										 |  |  | 		if self.prog.search(str, offset) < 0: | 
					
						
							|  |  |  | 			return () | 
					
						
							| 
									
										
										
										
											1992-01-01 19:33:02 +00:00
										 |  |  | 		regs = self.prog.regs | 
					
						
							| 
									
										
										
										
											1991-12-30 16:03:05 +00:00
										 |  |  | 		i = len(regs) | 
					
						
							| 
									
										
										
										
											1992-01-01 19:33:02 +00:00
										 |  |  | 		while i > 0 and regs[i-1] == (-1, -1): | 
					
						
							| 
									
										
										
										
											1991-12-30 16:03:05 +00:00
										 |  |  | 			i = i-1 | 
					
						
							|  |  |  | 		return regs[:i] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def compile(pat): | 
					
						
							| 
									
										
										
										
											1993-12-17 15:25:27 +00:00
										 |  |  | 	return Prog(pat) | 
					
						
							| 
									
										
										
										
											1991-12-30 16:03:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | cache_pat = None | 
					
						
							|  |  |  | cache_prog = None | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def match(pat, str): | 
					
						
							|  |  |  | 	global cache_pat, cache_prog | 
					
						
							|  |  |  | 	if pat <> cache_pat: | 
					
						
							|  |  |  | 		cache_pat, cache_prog = pat, compile(pat) | 
					
						
							|  |  |  | 	return cache_prog.match(str) |