diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2018-08-31 12:24:43 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-11-13 11:17:31 +0100 |
commit | ee26c9eb4cc422fb229d083c122aa3323145fc0f (patch) | |
tree | 8449963de109ddb8e8b9559119b12802779af83a | |
parent | 8912cdca1ecd7ca69aad8b14817190a05fb7e83f (diff) | |
download | tracker-ee26c9eb4cc422fb229d083c122aa3323145fc0f.tar.gz |
libtracker-data: Make ';' separator between updates optional again
This is a Tracker extension to the SPARQL1.1 syntax.
-rw-r--r-- | src/libtracker-data/tracker-sparql-grammar.h | 6 | ||||
-rw-r--r-- | src/libtracker-data/tracker-sparql.c | 8 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/libtracker-data/tracker-sparql-grammar.h b/src/libtracker-data/tracker-sparql-grammar.h index 4109cb75f..2ade748de 100644 --- a/src/libtracker-data/tracker-sparql-grammar.h +++ b/src/libtracker-data/tracker-sparql-grammar.h @@ -1451,8 +1451,12 @@ static const TrackerGrammarRule helper_Prologue_gte0[] = { OR(helper_Prologue_or static const TrackerGrammarRule rule_Prologue[] = { GTE0 (helper_Prologue_gte0), NIL }; /* Update ::= Prologue ( Update1 ( ';' Update )? )? + * + * TRACKER EXTENSION: + * ';' separator is made optional. */ -static const TrackerGrammarRule helper_Update_seq_1[] = { L(SEMICOLON), R(Update), NIL }; +static const TrackerGrammarRule helper_Update_opt_3[] = { L(SEMICOLON), NIL }; +static const TrackerGrammarRule helper_Update_seq_1[] = { OPT(helper_Update_opt_3), R(Update), NIL }; static const TrackerGrammarRule helper_Update_opt_1[] = { S (helper_Update_seq_1), NIL }; static const TrackerGrammarRule helper_Update_seq_2[] = { R(Update1), OPT (helper_Update_opt_1), NIL }; static const TrackerGrammarRule helper_Update_opt_2[] = { S(helper_Update_seq_2), NIL }; diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c index 4998deeca..a7eac02e2 100644 --- a/src/libtracker-data/tracker-sparql.c +++ b/src/libtracker-data/tracker-sparql.c @@ -1647,6 +1647,9 @@ translate_Update (TrackerSparql *sparql, GError **error) { /* Update ::= Prologue ( Update1 ( ';' Update )? )? + * + * TRACKER EXTENSION: + * ';' separator is made optional. */ _call_rule (sparql, NAMED_RULE_Prologue, error); @@ -1659,9 +1662,10 @@ translate_Update (TrackerSparql *sparql, if (sparql->blank_nodes) g_variant_builder_close (sparql->blank_nodes); - if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_SEMICOLON)) { + _accept (sparql, RULE_TYPE_LITERAL, LITERAL_SEMICOLON); + + if (_check_in_rule (sparql, NAMED_RULE_Update)) _call_rule (sparql, NAMED_RULE_Update, error); - } } return TRUE; |