Fixed #16971 - Made the parsing of javascript files by 'makemessages' much faster. Thanks Antti Haapala for the implementation and Ned Batchelder for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16924 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
f3304d3310
commit
2a044732f6
1
AUTHORS
1
AUTHORS
|
@ -222,6 +222,7 @@ answer newbie questions, and generally made Django that much better:
|
|||
Janos Guljas
|
||||
Thomas Güttler <hv@tbz-pariv.de>
|
||||
Horst Gutmann <zerok@zerokspot.com>
|
||||
Antti Haapala <antti@industrialwebandmagic.com>
|
||||
Scot Hacker <shacker@birdhouse.org>
|
||||
dAniel hAhler
|
||||
hambaloney
|
||||
|
|
|
@ -51,19 +51,25 @@ class Lexer(object):
|
|||
|
||||
Yields pairs (`name`, `tokentext`).
|
||||
"""
|
||||
while text:
|
||||
eaten = 0
|
||||
for match in self.regexes[self.state].finditer(text):
|
||||
for name, toktext in match.groupdict().iteritems():
|
||||
if toktext is not None:
|
||||
tok = self.toks[name]
|
||||
new_state = tok.next
|
||||
eaten += len(toktext)
|
||||
yield (tok.name, toktext)
|
||||
if new_state:
|
||||
self.state = new_state
|
||||
end = len(text)
|
||||
state = self.state
|
||||
regexes = self.regexes
|
||||
toks = self.toks
|
||||
start = 0
|
||||
|
||||
while start < end:
|
||||
for match in regexes[state].finditer(text, start):
|
||||
name = match.lastgroup
|
||||
tok = toks[name]
|
||||
toktext = match.group(name)
|
||||
start += len(toktext)
|
||||
yield (tok.name, toktext)
|
||||
|
||||
if tok.next:
|
||||
state = tok.next
|
||||
break
|
||||
text = text[eaten:]
|
||||
|
||||
self.state = state
|
||||
|
||||
|
||||
class JsLexer(Lexer):
|
||||
|
|
Loading…
Reference in New Issue