-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Description
Since refactoring the Browse Data tab (see #1972) turned out to be way less disruptive than I initially thought, it is now time for the next refactoring project. This time I aim to replace our SQLite parser which is generated by Antlr v2. After experimenting with traditional Boost Spirit, Spirit X3, Lemon, and Antlr v4, I have now prepared a working parser generated with one of the more traditional parser generators, flex and bison, which turned out to work really well.
This first version fully replaces our parser for CREATE INDEX
statements. CREATE TABLE
statements still run through the old parser. If anybody is interested, you can test the new parser by opening a database and check if all indices are parsed correctly. If any problems appear, just let me know here and I'll try to tweak the new parser.
The code is in the flex_bison_parser branch and can be reviewed. But I don't expect anybody to review the whole thing (which is also why I'm opening an issue and not a PR). Binaries were kindly built by Justin and can be downloaded here:
You can find some of the reasons for this step in the commit message in a6dfb51 but I'll probably add some more explanation in a follow-up comment here later 😄