Progress has been unexpectedly slow, but the results are way better than expected! This ENB discusses the highlights.
*Milestones* Creating a separate file gave me a clean slate to play with. The new code diverges in many subtle ways from the old. I finally got a firm grip on performance issues. The code generators contained a rare O(N**2) botch. The code now gathers statistics that reveal such problems. The fix for the botch revealed new design principles: - The parser looks *ahead* (at most) one *input *token. - The code generators look *behind* (at most) one *output* token. - The parser creates *all *context for the code generators. - The code generators create *no* additional context. These principles guarantee O(N) performance. *To do* The parser must scan expressions to determine the exact context of slices (arrays) and dictionaries. This task will require managing additional *semantic* data. It's no big deal :-) *Summary* A new script file,* tbo.cmd*, contains four ways of calling the new beautifier. One of these ways highlights performance statistics. The parser simplifies the code generators and guarantees lightning-fast execution. The new beautifier is twice as fast as the old! The final result will *seem *easy and obvious. A look at the 250+ commits of PR #3757 <https://github.com/leo-editor/leo-editor/pull/3757> should dispel this notion :-) Edward -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/c099aa00-b754-4324-97d9-3d9d5a9c1ccfn%40googlegroups.com.