diff options
author | bptato <nincsnevem662@gmail.com> | 2023-12-30 02:01:31 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2023-12-30 02:01:31 +0100 |
commit | 2d1e5bdcfa3cdf3f3a0112da824f14eb1c83257d (patch) | |
tree | 5ad54332a782f3547b251ce5bdab29b45602778f | |
parent | cef949664ecfe865dad97529c30a1e806364517b (diff) | |
download | chawan-2d1e5bdcfa3cdf3f3a0112da824f14eb1c83257d.tar.gz |
Do not emit EOF token in tokenizer
Instead, pretend that one had been emitted after the main constructTree loop. (This way we can get rid of an unnecessary test.)
-rw-r--r-- | chame/htmlparser.nim | 6 | ||||
-rw-r--r-- | chame/htmltokenizer.nim | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/chame/htmlparser.nim b/chame/htmlparser.nim index 4da490de..defa3eb3 100644 --- a/chame/htmlparser.nim +++ b/chame/htmlparser.nim @@ -2917,8 +2917,7 @@ proc constructTree[Handle, Atom](parser: var HTML5Parser[Handle, Atom]) = else: token.s.delete(0..0) if parser.openElements.len == 0 or - parser.getNamespace(parser.adjustedCurrentNode) == Namespace.HTML or - token.t == EOF: + parser.getNamespace(parser.adjustedCurrentNode) == Namespace.HTML: parser.processInHTMLContent(token, parser.insertionMode) else: let oe = parser.adjustedCurrentNodeToken @@ -2942,7 +2941,8 @@ proc constructTree[Handle, Atom](parser: var HTML5Parser[Handle, Atom]) = else: parser.processInForeignContent(token) if parser.stopped: - break + return + parser.processInHTMLContent(Token[Atom](t: EOF), parser.insertionMode) proc finishParsing(parser: var HTML5Parser) = while parser.openElements.len > 0: diff --git a/chame/htmltokenizer.nim b/chame/htmltokenizer.nim index 34f52f45..1d56c918 100644 --- a/chame/htmltokenizer.nim +++ b/chame/htmltokenizer.nim @@ -326,7 +326,7 @@ iterator tokenize*[Atom](tokenizer: var Tokenizer[Atom]): Token[Atom] = tokenizer.flushChars() emit Token[Atom](t: CHARACTER_NULL) template emit_eof = - emit EOF + tokenizer.flushChars() running = false template emit_tok = #TODO this should only be checked for cases where a start tag could |