Coding 2020-05-08

By Max Woerner Chase

Status on SCA² port/rewrite/I-don't-know: I've set up the code to implement matching via an automaton, but I haven't written the code required to generate an automaton, and expecting consumers to hand-write one would be... really bad.

I also haven't implemented targets yet, which is easy, I'll get it last.

Generating the automata shouldn't be a big deal; I just need to make sure my input format can handle everything. It basically needs to handle word boundary matching, geminates, wildcards, categories (possibly including boundary matches) and literals, as well as nesting to represent optional sections. The only interesting thing that it needs to be possible to do to the data for this is to reverse it. Actually generating it is just a matter of iterating over the data and accumulating it into the automaton.

All in all, I should have this ready to go soon, and then I can write tests for it, which will probably reveal all manner of fascinating things.

For now, though, I'll just be glad to have made some more progress.

(One thing of note is that I'm making a bunch of basically-arbitrary choices because the design is underconstrained. I haven't been able to predict what constraints could apply in the future, so I'm just making whichever choices make sense to me at the moment, since I don't have a stronger consideration yet.)

Good night.