Scope, implied end tags, another scope check (detailed review of parsing algorithm)

(This is part of my detailed review the parsing algorithm.)

For some elements the spec says:
> If the stack of open elements has an element in scope with the same  
> tag name as that of the token, then generate implied end tags.
>
> Now, if the current node is not an element with the same tag name  
> as that of the token, then this is a parse error.
>
> If the stack of open elements has an element in scope with the same  
> tag name as that of the token, then pop elements from this stack  
> until an element with that tag name has been popped from the stack.

I can't figure out you one might get the stack in such a state that  
the "generate implied end tags" step changed the situation so that  
the second "If the stack of open elements has an element in scope"  
found a different node than the first "If the stack of open elements  
has an element in scope".

Am I right? If yes, it would make sense to write this is a way that  
doesn't suggest that implementors search the stack twice.

-- 
Henri Sivonen
hsivonen@iki.fi
http://hsivonen.iki.fi/

Received on Thursday, 5 July 2007 06:41:45 UTC