Modified:
branches/groups/src/esmre.py
Log:
Refactor: separate root state actions from state transitions.
Modified: branches/groups/src/esmre.py
==============================================================================
--- branches/groups/src/esmre.py (original)
+++ branches/groups/src/esmre.py Wed Oct 1 08:18:06 2008
@@ -87,8 +87,6 @@
if ch in "?*":
self.to_append = ""
self.hints.append("")
-
- return self
elif ch in "+.^$":
if self.to_append:
@@ -96,8 +94,6 @@
self.to_append = ""
self.hints.append("")
-
- return self
elif ch == "(":
if self.to_append:
@@ -105,8 +101,6 @@
self.to_append = ""
self.hints.append("")
-
- return InGroupState(self)
elif ch == "[":
if self.to_append:
@@ -114,8 +108,6 @@
self.to_append = ""
self.hints.append("")
-
- return InClassState(self)
elif ch == "{":
if self.to_append:
@@ -124,8 +116,6 @@
self.to_append = ""
self.hints.append("")
- return InBracesState(self)
-
elif ch == "\\":
if self.to_append:
self.hints[-1] += self.to_append
@@ -133,19 +123,42 @@
self.to_append = ""
self.hints.append("")
- return InBackslashState(self)
-
elif ch == "|":
self.hints = []
- raise StopIteration
else:
if self.to_append:
self.hints[-1] += self.to_append
self.to_append = ch
+
+
+
+
+ if ch in "?*":
+ return self
+
+ elif ch in "+.^$":
+ return self
+
+ elif ch == "(":
+ return InGroupState(self)
+
+ elif ch == "[":
+ return InClassState(self)
+
+ elif ch == "{":
+ return InBracesState(self)
+
+ elif ch == "\\":
+ return InBackslashState(self)
+ elif ch == "|":
+ raise StopIteration
+
+ else:
return self
+
def hints(regex):
state = RootState()