Re: [LTP] [PATCH 0/7] docparse improvements

Cyril Hrubis
2021-10-27T13:48:14Z

Hi!
> It's unfortunate that before starting this effort and the checker that
> we didn't know about tree-sitter (although Sparse may still be the best
> choice for the checker).
>
> Tree-sitter can parse C into an AST and can easily be vendored into LTP:
> https://tree-sitter.github.io/tree-sitter/using-parsers#building-the-library
>
> Then we just need to work on the level of the AST. It also has a query
> language. This should allow the initial matching to be done on a high
> level.

The only worry that I have about this would be speed, currently the code
I wrote takes a few second to process thousands of C files in LTP, that
is because we take a lot of shortcuts and ignore all the stuff we do not
need. Full parser that builds AST would be orders of magnitude slower,
so before we attempt to use it it should be benchmarked properly to see
if it's fast enough.

> If we continue down the path of hand parsing C, then it will most likely
> result in constant tweaks and additions.

Well I would say that this patchset is the last addition for the parser,
if we ever need anything more complex we should really switch to
something else. On the other hand I do not think that we will ever need
more complexity in the parser than this, as long as we keep things sane.

--
Cyril Hrubis
chrubis@suse.cz