Skip to content

Commit 0da2aa1

Browse files
committed
move away from emitCurrentToken; part 1 / ...
--HG-- extra : convert_revision : svn%3Aacbfec75-9323-0410-a652-858a13e371e0/trunk%40381
1 parent 1c93118 commit 0da2aa1

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

src/tokenizer.py

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,6 @@ def emitCurrentToken(self):
274274

275275
# Add token to the queue to be yielded
276276
self.tokenQueue.append(token)
277-
278277
self.state = self.states["data"]
279278

280279
def emitCurrentTokenWithParseError(self, data=None):
@@ -596,13 +595,14 @@ def attributeValueUnQuotedState(self):
596595
def bogusCommentState(self):
597596
# Make a new comment token and give it as value all the characters
598597
# until the first > or EOF (charsUntil checks for EOF automatically)
599-
self.currentToken =\
600-
{"type": "Comment", "data": self.stream.charsUntil((u">"))}
601-
self.emitCurrentToken()
598+
# and emit it.
599+
self.tokenQueue.append(
600+
{"type": "Comment", "data": self.stream.charsUntil((u">"))})
602601

603602
# Eat the character directly after the bogus comment which is either a
604603
# ">" or an EOF.
605604
self.stream.char()
605+
self.state = self.states["data"]
606606
return True
607607

608608
def markupDeclarationOpenState(self):
@@ -631,6 +631,7 @@ def commentState(self):
631631
if data == u"-":
632632
self.state = self.states["commentDash"]
633633
elif data == EOF:
634+
# XXX EMIT
634635
self.emitCurrentTokenWithParseError()
635636
else:
636637
self.currentToken["data"] += data + self.stream.charsUntil(u"-")
@@ -641,6 +642,7 @@ def commentDashState(self):
641642
if data == u"-":
642643
self.state = self.states["commentEnd"]
643644
elif data == EOF:
645+
# XXX EMIT
644646
self.emitCurrentTokenWithParseError()
645647
else:
646648
self.currentToken["data"] += u"-" + data +\
@@ -654,12 +656,14 @@ def commentDashState(self):
654656
def commentEndState(self):
655657
data = self.stream.char()
656658
if data == u">":
659+
# XXX EMIT
657660
self.emitCurrentToken()
658661
elif data == u"-":
659662
self.tokenQueue.append({"type": "ParseError", "data":
660663
_("Unexpected '--' sequence found in comment.")})
661664
self.currentToken["data"] += data
662665
elif data == EOF:
666+
# XXX EMIT
663667
self.emitCurrentTokenWithParseError()
664668
else:
665669
# XXX
@@ -690,9 +694,11 @@ def beforeDoctypeNameState(self):
690694
elif data == u">":
691695
# Character needs to be consumed per the specification so don't
692696
# invoke emitCurrentTokenWithParseError with "data" as argument.
697+
# XXX EMIT
693698
self.emitCurrentTokenWithParseError()
694699
elif data == EOF:
695-
self.emitCurrentTokenWithParseError(data)
700+
# XXX EMIT
701+
self.emitCurrentTokenWithParseError()
696702
else:
697703
self.currentToken["name"] = data
698704
self.state = self.states["doctypeName"]
@@ -705,9 +711,11 @@ def doctypeNameState(self):
705711
self.state = self.states["afterDoctypeName"]
706712
needsDoctypeCheck = True
707713
elif data == u">":
708-
self.emitCurrentToken()
714+
self.tokenQueue.append(self.currentToken)
715+
self.state = self.states["data"]
709716
elif data == EOF:
710-
self.emitCurrentTokenWithParseError(data)
717+
# XXX EMIT
718+
self.emitCurrentTokenWithParseError()
711719
else:
712720
# We can't just uppercase everything that arrives here. For
713721
# instance, non-ASCII characters.
@@ -727,9 +735,11 @@ def afterDoctypeNameState(self):
727735
if data in spaceCharacters:
728736
pass
729737
elif data == u">":
730-
self.emitCurrentToken()
738+
self.tokenQueue.append(self.currentToken)
739+
self.state = self.states["data"]
731740
elif data == EOF:
732741
self.currentToken["data"] = True
742+
# XXX EMIT
733743
self.emitCurrentTokenWithParseError(data)
734744
else:
735745
self.tokenQueue.append({"type": "ParseError", "data":
@@ -741,8 +751,10 @@ def afterDoctypeNameState(self):
741751
def bogusDoctypeState(self):
742752
data = self.stream.char()
743753
if data == u">":
744-
self.emitCurrentToken()
754+
self.tokenQueue.append(self.currentToken)
755+
self.state = self.states["data"]
745756
elif data == EOF:
757+
# XXX EMIT
746758
self.emitCurrentTokenWithParseError(data)
747759
else:
748760
pass

0 commit comments

Comments
 (0)