From 33c3e8c2247eb0f5684fe0de3b0ba8cb51e03639 Mon Sep 17 00:00:00 2001 From: Andy C Date: Sat, 18 Jan 2025 01:37:26 -0500 Subject: [PATCH] [doctools/ul_table] Finish migrating away from TagLexer. It works! The code looks nice. --- doctools/ul_table.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/doctools/ul_table.py b/doctools/ul_table.py index caa54e245..1d61a7e07 100755 --- a/doctools/ul_table.py +++ b/doctools/ul_table.py @@ -57,10 +57,10 @@ def RemoveComments(s): class UlTableParser(object): - def __init__(self, lexer, tag_lexer): - # type: (htm8.Lexer, htm8.TagLexer) -> None + def __init__(self, lexer): + # type: (htm8.Lexer) -> None self.lexer = lexer - self.tag_lexer = tag_lexer + self.attr_lexer = htm8.AttrLexer(lexer.s) self.tok_id = h8_id.Invalid self.start_pos = 0 @@ -210,11 +210,12 @@ def _ListItem(self): balance = 0 while True: if self.tok_id == h8_id.StartEndTag: - self.tag_lexer.Reset(self.start_pos, self.end_pos) + self.attr_lexer.Init(self.tok_id, self.lexer.TagNamePos(), + self.end_pos) # TODO: remove td-attrs backward compat if self.tag_name in ('td-attrs', 'cell-attrs'): td_attrs_span = self.start_pos, self.end_pos - td_attrs = self.tag_lexer.AllAttrsRaw() + td_attrs = htm8.AllAttrsRaw(self.attr_lexer) #log('CELL ATTRS %r', self._CurrentString()) elif self.tok_id == h8_id.StartTag: @@ -347,11 +348,12 @@ def _ParseTr(self): tr_attrs = None if self.tok_id == h8_id.StartEndTag: - self.tag_lexer.Reset(self.start_pos, self.end_pos) + self.attr_lexer.Init(self.tok_id, self.lexer.TagNamePos(), + self.end_pos) if self.tag_name != 'row-attrs': raise htm8.ParseError('Expected row-attrs, got %r' % self.tag_name) - tr_attrs = self.tag_lexer.AllAttrsRaw() + tr_attrs = htm8.AllAttrsRaw(self.attr_lexer) self._Next() self._WhitespaceOk() @@ -480,10 +482,9 @@ def ReplaceTables(s, debug_out=None): f = StringIO() out = htm8.Output(s, f) - tag_lexer = htm8.TagLexer(s) lexer = htm8.Lexer(s) - p = UlTableParser(lexer, tag_lexer) + p = UlTableParser(lexer) while True: ul_start = p.FindUlTable()