[esmre commit] r35 - branches/groups/src

0 views
Skip to first unread message

codesite...@google.com

unread,
Oct 1, 2008, 10:06:53 AM10/1/08
to esmre-c...@googlegroups.com
Author: wharris
Date: Wed Oct 1 07:06:30 2008
New Revision: 35

Modified:
branches/groups/src/esmre.py

Log:
Refactor: extract state for skipping braces.


Modified: branches/groups/src/esmre.py
==============================================================================
--- branches/groups/src/esmre.py (original)
+++ branches/groups/src/esmre.py Wed Oct 1 07:06:30 2008
@@ -45,12 +45,23 @@
return self


+class InBracesState(object):
+ def __init__(self, parent_state):
+ self.parent_state = parent_state
+
+ def process_byte(self, ch):
+ if ch == "}":
+ return self.parent_state
+
+ else:
+ return self
+
+
class RootState(object):
def __init__(self):
self.hints = [""]
self.to_append = ""
self.group_level = 0
- self.in_braces = False

def process_byte(self, ch):
next_state = self
@@ -71,13 +82,6 @@
else:
pass

- elif self.in_braces:
- if ch == "}":
- self.in_braces = False
-
- else:
- pass
-
else:
if ch in "?*":
self.to_append = ""
@@ -112,7 +116,7 @@

self.to_append = ""
self.hints.append("")
- self.in_braces = True
+ next_state = InBracesState(self)

elif ch == "\\":
if self.to_append:

Reply all
Reply to author
Forward
0 new messages