Skip to content
  • Carlos Garnacho's avatar
    libtracker-data: Add TrackerSparqlParser and helpers · 6dfed830
    Carlos Garnacho authored
    This struct takes the query text and a root rule that will work as the
    starting point to generate the expression tree that represents the query.
    This expression tree has a virtually identical structure to the formed
    by the rules themselves, with the only difference that ?/+/* rules may
    have none or many nodes representing a single rule.
    
    The parser does not do anything beyond a syntactic interpretation of the
    query, the expression tree nodes contain a pointer to the rule that
    generated them, plus start/end points of the text in the query, so an
    upper layer can do the actual ontology validations, and generate the SQL.
    
    The two entry points are tracker_sparql_parse_query/update, that correspond
    to the QueryUnit/UpdateUnit entry points defined in the SPARQL grammar.
    6dfed830