Skip to content

Rewriting the Antlr parser #1990

@MKleusberg

Description

@MKleusberg

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 😄

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions