summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2017-08-05 20:22:28 +0200
committerCarlos Garnacho <carlosg@gnome.org>2017-08-05 20:33:13 +0200
commit17962ffe75a82b68c8a7fe07f647db04c932cc27 (patch)
treee58405c23a92d85072156c4f27469b24597a41b9
parent484506255835776bb81bcaf49fe99d4728f980b8 (diff)
downloadtracker-17962ffe75a82b68c8a7fe07f647db04c932cc27.tar.gz
libtracker-data: Add optional() method for tokens that need no retval checks
Also makes code clearer, as accept() implies you may react differently on token availability. https://bugzilla.gnome.org/show_bug.cgi?id=785863
-rw-r--r--src/libtracker-data/tracker-sparql-pattern.vala4
-rw-r--r--src/libtracker-data/tracker-sparql-query.vala5
2 files changed, 9 insertions, 0 deletions
diff --git a/src/libtracker-data/tracker-sparql-pattern.vala b/src/libtracker-data/tracker-sparql-pattern.vala
index 37faf28dd..96efc1348 100644
--- a/src/libtracker-data/tracker-sparql-pattern.vala
+++ b/src/libtracker-data/tracker-sparql-pattern.vala
@@ -205,6 +205,10 @@ class Tracker.Sparql.Pattern : Object {
return query.accept (type);
}
+ inline void optional (SparqlTokenType type) throws Sparql.Error {
+ query.optional (type);
+ }
+
Sparql.Error get_error (string msg) {
return query.get_error (msg);
}
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index 32d31efa1..e611b0f38 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -347,6 +347,11 @@ public class Tracker.Sparql.Query : Object {
return false;
}
+ internal void optional (SparqlTokenType type) throws Sparql.Error {
+ if (current () == type)
+ next ();
+ }
+
internal Sparql.Error get_error (string msg) {
return new Sparql.Error.PARSE ("%d.%d: syntax error, %s".printf (tokens[index].begin.line, tokens[index].begin.column, msg));
}