@@ -234,17 +234,18 @@ def __init__(self, parser, tree):
234
234
235
235
def processEOF (self ):
236
236
self .tree .generateImpliedEndTags ()
237
- if (len (self .tree .openElements ) > 2 or
238
- (len (self .tree .openElements ) == 2 and
239
- self .tree .openElements [1 ].name != "body" )):
240
- self .parser .parseError (_ ("Unexpected end of file. Missing body or html closing tags" ))
241
- if self .parser .innerHTML and len (self .tree .openElements ) > 1 :
242
- # XXX No need to check for "body" because our EOF handling is not
243
- # per specification. (Specification needs an update.)
244
- #
245
- # XXX Need to check this more carefully in the future.
246
- self .parser .parseError ()
247
- # Stop parsing
237
+ if len (self .tree .openElements ) > 2 :
238
+ self .parser .parseError (_ ("Unexpected end of file. Missing closing "
239
+ "tags" ))
240
+ elif len (self .tree .openElements ) == 2 and \
241
+ self .tree .openElements [1 ].name != "body" :
242
+ # This happens for framesets or something?
243
+ self .parser .parseError (_ ("XXXXX FRAMESET?" ))
244
+ elif self .parser .innerHTML and len (self .tree .openElements ) > 1 :
245
+ # XXX This is not what the specification says. Not sure what to do
246
+ # here.
247
+ self .parser .parseError (_ ("XXX innerHTML EOF" ))
248
+ # Betting ends.
248
249
249
250
def processComment (self , data ):
250
251
# For most phases the following is correct. Where it's not it will be
@@ -796,7 +797,8 @@ def startTagMisplaced(self, name, attributes):
796
797
"option", "optgroup", "tbody", "td", "tfoot", "th", "thead",
797
798
"tr", "noscript"
798
799
"""
799
- self .parser .parseError ()
800
+ self .parser .parseError (_ ("Unexpected start tag (" + name + \
801
+ "). Ignored." ))
800
802
801
803
def startTagNew (self , name , other ):
802
804
"""New HTML5 elements, "event-source", "section", "nav",
@@ -1133,7 +1135,8 @@ def endTagTable(self, name):
1133
1135
# innerHTML case
1134
1136
1135
1137
def endTagIgnore (self , name ):
1136
- self .parser .parseError ()
1138
+ self .parser .parseError (_ ("Unexpected end tag (" + name + \
1139
+ "). Ignored." ))
1137
1140
1138
1141
def endTagOther (self , name ):
1139
1142
# Make all the special element rearranging voodoo kick in
@@ -1200,7 +1203,8 @@ def endTagTable(self, name):
1200
1203
self .parser .phase .processStartTag (name , attributes )
1201
1204
1202
1205
def endTagIgnore (self , name ):
1203
- self .parser .parseError ()
1206
+ self .parser .parseError (_ ("Unexpected end tag (" + name + \
1207
+ "). Ignored." ))
1204
1208
1205
1209
def endTagOther (self , name ):
1206
1210
self .parser .phases ["inBody" ].processEndTag (name )
@@ -1334,7 +1338,8 @@ def endTagTable(self, name):
1334
1338
self .parser .parseError ()
1335
1339
1336
1340
def endTagIgnore (self , name ):
1337
- self .parser .parseError ()
1341
+ self .parser .parseError (_ ("Unexpected end tag (" + name + \
1342
+ "). Ignored." ))
1338
1343
1339
1344
def endTagOther (self , name ):
1340
1345
self .parser .phases ["inTable" ].processEndTag (name )
@@ -1411,7 +1416,8 @@ def endTagTableRowGroup(self, name):
1411
1416
self .parser .parseError ()
1412
1417
1413
1418
def endTagIgnore (self , name ):
1414
- self .parser .parseError ()
1419
+ self .parser .parseError (_ ("Unexpected end tag (" + name + \
1420
+ "). Ignored." ))
1415
1421
1416
1422
def endTagOther (self , name ):
1417
1423
self .parser .phases ["inTable" ].processEndTag (name )
@@ -1465,7 +1471,8 @@ def endTagTableCell(self, name):
1465
1471
if self .tree .elementInScope (name , True ):
1466
1472
self .tree .generateImpliedEndTags (name )
1467
1473
if self .tree .openElements [- 1 ].name != name :
1468
- self .parser .parseError ()
1474
+ self .parser .parseError ("Got end tag (" + name + \
1475
+ ") while required end tags are missing." )
1469
1476
while True :
1470
1477
node = self .tree .openElements .pop ()
1471
1478
if node .name == name :
@@ -1475,10 +1482,12 @@ def endTagTableCell(self, name):
1475
1482
self .tree .clearActiveFormattingElements ()
1476
1483
self .parser .phase = self .parser .phases ["inRow" ]
1477
1484
else :
1478
- self .parser .parseError ()
1485
+ self .parser .parseError (_ ("Unexpected end tag (" + name + \
1486
+ "). Ignored." ))
1479
1487
1480
1488
def endTagIgnore (self , name ):
1481
- self .parser .parseError ()
1489
+ self .parser .parseError (_ ("Unexpected end tag (" + name + \
1490
+ "). Ignored." ))
1482
1491
1483
1492
def endTagImply (self , name ):
1484
1493
if self .tree .elementInScope (name , True ):
0 commit comments