Skip to content

Rewrite TTL parser

Carlos Garnacho requested to merge wip/carlosg/ttl-parser into master

From the main commit:

    Instead of tapping on the old TrackerSparqlScanner, use the grammar
    definitions from the new parser. Also rewrite it in C.
    
    This allows us to drop a whole bunch of the older parser code, which
    only stood there to parse TTL files efficiently. The new SPARQL parser
    code is designed to generate an intermediate expression tree, which is
    great to increase liberty at the time of interpreting it, but not so great
    at the time of deserializing randomly sized blobs of TTL data.
    
    Even though this new TTL parser doesn't 100% use the infrastructure of
    the new SPARQL parser, it taps on it for the essentials (parsing the
    subject/predicate/object terminals), and also allows incremental TTL
    loading without memory peaks. The advantages of the old TTL parser
    (and the only reason why it stuck) are now moot.

Merge request reports