From 0e8583fc9d5205bcc1149c5f625f90ed8232fcc6 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sun, 27 Dec 2015 23:51:24 +1300 Subject: [PATCH 01/18] JENA-632: Generate JSON from SPARQL directly --- jena-arq/Grammar/arq.jj | 75 +- jena-arq/Grammar/master.jj | 79 +- jena-arq/Grammar/sparql_11.jj | 75 +- .../java/org/apache/jena/query/Query.java | 12 + .../org/apache/jena/query/QueryExecution.java | 10 +- .../apache/jena/query/ResultSetFormatter.java | 29 + .../jena/sparql/engine/JsonIterator.java | 104 + .../sparql/engine/QueryExecutionBase.java | 44 +- .../sparql/engine/http/QueryEngineHTTP.java | 15 + .../jena/sparql/lang/arq/ARQParser.java | 1370 +++++++------ .../sparql/lang/arq/ARQParserConstants.java | 379 ++-- .../lang/arq/ARQParserTokenManager.java | 1738 +++++++++-------- .../sparql/lang/sparql_11/SPARQLParser11.java | 579 +++--- .../sparql_11/SPARQLParser11Constants.java | 365 ++-- .../sparql_11/SPARQLParser11TokenManager.java | 1680 ++++++++-------- .../jena/sparql/resultset/SPARQLResult.java | 47 + .../jena/fuseki/servlets/ResponseJson.java | 150 ++ .../jena/fuseki/servlets/SPARQL_Query.java | 11 + 18 files changed, 3860 insertions(+), 2902 deletions(-) create mode 100644 jena-arq/src/main/java/org/apache/jena/sparql/engine/JsonIterator.java create mode 100644 jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseJson.java diff --git a/jena-arq/Grammar/arq.jj b/jena-arq/Grammar/arq.jj index 51697352fcb..e28a0e0319f 100644 --- a/jena-arq/Grammar/arq.jj +++ b/jena-arq/Grammar/arq.jj @@ -36,7 +36,40 @@ import org.apache.jena.update.* ; import org.apache.jena.sparql.modify.request.* ; import org.apache.jena.sparql.core.Quad ; public class ARQParser extends ARQParserBase -{} +{ + boolean allowAggregatesInExpressions = false ; + public static void main(String args[]) { + while (true) { + StringBuilder queryString = new StringBuilder() ; + java.util.Scanner scanner = new java.util.Scanner(System.in) ; + boolean firstEmptyLine = false ; + System.out.print("Enter input: ") ; + while (true) { + String line = scanner.nextLine() ; + if ("".equals(line) || line == null) { + if (firstEmptyLine) break ; + firstEmptyLine = true ; + } else { + queryString.append(line + System.lineSeparator()) ; + firstEmptyLine = false ; + } + } + try { + Query query = QueryFactory.create(queryString.toString(), + "http://example/query-base", Syntax.syntaxARQ) ; + java.io.Reader in = new java.io.StringReader(queryString.toString()) ; + ARQParser parser = new ARQParser(in) ; + parser.setQuery(query) ; + parser.QueryUnit() ; + System.out.println("Parsed query successfully!") ; + System.out.println("---" + System.lineSeparator()) ; + } catch (Exception e) { + System.out.println("Parser error: " + e.getMessage()) ; + e.printStackTrace(System.err) ; + } + } + } +} PARSER_END(ARQParser) void QueryUnit(): { } { @@ -48,7 +81,7 @@ void QueryUnit(): { } void Query() : { } { Prologue() - ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() + ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() | JsonQuery() ) ValuesClause() } @@ -176,6 +209,33 @@ void AskQuery() : {} WhereClause() SolutionModifier() } +void JsonQuery() : {} +{ + JsonClause() + ( DatasetClause() )* + WhereClause() + SolutionModifier() +} +void JsonClause() : { Object o ; String s ; } +{ + { getQuery().setQueryJsonType() ; } + + s = String() < PNAME_NS > + ( + o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } + | o = String() { getQuery().addJsonMapping(s, o) ; } + | o = Number() { getQuery().addJsonMapping(s, o) ; } + ) + ( + s = String() < PNAME_NS > + ( + o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } + | o = String() { getQuery().addJsonMapping(s, o) ; } + | o = Number() { getQuery().addJsonMapping(s, o) ; } + ) + )* + +} void DatasetClause() : {} { @@ -1563,6 +1623,16 @@ String String() : { Token t ; String lex ; } return lex ; } } +Number Number() : { Token t ; Number number ; } +{ + ( + t = < INTEGER > { number = integerValue(t.image) ; } + | t = < DECIMAL > { number = doubleValue(t.image) ; } + ) + { + return number ; + } +} String iri() : { String iri ; } { iri = IRIREF() { return iri ; } @@ -1621,6 +1691,7 @@ TOKEN [IGNORE_CASE] : | < SELECT: "select" > | < DISTINCT: "distinct" > | < REDUCED: "reduced" > +| < JSON: "json" > | < DESCRIBE: "describe" > | < CONSTRUCT: "construct" > | < ASK: "ask" > diff --git a/jena-arq/Grammar/master.jj b/jena-arq/Grammar/master.jj index effbe1b8c2c..de395c01135 100644 --- a/jena-arq/Grammar/master.jj +++ b/jena-arq/Grammar/master.jj @@ -99,7 +99,41 @@ import org.apache.jena.sparql.core.Quad ; #endif public class CLASS extends PARSERBASE -{} +{ + boolean allowAggregatesInExpressions = false ; + + public static void main(String args[]) { + while (true) { + StringBuilder queryString = new StringBuilder() ; + java.util.Scanner scanner = new java.util.Scanner(System.in) ; + boolean firstEmptyLine = false ; + System.out.print("Enter input: ") ; + while (true) { + String line = scanner.nextLine() ; + if ("".equals(line) || line == null) { + if (firstEmptyLine) break ; + firstEmptyLine = true ; + } else { + queryString.append(line + System.lineSeparator()) ; + firstEmptyLine = false ; + } + } + try { + Query query = QueryFactory.create(queryString.toString(), + "http://example/query-base", Syntax.syntaxARQ) ; + java.io.Reader in = new java.io.StringReader(queryString.toString()) ; + CLASS parser = new CLASS(in) ; + parser.setQuery(query) ; + parser.QueryUnit() ; + System.out.println("Parsed query successfully!") ; + System.out.println("---" + System.lineSeparator()) ; + } catch (Exception e) { + System.out.println("Parser error: " + e.getMessage()) ; + e.printStackTrace(System.err) ; + } + } + } +} PARSER_END(CLASS) // // Common top for single entry point. @@ -121,7 +155,7 @@ void QueryUnit(): { } void Query() : { } { Prologue() - ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() + ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() | JsonQuery() // #ifdef ARQ // | JsonTemplateQuery() // #endif @@ -326,6 +360,35 @@ void AskQuery() : {} SolutionModifier() } +void JsonQuery() : {} +{ + JsonClause() + ( DatasetClause() )* + WhereClause() + SolutionModifier() +} + +void JsonClause() : { Object o ; String s ; } +{ + { getQuery().setQueryJsonType() ; } + + s = String() < PNAME_NS > + ( + o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } + | o = String() { getQuery().addJsonMapping(s, o) ; } + | o = Number() { getQuery().addJsonMapping(s, o) ; } + ) + ( + s = String() < PNAME_NS > + ( + o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } + | o = String() { getQuery().addJsonMapping(s, o) ; } + | o = Number() { getQuery().addJsonMapping(s, o) ; } + ) + )* + +} + // ---- void DatasetClause() : {} @@ -2176,6 +2239,17 @@ String String() : { Token t ; String lex ; } } } +Number Number() : { Token t ; Number number ; } +{ + ( + t = < INTEGER > { number = integerValue(t.image) ; } + | t = < DECIMAL > { number = doubleValue(t.image) ; } + ) + { + return number ; + } +} + String iri() : { String iri ; } { iri = IRIREF() { return iri ; } @@ -2276,6 +2350,7 @@ TOKEN [IGNORE_CASE] : | < SELECT: "select" > | < DISTINCT: "distinct" > | < REDUCED: "reduced" > +| < JSON: "json" > | < DESCRIBE: "describe" > | < CONSTRUCT: "construct" > | < ASK: "ask" > diff --git a/jena-arq/Grammar/sparql_11.jj b/jena-arq/Grammar/sparql_11.jj index 0da06d9bf63..9a6d677144b 100644 --- a/jena-arq/Grammar/sparql_11.jj +++ b/jena-arq/Grammar/sparql_11.jj @@ -35,7 +35,40 @@ import org.apache.jena.sparql.expr.aggregate.lib.* ; import org.apache.jena.update.* ; import org.apache.jena.sparql.modify.request.* ; public class SPARQLParser11 extends SPARQLParser11Base -{} +{ + boolean allowAggregatesInExpressions = false ; + public static void main(String args[]) { + while (true) { + StringBuilder queryString = new StringBuilder() ; + java.util.Scanner scanner = new java.util.Scanner(System.in) ; + boolean firstEmptyLine = false ; + System.out.print("Enter input: ") ; + while (true) { + String line = scanner.nextLine() ; + if ("".equals(line) || line == null) { + if (firstEmptyLine) break ; + firstEmptyLine = true ; + } else { + queryString.append(line + System.lineSeparator()) ; + firstEmptyLine = false ; + } + } + try { + Query query = QueryFactory.create(queryString.toString(), + "http://example/query-base", Syntax.syntaxARQ) ; + java.io.Reader in = new java.io.StringReader(queryString.toString()) ; + SPARQLParser11 parser = new SPARQLParser11(in) ; + parser.setQuery(query) ; + parser.QueryUnit() ; + System.out.println("Parsed query successfully!") ; + System.out.println("---" + System.lineSeparator()) ; + } catch (Exception e) { + System.out.println("Parser error: " + e.getMessage()) ; + e.printStackTrace(System.err) ; + } + } + } +} PARSER_END(SPARQLParser11) void QueryUnit(): { } { @@ -47,7 +80,7 @@ void QueryUnit(): { } void Query() : { } { Prologue() - ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() + ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() | JsonQuery() ) ValuesClause() } @@ -169,6 +202,33 @@ void AskQuery() : {} WhereClause() SolutionModifier() } +void JsonQuery() : {} +{ + JsonClause() + ( DatasetClause() )* + WhereClause() + SolutionModifier() +} +void JsonClause() : { Object o ; String s ; } +{ + { getQuery().setQueryJsonType() ; } + + s = String() < PNAME_NS > + ( + o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } + | o = String() { getQuery().addJsonMapping(s, o) ; } + | o = Number() { getQuery().addJsonMapping(s, o) ; } + ) + ( + s = String() < PNAME_NS > + ( + o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } + | o = String() { getQuery().addJsonMapping(s, o) ; } + | o = Number() { getQuery().addJsonMapping(s, o) ; } + ) + )* + +} void DatasetClause() : {} { @@ -1408,6 +1468,16 @@ String String() : { Token t ; String lex ; } return lex ; } } +Number Number() : { Token t ; Number number ; } +{ + ( + t = < INTEGER > { number = integerValue(t.image) ; } + | t = < DECIMAL > { number = doubleValue(t.image) ; } + ) + { + return number ; + } +} String iri() : { String iri ; } { iri = IRIREF() { return iri ; } @@ -1466,6 +1536,7 @@ TOKEN [IGNORE_CASE] : | < SELECT: "select" > | < DISTINCT: "distinct" > | < REDUCED: "reduced" > +| < JSON: "json" > | < DESCRIBE: "describe" > | < CONSTRUCT: "construct" > | < ASK: "ask" > diff --git a/jena-arq/src/main/java/org/apache/jena/query/Query.java b/jena-arq/src/main/java/org/apache/jena/query/Query.java index 3eea8494e97..bf00616861d 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/Query.java +++ b/jena-arq/src/main/java/org/apache/jena/query/Query.java @@ -62,6 +62,7 @@ public class Query extends Prologue implements Cloneable, Printable public static final int QueryTypeConstruct = 222 ; public static final int QueryTypeDescribe = 333 ; public static final int QueryTypeAsk = 444 ; + public static final int QueryTypeJson = 555 ; int queryType = QueryTypeUnknown ; // If no model is provided explicitly, the query engine will load @@ -135,6 +136,7 @@ public Query(Prologue prologue) public void setQueryConstructType() { queryType = QueryTypeConstruct ; queryResultStar = true ; } public void setQueryDescribeType() { queryType = QueryTypeDescribe ; } public void setQueryAskType() { queryType = QueryTypeAsk ; } + public void setQueryJsonType() { queryType = QueryTypeJson ; } public int getQueryType() { return queryType ; } @@ -146,6 +148,8 @@ public Query(Prologue prologue) public boolean isAskType() { return queryType == QueryTypeAsk ; } + public boolean isJsonType() { return queryType == QueryTypeJson ; } + public boolean isUnknownType() { return queryType == QueryTypeUnknown ; } public boolean isConstructQuad() { return isConstructType() && constructTemplate.containsRealQuad() ; } @@ -515,6 +519,14 @@ public void addHavingCondition(Expr expr) havingExprs.add(expr) ; } + // SELECT JSON + + public Map jsonMapping = new LinkedHashMap<>(); + + public void addJsonMapping(String key, Object value) { + jsonMapping.put(key, value); + } + // ---- Aggregates // Record allocated aggregations. diff --git a/jena-arq/src/main/java/org/apache/jena/query/QueryExecution.java b/jena-arq/src/main/java/org/apache/jena/query/QueryExecution.java index ada0d0055aa..201b4224118 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/QueryExecution.java +++ b/jena-arq/src/main/java/org/apache/jena/query/QueryExecution.java @@ -21,6 +21,8 @@ import java.util.Iterator; import java.util.concurrent.TimeUnit; +import org.apache.jena.atlas.json.JsonArray; +import org.apache.jena.atlas.json.JsonObject; import org.apache.jena.graph.Triple; import org.apache.jena.rdf.model.Model; import org.apache.jena.sparql.core.Quad; @@ -153,7 +155,13 @@ public interface QueryExecution extends AutoCloseable /** Execute an ASK query */ public boolean execAsk(); - + + /** Execute a JSON query and return a json array */ + public JsonArray execJson() ; + + /** Execute a JSON query and return an interator */ + public Iterator execJsonItems() ; + /** Stop in mid execution. * This method can be called in parallel with other methods on the * QueryExecution object. diff --git a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java index 3d2aa834fc7..fbcb658aa80 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java +++ b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java @@ -31,6 +31,9 @@ import java.util.Iterator ; import java.util.List ; +import org.apache.jena.atlas.json.JsonObject; +import org.apache.jena.atlas.json.JsonValue; +import org.apache.jena.atlas.json.io.JSWriter; import org.apache.jena.atlas.logging.Log ; import org.apache.jena.rdf.model.RDFNode ; import org.apache.jena.riot.Lang; @@ -518,6 +521,32 @@ static public void outputAsJSON(boolean booleanResult) static public void outputAsJSON(OutputStream outStream, boolean booleanResult) { output(outStream, booleanResult, SPARQLResultSetJSON) ; } + /** Output an iterator of JSON values. + * + * @param outStream output stream + * @param jsonItems The JSON values + */ + public static void outputAsJSON(OutputStream outStream, Iterator jsonItems) + { + JSWriter jWriter = new JSWriter(outStream) ; + jWriter.startArray() ; + jWriter.startOutput() ; + while (jsonItems.hasNext()) + { + jWriter.startObject() ; + JsonObject jsonItem = jsonItems.next() ; + for (String key: jsonItem.keys()) + { + JsonValue value = jsonItem.get(key) ; + String val = value.getAsString().value() ; + jWriter.pair(key, val) ; + } + jWriter.finishObject() ; + } + jWriter.finishArray() ; + jWriter.finishOutput() ; + } + // ---- SSE /** Output a boolean result in the SSE format diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/JsonIterator.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/JsonIterator.java new file mode 100644 index 00000000000..8becf29c6c6 --- /dev/null +++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/JsonIterator.java @@ -0,0 +1,104 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.sparql.engine; + +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.NoSuchElementException; + +import org.apache.jena.atlas.json.JsonObject; +import org.apache.jena.atlas.lib.Closeable; + +import org.apache.jena.graph.Node; +import org.apache.jena.sparql.core.Var; +import org.apache.jena.sparql.engine.binding.Binding; + +/** A JSON iterator for JsonObject's, that wraps a QueryIterator, and a list + * of result variables. + */ +public class JsonIterator implements Iterator +{ + + private final QueryIterator queryIterator ; + private final List resultVars ; + + public JsonIterator(QueryIterator queryIterator, List resultVars) + { + this.queryIterator = queryIterator ; + this.resultVars = Collections.unmodifiableList(resultVars) ; + } + + @Override + public boolean hasNext() + { + if (queryIterator == null) + return false; + boolean r = queryIterator.hasNext() ; + if (!r) + close() ; + return r ; + } + + @Override + public JsonObject next() + { + if (queryIterator == null) + throw new NoSuchElementException(this.getClass() + ".next") ; + try + { + Binding binding = queryIterator.next() ; + JsonObject jsonObject = new JsonObject() ; + for (String resultVar : resultVars) + { + Node n = binding.get(Var.alloc(resultVar)) ; + if (n.isLiteral()) + { + jsonObject.put(resultVar, n.getLiteral().toString()) ; + } + else + { + jsonObject.put(resultVar, n.toString()) ; + } + } + return jsonObject ; + } + catch (NoSuchElementException ex) + { + close() ; + throw ex ; + } + } + + @Override + public void remove() + { + throw new UnsupportedOperationException(this.getClass().getName() + ".remove") ; + } + + /** + * Closes the QueryIterator, if it is an instance of Closeable. + */ + private void close() + { + if (queryIterator instanceof Closeable) + ((Closeable) queryIterator).close(); + } + +} diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java index 1dc292e4388..97332c1f589 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java @@ -24,6 +24,8 @@ import java.util.Set; import java.util.concurrent.TimeUnit; +import org.apache.jena.atlas.json.JsonArray; +import org.apache.jena.atlas.json.JsonObject; import org.apache.jena.atlas.lib.Alarm ; import org.apache.jena.atlas.lib.AlarmClock; import org.apache.jena.atlas.logging.Log; @@ -36,6 +38,7 @@ import org.apache.jena.sparql.ARQConstants; import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.Quad; +import org.apache.jena.sparql.core.Var; import org.apache.jena.sparql.core.describe.DescribeHandler; import org.apache.jena.sparql.core.describe.DescribeHandlerRegistry; import org.apache.jena.sparql.engine.binding.Binding; @@ -335,7 +338,46 @@ public boolean execAsk() { } @Override - public void setTimeout(long timeout, TimeUnit timeUnit) { + public JsonArray execJson() + { + checkNotClosed() ; + if ( ! query.isJsonType() ) + throw new QueryExecException("Attempt to get a JSON result from a " + labelForQuery(query)+" query") ; + + startQueryIterator() ; + + JsonArray jsonArray = new JsonArray() ; + List resultVars = query.getResultVars() ; + + while (queryIterator.hasNext()) + { + Binding binding = queryIterator.next() ; + JsonObject jsonObject = new JsonObject() ; + for (String resultVar : resultVars) { + Node n = binding.get(Var.alloc(resultVar)) ; + if (n.isLiteral()) { + jsonObject.put(resultVar, n.getLiteral().toString()) ; + } + } + jsonArray.add(jsonObject) ; + } + + return jsonArray ; + } + + @Override + public Iterator execJsonItems() + { + checkNotClosed() ; + if ( ! query.isJsonType() ) + throw new QueryExecException("Attempt to get a JSON result from a " + labelForQuery(query)+" query") ; + startQueryIterator() ; + return new JsonIterator(queryIterator, query.getResultVars()) ; + } + + @Override + public void setTimeout(long timeout, TimeUnit timeUnit) + { // Overall timeout - recorded as (UNSET,N) long x = asMillis(timeout, timeUnit); this.timeout1 = TIMEOUT_UNSET; diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java index 7c7491d98ee..30703216e24 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java @@ -26,11 +26,14 @@ import java.util.Map ; import java.util.concurrent.TimeUnit ; +import org.apache.commons.lang3.NotImplementedException; import org.apache.http.client.HttpClient ; import org.apache.http.client.protocol.HttpClientContext; import org.apache.http.protocol.HttpContext ; import org.apache.jena.atlas.RuntimeIOException; import org.apache.jena.atlas.io.IO ; +import org.apache.jena.atlas.json.JsonArray; +import org.apache.jena.atlas.json.JsonObject; import org.apache.jena.atlas.lib.Pair ; import org.apache.jena.graph.Triple ; import org.apache.jena.query.* ; @@ -532,6 +535,18 @@ else if ( actualContentType.equals(WebContent.contentTypeJSON)) } } + @Override + public JsonArray execJson() + { + throw new NotImplementedException("JSON queries not implemented for remote calls") ; + } + + @Override + public Iterator execJsonItems() + { + throw new NotImplementedException("JSON queries not implemented for remote calls") ; + } + private void checkNotClosed() { if ( closed ) throw new QueryExecException("HTTP QueryExecution has been closed") ; diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java index c4fc913027f..91ae1b613d3 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java @@ -14,6 +14,38 @@ @SuppressWarnings("all") public class ARQParser extends ARQParserBase implements ARQParserConstants { + boolean allowAggregatesInExpressions = false ; + public static void main(String args[]) { + while (true) { + StringBuilder queryString = new StringBuilder() ; + java.util.Scanner scanner = new java.util.Scanner(System.in) ; + boolean firstEmptyLine = false ; + System.out.print("Enter input: ") ; + while (true) { + String line = scanner.nextLine() ; + if ("".equals(line) || line == null) { + if (firstEmptyLine) break ; + firstEmptyLine = true ; + } else { + queryString.append(line + System.lineSeparator()) ; + firstEmptyLine = false ; + } + } + try { + Query query = QueryFactory.create(queryString.toString(), + "http://example/query-base", Syntax.syntaxARQ) ; + java.io.Reader in = new java.io.StringReader(queryString.toString()) ; + ARQParser parser = new ARQParser(in) ; + parser.setQuery(query) ; + parser.QueryUnit() ; + System.out.println("Parsed query successfully!") ; + System.out.println("---" + System.lineSeparator()) ; + } catch (Exception e) { + System.out.println("Parser error: " + e.getMessage()) ; + e.printStackTrace(System.err) ; + } + } + } final public void QueryUnit() throws ParseException { ByteOrderMark(); @@ -38,6 +70,9 @@ final public void Query() throws ParseException { case ASK: AskQuery(); break; + case JSON: + JsonQuery(); + break; default: jj_la1[0] = jj_gen; jj_consume_token(-1); @@ -660,6 +695,94 @@ final public void AskQuery() throws ParseException { SolutionModifier(); } + final public void JsonQuery() throws ParseException { + JsonClause(); + label_9: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case FROM: + ; + break; + default: + jj_la1[20] = jj_gen; + break label_9; + } + DatasetClause(); + } + WhereClause(); + SolutionModifier(); + } + + final public void JsonClause() throws ParseException { + Object o ; String s ; + jj_consume_token(JSON); + getQuery().setQueryJsonType() ; + jj_consume_token(LBRACE); + s = String(); + jj_consume_token(PNAME_NS); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case VAR1: + case VAR2: + o = Var(); + getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; + break; + case STRING_LITERAL1: + case STRING_LITERAL2: + case STRING_LITERAL_LONG1: + case STRING_LITERAL_LONG2: + o = String(); + getQuery().addJsonMapping(s, o) ; + break; + case INTEGER: + case DECIMAL: + o = Number(); + getQuery().addJsonMapping(s, o) ; + break; + default: + jj_la1[21] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + label_10: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[22] = jj_gen; + break label_10; + } + jj_consume_token(COMMA); + s = String(); + jj_consume_token(PNAME_NS); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case VAR1: + case VAR2: + o = Var(); + getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; + break; + case STRING_LITERAL1: + case STRING_LITERAL2: + case STRING_LITERAL_LONG1: + case STRING_LITERAL_LONG2: + o = String(); + getQuery().addJsonMapping(s, o) ; + break; + case INTEGER: + case DECIMAL: + o = Number(); + getQuery().addJsonMapping(s, o) ; + break; + default: + jj_la1[23] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + jj_consume_token(RBRACE); + } + final public void DatasetClause() throws ParseException { jj_consume_token(FROM); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -672,7 +795,7 @@ final public void DatasetClause() throws ParseException { NamedGraphClause(); break; default: - jj_la1[20] = jj_gen; + jj_la1[24] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -705,7 +828,7 @@ final public void WhereClause() throws ParseException { jj_consume_token(WHERE); break; default: - jj_la1[21] = jj_gen; + jj_la1[25] = jj_gen; ; } startWherePattern() ; @@ -720,7 +843,7 @@ final public void SolutionModifier() throws ParseException { GroupClause(); break; default: - jj_la1[22] = jj_gen; + jj_la1[26] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -728,7 +851,7 @@ final public void SolutionModifier() throws ParseException { HavingClause(); break; default: - jj_la1[23] = jj_gen; + jj_la1[27] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -736,7 +859,7 @@ final public void SolutionModifier() throws ParseException { OrderClause(); break; default: - jj_la1[24] = jj_gen; + jj_la1[28] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -745,7 +868,7 @@ final public void SolutionModifier() throws ParseException { LimitOffsetClauses(); break; default: - jj_la1[25] = jj_gen; + jj_la1[29] = jj_gen; ; } } @@ -753,7 +876,7 @@ final public void SolutionModifier() throws ParseException { final public void GroupClause() throws ParseException { jj_consume_token(GROUP); jj_consume_token(BY); - label_9: + label_11: while (true) { GroupCondition(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -836,8 +959,8 @@ final public void GroupClause() throws ParseException { ; break; default: - jj_la1[26] = jj_gen; - break label_9; + jj_la1[30] = jj_gen; + break label_11; } } } @@ -933,7 +1056,7 @@ final public void GroupCondition() throws ParseException { v = Var(); break; default: - jj_la1[27] = jj_gen; + jj_la1[31] = jj_gen; ; } jj_consume_token(RPAREN); @@ -945,7 +1068,7 @@ final public void GroupCondition() throws ParseException { getQuery().addGroupBy(v) ; break; default: - jj_la1[28] = jj_gen; + jj_la1[32] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -954,7 +1077,7 @@ final public void GroupCondition() throws ParseException { final public void HavingClause() throws ParseException { setAllowAggregatesInExpressions(true) ; jj_consume_token(HAVING); - label_10: + label_12: while (true) { HavingCondition(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1035,8 +1158,8 @@ final public void HavingClause() throws ParseException { ; break; default: - jj_la1[29] = jj_gen; - break label_10; + jj_la1[33] = jj_gen; + break label_12; } } setAllowAggregatesInExpressions(false) ; @@ -1052,7 +1175,7 @@ final public void OrderClause() throws ParseException { setAllowAggregatesInExpressions(true) ; jj_consume_token(ORDER); jj_consume_token(BY); - label_11: + label_13: while (true) { OrderCondition(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1137,8 +1260,8 @@ final public void OrderClause() throws ParseException { ; break; default: - jj_la1[30] = jj_gen; - break label_11; + jj_la1[34] = jj_gen; + break label_13; } } setAllowAggregatesInExpressions(false) ; @@ -1160,7 +1283,7 @@ final public void OrderCondition() throws ParseException { direction = Query.ORDER_DESCENDING ; break; default: - jj_la1[31] = jj_gen; + jj_la1[35] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1324,13 +1447,13 @@ final public void OrderCondition() throws ParseException { v = Var(); break; default: - jj_la1[32] = jj_gen; + jj_la1[36] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[33] = jj_gen; + jj_la1[37] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1349,7 +1472,7 @@ final public void LimitOffsetClauses() throws ParseException { OffsetClause(); break; default: - jj_la1[34] = jj_gen; + jj_la1[38] = jj_gen; ; } break; @@ -1360,12 +1483,12 @@ final public void LimitOffsetClauses() throws ParseException { LimitClause(); break; default: - jj_la1[35] = jj_gen; + jj_la1[39] = jj_gen; ; } break; default: - jj_la1[36] = jj_gen; + jj_la1[40] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1395,7 +1518,7 @@ final public void ValuesClause() throws ParseException { finishValuesClause(t.beginLine, t.beginColumn) ; break; default: - jj_la1[37] = jj_gen; + jj_la1[41] = jj_gen; ; } } @@ -1417,12 +1540,12 @@ final public void Update() throws ParseException { case DROP: case WITH: Update1(); - label_12: + label_14: while (true) { if (jj_2_2(2147483647)) { ; } else { - break label_12; + break label_14; } jj_consume_token(SEMICOLON); Prologue(); @@ -1434,12 +1557,12 @@ final public void Update() throws ParseException { Prologue(); break; default: - jj_la1[38] = jj_gen; + jj_la1[42] = jj_gen; ; } break; default: - jj_la1[39] = jj_gen; + jj_la1[43] = jj_gen; ; } } @@ -1484,7 +1607,7 @@ final public void Update1() throws ParseException { DeleteData(); break; default: - jj_la1[40] = jj_gen; + jj_la1[44] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1501,7 +1624,7 @@ final public Update Load() throws ParseException { silent = true ; break; default: - jj_la1[41] = jj_gen; + jj_la1[45] = jj_gen; ; } url = iri(); @@ -1511,7 +1634,7 @@ final public Update Load() throws ParseException { dest = GraphRef(); break; default: - jj_la1[42] = jj_gen; + jj_la1[46] = jj_gen; ; } {if (true) return new UpdateLoad(url, dest, silent) ;} @@ -1527,7 +1650,7 @@ final public Update Clear() throws ParseException { silent = true ; break; default: - jj_la1[43] = jj_gen; + jj_la1[47] = jj_gen; ; } target = GraphRefAll(); @@ -1544,7 +1667,7 @@ final public Update Drop() throws ParseException { silent = true ; break; default: - jj_la1[44] = jj_gen; + jj_la1[48] = jj_gen; ; } target = GraphRefAll(); @@ -1561,7 +1684,7 @@ final public Update Create() throws ParseException { silent=true ; break; default: - jj_la1[45] = jj_gen; + jj_la1[49] = jj_gen; ; } iri = GraphRef(); @@ -1578,7 +1701,7 @@ final public Update Add() throws ParseException { silent=true ; break; default: - jj_la1[46] = jj_gen; + jj_la1[50] = jj_gen; ; } src = GraphOrDefault(); @@ -1597,7 +1720,7 @@ final public Update Move() throws ParseException { silent=true ; break; default: - jj_la1[47] = jj_gen; + jj_la1[51] = jj_gen; ; } src = GraphOrDefault(); @@ -1616,7 +1739,7 @@ final public Update Copy() throws ParseException { silent=true ; break; default: - jj_la1[48] = jj_gen; + jj_la1[52] = jj_gen; ; } src = GraphOrDefault(); @@ -1668,7 +1791,7 @@ final public Update Modify() throws ParseException { Node n = createNode(iri) ; up.setWithIRI(n) ; break; default: - jj_la1[49] = jj_gen; + jj_la1[53] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1679,7 +1802,7 @@ final public Update Modify() throws ParseException { InsertClause(up); break; default: - jj_la1[50] = jj_gen; + jj_la1[54] = jj_gen; ; } break; @@ -1687,19 +1810,19 @@ final public Update Modify() throws ParseException { InsertClause(up); break; default: - jj_la1[51] = jj_gen; + jj_la1[55] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_13: + label_15: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case USING: ; break; default: - jj_la1[52] = jj_gen; - break label_13; + jj_la1[56] = jj_gen; + break label_15; } UsingClause(up); } @@ -1749,7 +1872,7 @@ final public void UsingClause(UpdateWithUsing update) throws ParseException { n = createNode(iri) ; update.addUsingNamed(n) ; break; default: - jj_la1[53] = jj_gen; + jj_la1[57] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1771,14 +1894,14 @@ final public Target GraphOrDefault() throws ParseException { jj_consume_token(GRAPH); break; default: - jj_la1[54] = jj_gen; + jj_la1[58] = jj_gen; ; } iri = iri(); {if (true) return Target.create(createNode(iri)) ;} break; default: - jj_la1[55] = jj_gen; + jj_la1[59] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1813,7 +1936,7 @@ final public Target GraphRefAll() throws ParseException { {if (true) return Target.ALL ;} break; default: - jj_la1[56] = jj_gen; + jj_la1[60] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1862,18 +1985,18 @@ final public void Quads(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[57] = jj_gen; + jj_la1[61] = jj_gen; ; } - label_14: + label_16: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case GRAPH: ; break; default: - jj_la1[58] = jj_gen; - break label_14; + jj_la1[62] = jj_gen; + break label_16; } QuadsNotTriples(acc); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1881,7 +2004,7 @@ final public void Quads(QuadAccSink acc) throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[59] = jj_gen; + jj_la1[63] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1913,7 +2036,7 @@ final public void Quads(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[60] = jj_gen; + jj_la1[64] = jj_gen; ; } } @@ -1954,7 +2077,7 @@ final public void QuadsNotTriples(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[61] = jj_gen; + jj_la1[65] = jj_gen; ; } jj_consume_token(RBRACE); @@ -1991,10 +2114,10 @@ final public void ConstructQuads(QuadAcc acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[62] = jj_gen; + jj_la1[66] = jj_gen; ; } - label_15: + label_17: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case GRAPH: @@ -2002,8 +2125,8 @@ final public void ConstructQuads(QuadAcc acc) throws ParseException { ; break; default: - jj_la1[63] = jj_gen; - break label_15; + jj_la1[67] = jj_gen; + break label_17; } ConstructQuadsNotTriples(acc); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2011,7 +2134,7 @@ final public void ConstructQuads(QuadAcc acc) throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[64] = jj_gen; + jj_la1[68] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2043,7 +2166,7 @@ final public void ConstructQuads(QuadAcc acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[65] = jj_gen; + jj_la1[69] = jj_gen; ; } } @@ -2058,7 +2181,7 @@ final public void ConstructQuadsNotTriples(QuadAccSink acc) throws ParseExceptio gn = VarOrBlankNodeOrIri(); break; default: - jj_la1[66] = jj_gen; + jj_la1[70] = jj_gen; ; } setAccGraph(acc, gn) ; @@ -2092,7 +2215,7 @@ final public void ConstructQuadsNotTriples(QuadAccSink acc) throws ParseExceptio TriplesTemplate(acc); break; default: - jj_la1[67] = jj_gen; + jj_la1[71] = jj_gen; ; } jj_consume_token(RBRACE); @@ -2101,12 +2224,12 @@ final public void ConstructQuadsNotTriples(QuadAccSink acc) throws ParseExceptio final public void TriplesTemplate(TripleCollector acc) throws ParseException { TriplesSameSubject(acc); - label_16: + label_18: while (true) { if (jj_2_3(2)) { ; } else { - break label_16; + break label_18; } jj_consume_token(DOT); TriplesSameSubject(acc); @@ -2116,7 +2239,7 @@ final public void TriplesTemplate(TripleCollector acc) throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[68] = jj_gen; + jj_la1[72] = jj_gen; ; } } @@ -2133,7 +2256,7 @@ final public Element GroupGraphPattern() throws ParseException { el = new ElementSubQuery(q) ; break; default: - jj_la1[69] = jj_gen; + jj_la1[73] = jj_gen; el = GroupGraphPatternSub(); } jj_consume_token(RBRACE); @@ -2177,10 +2300,10 @@ final public Element GroupGraphPatternSub() throws ParseException { elg.addElement(el) ; break; default: - jj_la1[70] = jj_gen; + jj_la1[74] = jj_gen; ; } - label_17: + label_19: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VALUES: @@ -2197,8 +2320,8 @@ final public Element GroupGraphPatternSub() throws ParseException { ; break; default: - jj_la1[71] = jj_gen; - break label_17; + jj_la1[75] = jj_gen; + break label_19; } el = GraphPatternNotTriples(); elg.addElement(el) ; @@ -2207,7 +2330,7 @@ final public Element GroupGraphPatternSub() throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[72] = jj_gen; + jj_la1[76] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2242,7 +2365,7 @@ final public Element GroupGraphPatternSub() throws ParseException { elg.addElement(el) ; break; default: - jj_la1[73] = jj_gen; + jj_la1[77] = jj_gen; ; } } @@ -2287,12 +2410,12 @@ final public Element TriplesBlock(ElementPathBlock acc) throws ParseException { TriplesBlock(acc); break; default: - jj_la1[74] = jj_gen; + jj_la1[78] = jj_gen; ; } break; default: - jj_la1[75] = jj_gen; + jj_la1[79] = jj_gen; ; } {if (true) return acc ;} @@ -2336,7 +2459,7 @@ final public Element GraphPatternNotTriples() throws ParseException { el = NotExistsElt(); break; default: - jj_la1[76] = jj_gen; + jj_la1[80] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2370,7 +2493,7 @@ final public Element ServiceGraphPattern() throws ParseException { silent=true; break; default: - jj_la1[77] = jj_gen; + jj_la1[81] = jj_gen; ; } n = VarOrIri(); @@ -2414,7 +2537,7 @@ final public void DataBlock() throws ParseException { InlineDataFull(); break; default: - jj_la1[78] = jj_gen; + jj_la1[82] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2425,7 +2548,7 @@ final public void InlineDataOneVar() throws ParseException { v = Var(); emitDataBlockVariable(v) ; t = jj_consume_token(LBRACE); - label_18: + label_20: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IRIref: @@ -2452,8 +2575,8 @@ final public void InlineDataOneVar() throws ParseException { ; break; default: - jj_la1[79] = jj_gen; - break label_18; + jj_la1[83] = jj_gen; + break label_20; } n = DataBlockValue(); startDataBlockValueRow(-1, -1) ; @@ -2471,7 +2594,7 @@ final public void InlineDataFull() throws ParseException { break; case LPAREN: jj_consume_token(LPAREN); - label_19: + label_21: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VAR1: @@ -2479,8 +2602,8 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[80] = jj_gen; - break label_19; + jj_la1[84] = jj_gen; + break label_21; } v = Var(); emitDataBlockVariable(v) ; @@ -2488,12 +2611,12 @@ final public void InlineDataFull() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[81] = jj_gen; + jj_la1[85] = jj_gen; jj_consume_token(-1); throw new ParseException(); } jj_consume_token(LBRACE); - label_20: + label_22: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: @@ -2501,15 +2624,15 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[82] = jj_gen; - break label_20; + jj_la1[86] = jj_gen; + break label_22; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: t = jj_consume_token(LPAREN); beginLine = t.beginLine; beginColumn = t.beginColumn; t = null; startDataBlockValueRow(beginLine, beginColumn) ; - label_21: + label_23: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IRIref: @@ -2536,8 +2659,8 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[83] = jj_gen; - break label_21; + jj_la1[87] = jj_gen; + break label_23; } n = DataBlockValue(); emitDataBlockValue(n, beginLine, beginColumn) ; @@ -2553,7 +2676,7 @@ final public void InlineDataFull() throws ParseException { finishDataBlockValueRow(beginLine, beginColumn) ; break; default: - jj_la1[84] = jj_gen; + jj_la1[88] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2604,7 +2727,7 @@ final public Node DataBlockValue() throws ParseException { {if (true) return null ;} break; default: - jj_la1[85] = jj_gen; + jj_la1[89] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2651,15 +2774,15 @@ final public Element MinusGraphPattern() throws ParseException { final public Element GroupOrUnionGraphPattern() throws ParseException { Element el = null ; ElementUnion el2 = null ; el = GroupGraphPattern(); - label_22: + label_24: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case UNION: ; break; default: - jj_la1[86] = jj_gen; - break label_22; + jj_la1[90] = jj_gen; + break label_24; } jj_consume_token(UNION); if ( el2 == null ) @@ -2766,7 +2889,7 @@ final public Expr Constraint() throws ParseException { c = FunctionCall(); break; default: - jj_la1[87] = jj_gen; + jj_la1[91] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2807,20 +2930,20 @@ final public Args ArgList() throws ParseException { beginLine, beginColumn) ; break; default: - jj_la1[88] = jj_gen; + jj_la1[92] = jj_gen; ; } expr = Expression(); args.add(expr) ; - label_23: + label_25: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[89] = jj_gen; - break label_23; + jj_la1[93] = jj_gen; + break label_25; } jj_consume_token(COMMA); expr = Expression(); @@ -2829,7 +2952,7 @@ final public Args ArgList() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[90] = jj_gen; + jj_la1[94] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2847,15 +2970,15 @@ final public ExprList ExpressionList() throws ParseException { jj_consume_token(LPAREN); expr = Expression(); exprList.add(expr) ; - label_24: + label_26: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[91] = jj_gen; - break label_24; + jj_la1[95] = jj_gen; + break label_26; } jj_consume_token(COMMA); expr = Expression(); @@ -2864,7 +2987,7 @@ final public ExprList ExpressionList() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[92] = jj_gen; + jj_la1[96] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2886,12 +3009,12 @@ final public Template ConstructTemplate() throws ParseException { final public void ConstructTriples(TripleCollector acc) throws ParseException { TriplesSameSubject(acc); - label_25: + label_27: while (true) { if (jj_2_4(2)) { ; } else { - break label_25; + break label_27; } jj_consume_token(DOT); TriplesSameSubject(acc); @@ -2901,7 +3024,7 @@ final public void ConstructTriples(TripleCollector acc) throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[93] = jj_gen; + jj_la1[97] = jj_gen; ; } } @@ -2943,7 +3066,7 @@ final public void TriplesSameSubject(TripleCollector acc) throws ParseException insert(acc, tempAcc) ; break; default: - jj_la1[94] = jj_gen; + jj_la1[98] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2960,7 +3083,7 @@ final public void PropertyList(Node s, TripleCollector acc) throws ParseExceptio PropertyListNotEmpty(s, acc); break; default: - jj_la1[95] = jj_gen; + jj_la1[99] = jj_gen; ; } } @@ -2969,15 +3092,15 @@ final public void PropertyListNotEmpty(Node s, TripleCollector acc) throws Parse Node p = null ; p = Verb(); ObjectList(s, p, null, acc); - label_26: + label_28: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[96] = jj_gen; - break label_26; + jj_la1[100] = jj_gen; + break label_28; } jj_consume_token(SEMICOLON); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2991,7 +3114,7 @@ final public void PropertyListNotEmpty(Node s, TripleCollector acc) throws Parse ObjectList(s, p, null, acc); break; default: - jj_la1[97] = jj_gen; + jj_la1[101] = jj_gen; ; } } @@ -3012,7 +3135,7 @@ final public Node Verb() throws ParseException { p = nRDFtype ; break; default: - jj_la1[98] = jj_gen; + jj_la1[102] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3023,15 +3146,15 @@ final public Node Verb() throws ParseException { final public void ObjectList(Node s, Node p, Path path, TripleCollector acc) throws ParseException { Node o ; Object(s, p, path, acc); - label_27: + label_29: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[99] = jj_gen; - break label_27; + jj_la1[103] = jj_gen; + break label_29; } jj_consume_token(COMMA); Object(s, p, path, acc); @@ -3082,7 +3205,7 @@ final public void TriplesSameSubjectPath(TripleCollector acc) throws ParseExcept insert(acc, tempAcc) ; break; default: - jj_la1[100] = jj_gen; + jj_la1[104] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3105,7 +3228,7 @@ final public void PropertyListPath(Node s, TripleCollector acc) throws ParseExce PropertyListPathNotEmpty(s, acc); break; default: - jj_la1[101] = jj_gen; + jj_la1[105] = jj_gen; ; } } @@ -3130,20 +3253,20 @@ final public void PropertyListPathNotEmpty(Node s, TripleCollector acc) throws P p = VerbSimple(); break; default: - jj_la1[102] = jj_gen; + jj_la1[106] = jj_gen; jj_consume_token(-1); throw new ParseException(); } ObjectListPath(s, p, path, acc); - label_28: + label_30: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[103] = jj_gen; - break label_28; + jj_la1[107] = jj_gen; + break label_30; } jj_consume_token(SEMICOLON); path = null ; p = null ; @@ -3178,14 +3301,14 @@ final public void PropertyListPathNotEmpty(Node s, TripleCollector acc) throws P p = VerbSimple(); break; default: - jj_la1[104] = jj_gen; + jj_la1[108] = jj_gen; jj_consume_token(-1); throw new ParseException(); } ObjectListPath(s, p, path, acc); break; default: - jj_la1[105] = jj_gen; + jj_la1[109] = jj_gen; ; } } @@ -3208,15 +3331,15 @@ final public Node VerbSimple() throws ParseException { final public void ObjectListPath(Node s, Node p, Path path, TripleCollector acc) throws ParseException { Node o ; ObjectPath(s, p, path, acc); - label_29: + label_31: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[106] = jj_gen; - break label_29; + jj_la1[110] = jj_gen; + break label_31; } jj_consume_token(COMMA); ObjectPath(s, p, path, acc); @@ -3249,15 +3372,15 @@ final public Path Path() throws ParseException { final public Path PathAlternative() throws ParseException { Path p1 , p2 ; p1 = PathSequence(); - label_30: + label_32: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VBAR: ; break; default: - jj_la1[107] = jj_gen; - break label_30; + jj_la1[111] = jj_gen; + break label_32; } jj_consume_token(VBAR); p2 = PathSequence(); @@ -3270,7 +3393,7 @@ final public Path PathAlternative() throws ParseException { final public Path PathSequence() throws ParseException { Path p1 , p2 ; p1 = PathEltOrInverse(); - label_31: + label_33: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SLASH: @@ -3278,8 +3401,8 @@ final public Path PathSequence() throws ParseException { ; break; default: - jj_la1[108] = jj_gen; - break label_31; + jj_la1[112] = jj_gen; + break label_33; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SLASH: @@ -3293,7 +3416,7 @@ final public Path PathSequence() throws ParseException { p1 = PathFactory.pathSeq(p1, new P_Inverse(p2)) ; break; default: - jj_la1[109] = jj_gen; + jj_la1[113] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3313,7 +3436,7 @@ final public Path PathElt() throws ParseException { p = PathMod(p); break; default: - jj_la1[110] = jj_gen; + jj_la1[114] = jj_gen; ; } {if (true) return p ;} @@ -3340,7 +3463,7 @@ final public Path PathEltOrInverse() throws ParseException { p = PathFactory.pathInverse(p) ; break; default: - jj_la1[111] = jj_gen; + jj_la1[115] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3392,7 +3515,7 @@ final public Path PathMod(Path p) throws ParseException { {if (true) return PathFactory.pathMod(p, i1, i2) ;} break; default: - jj_la1[112] = jj_gen; + jj_la1[116] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3402,7 +3525,7 @@ final public Path PathMod(Path p) throws ParseException { {if (true) return PathFactory.pathFixedLength(p, i1) ;} break; default: - jj_la1[113] = jj_gen; + jj_la1[117] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3414,13 +3537,13 @@ final public Path PathMod(Path p) throws ParseException { {if (true) return PathFactory.pathMod(p, PathFactory.UNSET, i2) ;} break; default: - jj_la1[114] = jj_gen; + jj_la1[118] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[115] = jj_gen; + jj_la1[119] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3471,7 +3594,7 @@ final public Path PathPrimary() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[116] = jj_gen; + jj_la1[120] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3501,15 +3624,15 @@ final public Path PathNegatedPropertySet() throws ParseException { case CARAT: p = PathOneInPropertySet(); pNegSet.add(p) ; - label_32: + label_34: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VBAR: ; break; default: - jj_la1[117] = jj_gen; - break label_32; + jj_la1[121] = jj_gen; + break label_34; } jj_consume_token(VBAR); p = PathOneInPropertySet(); @@ -3517,13 +3640,13 @@ final public Path PathNegatedPropertySet() throws ParseException { } break; default: - jj_la1[118] = jj_gen; + jj_la1[122] = jj_gen; ; } jj_consume_token(RPAREN); break; default: - jj_la1[119] = jj_gen; + jj_la1[123] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3558,13 +3681,13 @@ final public P_Path0 PathOneInPropertySet() throws ParseException { {if (true) return new P_ReverseLink(nRDFtype) ;} break; default: - jj_la1[120] = jj_gen; + jj_la1[124] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[121] = jj_gen; + jj_la1[125] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3590,7 +3713,7 @@ final public Node TriplesNode(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[122] = jj_gen; + jj_la1[126] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3619,7 +3742,7 @@ final public Node TriplesNodePath(TripleCollectorMark acc) throws ParseException {if (true) return n ;} break; default: - jj_la1[123] = jj_gen; + jj_la1[127] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3640,7 +3763,7 @@ final public Node Collection(TripleCollectorMark acc) throws ParseException { Node listHead = nRDFnil ; Node lastCell = null ; int mark ; Node n ; Token t ; t = jj_consume_token(LPAREN); int beginLine = t.beginLine; int beginColumn = t.beginColumn; t = null; - label_33: + label_35: while (true) { Node cell = createListNode( beginLine, beginColumn) ; if ( listHead == nRDFnil ) @@ -3680,8 +3803,8 @@ final public Node Collection(TripleCollectorMark acc) throws ParseException { ; break; default: - jj_la1[124] = jj_gen; - break label_33; + jj_la1[128] = jj_gen; + break label_35; } } jj_consume_token(RPAREN); @@ -3695,7 +3818,7 @@ final public Node CollectionPath(TripleCollectorMark acc) throws ParseException Node listHead = nRDFnil ; Node lastCell = null ; int mark ; Node n ; Token t ; t = jj_consume_token(LPAREN); int beginLine = t.beginLine; int beginColumn = t.beginColumn; t = null; - label_34: + label_36: while (true) { Node cell = createListNode( beginLine, beginColumn) ; if ( listHead == nRDFnil ) @@ -3735,8 +3858,8 @@ final public Node CollectionPath(TripleCollectorMark acc) throws ParseException ; break; default: - jj_la1[125] = jj_gen; - break label_34; + jj_la1[129] = jj_gen; + break label_36; } } jj_consume_token(RPAREN); @@ -3781,7 +3904,7 @@ final public Node GraphNode(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[126] = jj_gen; + jj_la1[130] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3823,7 +3946,7 @@ final public Node GraphNodePath(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[127] = jj_gen; + jj_la1[131] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3861,7 +3984,7 @@ final public Node VarOrTerm() throws ParseException { n = GraphTerm(); break; default: - jj_la1[128] = jj_gen; + jj_la1[132] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3883,7 +4006,7 @@ final public Node VarOrIri() throws ParseException { n = createNode(iri) ; break; default: - jj_la1[129] = jj_gen; + jj_la1[133] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3909,7 +4032,7 @@ final public Node VarOrBlankNodeOrIri() throws ParseException { n = createNode(iri) ; break; default: - jj_la1[130] = jj_gen; + jj_la1[134] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3927,7 +4050,7 @@ final public Var Var() throws ParseException { t = jj_consume_token(VAR2); break; default: - jj_la1[131] = jj_gen; + jj_la1[135] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3978,7 +4101,7 @@ final public Node GraphTerm() throws ParseException { {if (true) return nRDFnil ;} break; default: - jj_la1[132] = jj_gen; + jj_la1[136] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3995,15 +4118,15 @@ final public Expr Expression() throws ParseException { final public Expr ConditionalOrExpression() throws ParseException { Expr expr1, expr2 ; expr1 = ConditionalAndExpression(); - label_35: + label_37: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SC_OR: ; break; default: - jj_la1[133] = jj_gen; - break label_35; + jj_la1[137] = jj_gen; + break label_37; } jj_consume_token(SC_OR); expr2 = ConditionalAndExpression(); @@ -4016,15 +4139,15 @@ final public Expr ConditionalOrExpression() throws ParseException { final public Expr ConditionalAndExpression() throws ParseException { Expr expr1, expr2 ; expr1 = ValueLogical(); - label_36: + label_38: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SC_AND: ; break; default: - jj_la1[134] = jj_gen; - break label_36; + jj_la1[138] = jj_gen; + break label_38; } jj_consume_token(SC_AND); expr2 = ValueLogical(); @@ -4096,13 +4219,13 @@ final public Expr RelationalExpression() throws ParseException { expr1 = new E_NotOneOf(expr1, a) ; break; default: - jj_la1[135] = jj_gen; + jj_la1[139] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[136] = jj_gen; + jj_la1[140] = jj_gen; ; } {if (true) return expr1 ;} @@ -4119,7 +4242,7 @@ final public Expr NumericExpression() throws ParseException { final public Expr AdditiveExpression() throws ParseException { Expr expr1, expr2, expr3 ; boolean addition ; Node n ; expr1 = MultiplicativeExpression(); - label_37: + label_39: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case INTEGER_POSITIVE: @@ -4133,8 +4256,8 @@ final public Expr AdditiveExpression() throws ParseException { ; break; default: - jj_la1[137] = jj_gen; - break label_37; + jj_la1[141] = jj_gen; + break label_39; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PLUS: @@ -4171,11 +4294,11 @@ final public Expr AdditiveExpression() throws ParseException { addition = false ; break; default: - jj_la1[138] = jj_gen; + jj_la1[142] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_38: + label_40: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -4183,8 +4306,8 @@ final public Expr AdditiveExpression() throws ParseException { ; break; default: - jj_la1[139] = jj_gen; - break label_38; + jj_la1[143] = jj_gen; + break label_40; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -4198,7 +4321,7 @@ final public Expr AdditiveExpression() throws ParseException { expr2 = new E_Divide(expr2, expr3) ; break; default: - jj_la1[140] = jj_gen; + jj_la1[144] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4209,7 +4332,7 @@ final public Expr AdditiveExpression() throws ParseException { expr1 = new E_Subtract(expr1, expr2) ; break; default: - jj_la1[141] = jj_gen; + jj_la1[145] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4221,7 +4344,7 @@ final public Expr AdditiveExpression() throws ParseException { final public Expr MultiplicativeExpression() throws ParseException { Expr expr1, expr2 ; expr1 = UnaryExpression(); - label_39: + label_41: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -4229,8 +4352,8 @@ final public Expr MultiplicativeExpression() throws ParseException { ; break; default: - jj_la1[142] = jj_gen; - break label_39; + jj_la1[146] = jj_gen; + break label_41; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -4244,7 +4367,7 @@ final public Expr MultiplicativeExpression() throws ParseException { expr1 = new E_Divide(expr1, expr2) ; break; default: - jj_la1[143] = jj_gen; + jj_la1[147] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4366,7 +4489,7 @@ final public Expr UnaryExpression() throws ParseException { {if (true) return expr ;} break; default: - jj_la1[144] = jj_gen; + jj_la1[148] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4489,7 +4612,7 @@ final public Expr PrimaryExpression() throws ParseException { {if (true) return asExpr(gn) ;} break; default: - jj_la1[145] = jj_gen; + jj_la1[149] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4591,7 +4714,7 @@ final public Expr BuiltInCall() throws ParseException { {if (true) return new E_BNode() ;} break; default: - jj_la1[146] = jj_gen; + jj_la1[150] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4837,15 +4960,15 @@ final public Expr BuiltInCall() throws ParseException { jj_consume_token(LPAREN); expr = Expression(); a.add(expr) ; - label_40: + label_42: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[147] = jj_gen; - break label_40; + jj_la1[151] = jj_gen; + break label_42; } jj_consume_token(COMMA); expr = Expression(); @@ -4940,7 +5063,7 @@ final public Expr BuiltInCall() throws ParseException { {if (true) return expr ;} break; default: - jj_la1[148] = jj_gen; + jj_la1[152] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4960,7 +5083,7 @@ final public Expr RegexExpression() throws ParseException { flagsExpr = Expression(); break; default: - jj_la1[149] = jj_gen; + jj_la1[153] = jj_gen; ; } jj_consume_token(RPAREN); @@ -4981,7 +5104,7 @@ final public Expr SubstringExpression() throws ParseException { expr3 = Expression(); break; default: - jj_la1[150] = jj_gen; + jj_la1[154] = jj_gen; ; } jj_consume_token(RPAREN); @@ -5004,7 +5127,7 @@ final public Expr StrReplaceExpression() throws ParseException { expr4 = Expression(); break; default: - jj_la1[151] = jj_gen; + jj_la1[155] = jj_gen; ; } jj_consume_token(RPAREN); @@ -5045,7 +5168,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[152] = jj_gen; + jj_la1[156] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -5149,7 +5272,7 @@ final public Expr Aggregate() throws ParseException { expr = Expression(); break; default: - jj_la1[153] = jj_gen; + jj_la1[157] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5166,7 +5289,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[154] = jj_gen; + jj_la1[158] = jj_gen; ; } expr = Expression(); @@ -5182,7 +5305,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[155] = jj_gen; + jj_la1[159] = jj_gen; ; } expr = Expression(); @@ -5198,7 +5321,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[156] = jj_gen; + jj_la1[160] = jj_gen; ; } expr = Expression(); @@ -5214,7 +5337,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[157] = jj_gen; + jj_la1[161] = jj_gen; ; } expr = Expression(); @@ -5230,7 +5353,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[158] = jj_gen; + jj_la1[162] = jj_gen; ; } expr = Expression(); @@ -5246,7 +5369,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[159] = jj_gen; + jj_la1[163] = jj_gen; ; } expr = Expression(); @@ -5266,7 +5389,7 @@ final public Expr Aggregate() throws ParseException { ordered.add(expr2) ; break; default: - jj_la1[160] = jj_gen; + jj_la1[164] = jj_gen; ; } } else { @@ -5279,14 +5402,14 @@ final public Expr Aggregate() throws ParseException { ordered.add(expr2) ; break; default: - jj_la1[161] = jj_gen; + jj_la1[165] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } break; default: - jj_la1[162] = jj_gen; + jj_la1[166] = jj_gen; ; } jj_consume_token(RPAREN); @@ -5301,7 +5424,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[163] = jj_gen; + jj_la1[167] = jj_gen; ; } expr = Expression(); @@ -5317,7 +5440,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[164] = jj_gen; + jj_la1[168] = jj_gen; ; } expr = Expression(); @@ -5333,7 +5456,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[165] = jj_gen; + jj_la1[169] = jj_gen; ; } expr = Expression(); @@ -5349,7 +5472,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[166] = jj_gen; + jj_la1[170] = jj_gen; ; } expr = Expression(); @@ -5365,7 +5488,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[167] = jj_gen; + jj_la1[171] = jj_gen; ; } expr = Expression(); @@ -5381,7 +5504,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[168] = jj_gen; + jj_la1[172] = jj_gen; ; } expr = Expression(); @@ -5397,7 +5520,7 @@ final public Expr Aggregate() throws ParseException { agg = AggregatorFactory.createCustom(iri, a) ; break; default: - jj_la1[169] = jj_gen; + jj_la1[173] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5418,7 +5541,7 @@ final public Expr iriOrFunction() throws ParseException { a = ArgList(); break; default: - jj_la1[170] = jj_gen; + jj_la1[174] = jj_gen; ; } if ( a == null ) @@ -5451,13 +5574,13 @@ final public Node RDFLiteral() throws ParseException { uri = iri(); break; default: - jj_la1[171] = jj_gen; + jj_la1[175] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[172] = jj_gen; + jj_la1[176] = jj_gen; ; } {if (true) return createLiteral(lex, lang, uri) ;} @@ -5483,7 +5606,7 @@ final public Node NumericLiteral() throws ParseException { n = NumericLiteralNegative(); break; default: - jj_la1[173] = jj_gen; + jj_la1[177] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5507,7 +5630,7 @@ final public Node NumericLiteralUnsigned() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[174] = jj_gen; + jj_la1[178] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5530,7 +5653,7 @@ final public Node NumericLiteralPositive() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[175] = jj_gen; + jj_la1[179] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5553,7 +5676,7 @@ final public Node NumericLiteralNegative() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[176] = jj_gen; + jj_la1[180] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5571,7 +5694,7 @@ final public Node BooleanLiteral() throws ParseException { {if (true) return XSD_FALSE ;} break; default: - jj_la1[177] = jj_gen; + jj_la1[181] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5598,7 +5721,7 @@ final public String String() throws ParseException { lex = stripQuotes3(t.image) ; break; default: - jj_la1[178] = jj_gen; + jj_la1[182] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5607,6 +5730,26 @@ final public String String() throws ParseException { throw new Error("Missing return statement in function"); } + final public Number Number() throws ParseException { + Token t ; Number number ; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INTEGER: + t = jj_consume_token(INTEGER); + number = integerValue(t.image) ; + break; + case DECIMAL: + t = jj_consume_token(DECIMAL); + number = doubleValue(t.image) ; + break; + default: + jj_la1[183] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return number ;} + throw new Error("Missing return statement in function"); + } + final public String iri() throws ParseException { String iri ; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -5620,7 +5763,7 @@ final public String iri() throws ParseException { {if (true) return iri ;} break; default: - jj_la1[179] = jj_gen; + jj_la1[184] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5639,7 +5782,7 @@ final public String PrefixedName() throws ParseException { {if (true) return resolvePName(t.image, t.beginLine, t.beginColumn) ;} break; default: - jj_la1[180] = jj_gen; + jj_la1[185] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5658,7 +5801,7 @@ final public Node BlankNode() throws ParseException { {if (true) return createBNode(t.beginLine, t.beginColumn) ;} break; default: - jj_la1[181] = jj_gen; + jj_la1[186] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5707,204 +5850,62 @@ private boolean jj_2_5(int xla) { finally { jj_save(4, xla); } } - private boolean jj_3R_163() { - if (jj_3R_174()) return true; - return false; - } - - private boolean jj_3R_162() { - if (jj_3R_173()) return true; - return false; - } - - private boolean jj_3R_161() { - if (jj_3R_172()) return true; - return false; - } - - private boolean jj_3R_155() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_161()) { - jj_scanpos = xsp; - if (jj_3R_162()) { - jj_scanpos = xsp; - if (jj_3R_163()) return true; - } - } - return false; - } - - private boolean jj_3R_135() { - if (jj_3R_141()) return true; - return false; - } - - private boolean jj_3R_115() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_135()) { - jj_scanpos = xsp; - if (jj_3R_136()) return true; - } - return false; - } - - private boolean jj_3R_154() { - if (jj_3R_160()) return true; - return false; - } - - private boolean jj_3R_130() { - if (jj_scan_token(AGG)) return true; - if (jj_3R_139()) return true; - return false; - } - - private boolean jj_3R_129() { - if (jj_scan_token(VAR_POP)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_128() { - if (jj_scan_token(VAR_SAMP)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_127() { - if (jj_scan_token(VARIANCE)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_126() { - if (jj_scan_token(STDEV_POP)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_125() { - if (jj_scan_token(STDEV_SAMP)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_2() { - if (jj_scan_token(SEMICOLON)) return true; - if (jj_3R_42()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_scan_token(135)) { - jj_scanpos = xsp; - if (jj_scan_token(136)) { - jj_scanpos = xsp; - if (jj_scan_token(143)) { - jj_scanpos = xsp; - if (jj_scan_token(138)) { - jj_scanpos = xsp; - if (jj_scan_token(139)) { - jj_scanpos = xsp; - if (jj_scan_token(140)) { - jj_scanpos = xsp; - if (jj_scan_token(137)) { - jj_scanpos = xsp; - if (jj_scan_token(148)) { - jj_scanpos = xsp; - if (jj_scan_token(131)) { - jj_scanpos = xsp; - if (jj_scan_token(130)) { - jj_scanpos = xsp; - if (jj_scan_token(149)) { - jj_scanpos = xsp; - if (jj_scan_token(132)) { - jj_scanpos = xsp; - if (jj_scan_token(133)) { - jj_scanpos = xsp; - if (jj_scan_token(134)) return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3R_124() { - if (jj_scan_token(STDEV)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - private boolean jj_3_5() { if (jj_scan_token(SEMICOLON)) return true; if (jj_scan_token(SEPARATOR)) return true; return false; } - private boolean jj_3R_143() { + private boolean jj_3R_145() { if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_123() { + private boolean jj_3R_125() { if (jj_scan_token(GROUP_CONCAT)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_122() { + private boolean jj_3R_124() { if (jj_scan_token(SAMPLE)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_121() { + private boolean jj_3R_123() { if (jj_scan_token(AVG)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_120() { + private boolean jj_3R_122() { if (jj_scan_token(MAX)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_119() { + private boolean jj_3R_121() { if (jj_scan_token(MIN)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_118() { + private boolean jj_3R_120() { if (jj_scan_token(SUM)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_117() { + private boolean jj_3R_119() { if (jj_scan_token(COUNT)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_104() { + private boolean jj_3R_106() { Token xsp; xsp = jj_scanpos; - if (jj_3R_117()) { - jj_scanpos = xsp; - if (jj_3R_118()) { - jj_scanpos = xsp; if (jj_3R_119()) { jj_scanpos = xsp; if (jj_3R_120()) { @@ -5927,7 +5928,11 @@ private boolean jj_3R_104() { jj_scanpos = xsp; if (jj_3R_129()) { jj_scanpos = xsp; - if (jj_3R_130()) return true; + if (jj_3R_130()) { + jj_scanpos = xsp; + if (jj_3R_131()) { + jj_scanpos = xsp; + if (jj_3R_132()) return true; } } } @@ -5944,389 +5949,389 @@ private boolean jj_3R_104() { return false; } - private boolean jj_3R_144() { + private boolean jj_3R_146() { if (jj_scan_token(LBRACKET)) return true; return false; } - private boolean jj_3R_138() { - if (jj_3R_144()) return true; + private boolean jj_3R_140() { + if (jj_3R_146()) return true; return false; } - private boolean jj_3R_116() { + private boolean jj_3R_118() { Token xsp; xsp = jj_scanpos; - if (jj_3R_137()) { + if (jj_3R_139()) { jj_scanpos = xsp; - if (jj_3R_138()) return true; + if (jj_3R_140()) return true; } return false; } - private boolean jj_3R_137() { - if (jj_3R_143()) return true; + private boolean jj_3R_139() { + if (jj_3R_145()) return true; return false; } - private boolean jj_3R_112() { + private boolean jj_3R_114() { if (jj_scan_token(NOT)) return true; if (jj_scan_token(EXISTS)) return true; return false; } - private boolean jj_3R_111() { + private boolean jj_3R_113() { if (jj_scan_token(EXISTS)) return true; - if (jj_3R_132()) return true; + if (jj_3R_134()) return true; return false; } - private boolean jj_3R_109() { + private boolean jj_3R_111() { if (jj_scan_token(REPLACE)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_108() { + private boolean jj_3R_110() { if (jj_scan_token(SUBSTR)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_110() { + private boolean jj_3R_112() { if (jj_scan_token(REGEX)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_100() { - if (jj_3R_112()) return true; + private boolean jj_3R_102() { + if (jj_3R_114()) return true; return false; } - private boolean jj_3R_99() { - if (jj_3R_111()) return true; + private boolean jj_3R_101() { + if (jj_3R_113()) return true; return false; } - private boolean jj_3R_98() { - if (jj_3R_110()) return true; + private boolean jj_3R_100() { + if (jj_3R_112()) return true; return false; } - private boolean jj_3R_97() { + private boolean jj_3R_99() { if (jj_scan_token(IS_NUMERIC)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_96() { + private boolean jj_3R_98() { if (jj_scan_token(IS_LITERAL)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_95() { + private boolean jj_3R_97() { if (jj_scan_token(IS_BLANK)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_94() { + private boolean jj_3R_96() { if (jj_scan_token(IS_URI)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_93() { + private boolean jj_3R_95() { if (jj_scan_token(IS_IRI)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_92() { + private boolean jj_3R_94() { if (jj_scan_token(SAME_TERM)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_91() { + private boolean jj_3R_93() { if (jj_scan_token(STRDT)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_90() { + private boolean jj_3R_92() { if (jj_scan_token(STRLANG)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_89() { + private boolean jj_3R_91() { if (jj_scan_token(IF)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_88() { + private boolean jj_3R_90() { if (jj_scan_token(CALL)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_87() { + private boolean jj_3R_89() { if (jj_scan_token(COALESCE)) return true; - if (jj_3R_107()) return true; + if (jj_3R_109()) return true; return false; } - private boolean jj_3R_86() { + private boolean jj_3R_88() { if (jj_scan_token(VERSION)) return true; if (jj_scan_token(NIL)) return true; return false; } - private boolean jj_3R_85() { + private boolean jj_3R_87() { if (jj_scan_token(SHA512)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_84() { + private boolean jj_3R_86() { if (jj_scan_token(SHA384)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_83() { + private boolean jj_3R_85() { if (jj_scan_token(SHA256)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_82() { + private boolean jj_3R_84() { if (jj_scan_token(SHA1)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_81() { + private boolean jj_3R_83() { if (jj_scan_token(MD5)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_80() { + private boolean jj_3R_82() { if (jj_scan_token(STRUUID)) return true; if (jj_scan_token(NIL)) return true; return false; } - private boolean jj_3R_79() { + private boolean jj_3R_81() { if (jj_scan_token(UUID)) return true; if (jj_scan_token(NIL)) return true; return false; } - private boolean jj_3R_78() { + private boolean jj_3R_80() { if (jj_scan_token(NOW)) return true; if (jj_scan_token(NIL)) return true; return false; } - private boolean jj_3R_77() { + private boolean jj_3R_79() { if (jj_scan_token(TZ)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_76() { + private boolean jj_3R_78() { if (jj_scan_token(TIMEZONE)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_75() { + private boolean jj_3R_77() { if (jj_scan_token(SECONDS)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_74() { + private boolean jj_3R_76() { if (jj_scan_token(MINUTES)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_73() { + private boolean jj_3R_75() { if (jj_scan_token(HOURS)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_72() { + private boolean jj_3R_74() { if (jj_scan_token(DAY)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_71() { + private boolean jj_3R_73() { if (jj_scan_token(MONTH)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_70() { + private boolean jj_3R_72() { if (jj_scan_token(YEAR)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_69() { + private boolean jj_3R_71() { if (jj_scan_token(STRAFTER)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_68() { + private boolean jj_3R_70() { if (jj_scan_token(STRBEFORE)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_67() { + private boolean jj_3R_69() { if (jj_scan_token(STRENDS)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_66() { + private boolean jj_3R_68() { if (jj_scan_token(STRSTARTS)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_65() { + private boolean jj_3R_67() { if (jj_scan_token(CONTAINS)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_64() { + private boolean jj_3R_66() { if (jj_scan_token(ENCODE_FOR_URI)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_63() { + private boolean jj_3R_65() { if (jj_scan_token(LCASE)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_62() { + private boolean jj_3R_64() { if (jj_scan_token(UCASE)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_61() { - if (jj_3R_109()) return true; + private boolean jj_3R_63() { + if (jj_3R_111()) return true; return false; } - private boolean jj_3R_60() { + private boolean jj_3R_62() { if (jj_scan_token(STRLEN)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_59() { - if (jj_3R_108()) return true; + private boolean jj_3R_61() { + if (jj_3R_110()) return true; return false; } - private boolean jj_3R_58() { + private boolean jj_3R_60() { if (jj_scan_token(CONCAT)) return true; - if (jj_3R_107()) return true; + if (jj_3R_109()) return true; return false; } - private boolean jj_3R_57() { + private boolean jj_3R_59() { if (jj_scan_token(ROUND)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_56() { + private boolean jj_3R_58() { if (jj_scan_token(FLOOR)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_55() { + private boolean jj_3R_57() { if (jj_scan_token(CEIL)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_54() { + private boolean jj_3R_56() { if (jj_scan_token(ABS)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_106() { + private boolean jj_3R_108() { if (jj_scan_token(NIL)) return true; return false; } - private boolean jj_3R_53() { + private boolean jj_3R_55() { if (jj_scan_token(RAND)) return true; if (jj_scan_token(NIL)) return true; return false; } - private boolean jj_3R_105() { + private boolean jj_3R_107() { if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_52() { + private boolean jj_3R_54() { if (jj_scan_token(BNODE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_105()) { + if (jj_3R_107()) { jj_scanpos = xsp; - if (jj_3R_106()) return true; + if (jj_3R_108()) return true; } return false; } - private boolean jj_3R_51() { + private boolean jj_3R_53() { if (jj_scan_token(URI)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_50() { + private boolean jj_3R_52() { if (jj_scan_token(IRI)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_49() { + private boolean jj_3R_51() { if (jj_scan_token(BOUND)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_132() { + private boolean jj_3R_134() { if (jj_scan_token(LBRACE)) return true; return false; } - private boolean jj_3R_48() { + private boolean jj_3R_50() { if (jj_scan_token(DTYPE)) return true; if (jj_scan_token(LPAREN)) return true; return false; @@ -6334,40 +6339,36 @@ private boolean jj_3R_48() { private boolean jj_3_3() { if (jj_scan_token(DOT)) return true; - if (jj_3R_43()) return true; + if (jj_3R_45()) return true; return false; } - private boolean jj_3R_47() { + private boolean jj_3R_49() { if (jj_scan_token(LANGMATCHES)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_46() { + private boolean jj_3R_48() { if (jj_scan_token(LANG)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_45() { + private boolean jj_3R_47() { if (jj_scan_token(STR)) return true; if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_44() { - if (jj_3R_104()) return true; + private boolean jj_3R_46() { + if (jj_3R_106()) return true; return false; } - private boolean jj_3R_41() { + private boolean jj_3R_43() { Token xsp; xsp = jj_scanpos; - if (jj_3R_44()) { - jj_scanpos = xsp; - if (jj_3R_45()) { - jj_scanpos = xsp; if (jj_3R_46()) { jj_scanpos = xsp; if (jj_3R_47()) { @@ -6476,7 +6477,11 @@ private boolean jj_3R_41() { jj_scanpos = xsp; if (jj_3R_99()) { jj_scanpos = xsp; - if (jj_3R_100()) return true; + if (jj_3R_100()) { + jj_scanpos = xsp; + if (jj_3R_101()) { + jj_scanpos = xsp; + if (jj_3R_102()) return true; } } } @@ -6537,309 +6542,309 @@ private boolean jj_3R_41() { } private boolean jj_3_1() { - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3R_114() { - if (jj_3R_134()) return true; + if (jj_3R_43()) return true; return false; } - private boolean jj_3R_134() { - if (jj_scan_token(PREFIX)) return true; - if (jj_scan_token(PNAME_NS)) return true; - if (jj_3R_140()) return true; + private boolean jj_3R_142() { + if (jj_scan_token(IRIref)) return true; return false; } - private boolean jj_3R_133() { - if (jj_scan_token(BASE)) return true; - if (jj_3R_140()) return true; + private boolean jj_3R_169() { + if (jj_scan_token(ANON)) return true; return false; } - private boolean jj_3R_101() { + private boolean jj_3R_159() { Token xsp; xsp = jj_scanpos; - if (jj_3R_113()) { + if (jj_3R_168()) { jj_scanpos = xsp; - if (jj_3R_114()) return true; + if (jj_3R_169()) return true; } return false; } - private boolean jj_3R_113() { - if (jj_3R_133()) return true; - return false; - } - - private boolean jj_3R_42() { - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_101()) { jj_scanpos = xsp; break; } - } + private boolean jj_3R_168() { + if (jj_scan_token(BLANK_NODE_LABEL)) return true; return false; } - private boolean jj_3R_103() { - if (jj_3R_116()) return true; + private boolean jj_3R_105() { + if (jj_3R_118()) return true; return false; } - private boolean jj_3R_140() { - if (jj_scan_token(IRIref)) return true; + private boolean jj_3R_116() { + if (jj_3R_136()) return true; return false; } - private boolean jj_3R_102() { - if (jj_3R_115()) return true; + private boolean jj_3R_104() { + if (jj_3R_117()) return true; return false; } - private boolean jj_3R_43() { + private boolean jj_3R_45() { Token xsp; xsp = jj_scanpos; - if (jj_3R_102()) { + if (jj_3R_104()) { jj_scanpos = xsp; - if (jj_3R_103()) return true; + if (jj_3R_105()) return true; } return false; } + private boolean jj_3R_161() { + if (jj_scan_token(PNAME_NS)) return true; + return false; + } + private boolean jj_3_4() { if (jj_scan_token(DOT)) return true; - if (jj_3R_43()) return true; + if (jj_3R_45()) return true; return false; } - private boolean jj_3R_167() { - if (jj_scan_token(ANON)) return true; + private boolean jj_3R_160() { + if (jj_scan_token(PNAME_LN)) return true; return false; } - private boolean jj_3R_157() { + private boolean jj_3R_136() { + if (jj_scan_token(PREFIX)) return true; + if (jj_scan_token(PNAME_NS)) return true; + if (jj_3R_142()) return true; + return false; + } + + private boolean jj_3R_155() { Token xsp; xsp = jj_scanpos; - if (jj_3R_166()) { + if (jj_3R_160()) { jj_scanpos = xsp; - if (jj_3R_167()) return true; + if (jj_3R_161()) return true; } return false; } - private boolean jj_3R_166() { - if (jj_scan_token(BLANK_NODE_LABEL)) return true; - return false; - } - - private boolean jj_3R_159() { - if (jj_scan_token(PNAME_NS)) return true; + private boolean jj_3R_148() { + if (jj_3R_155()) return true; return false; } - private boolean jj_3R_158() { - if (jj_scan_token(PNAME_LN)) return true; + private boolean jj_3R_135() { + if (jj_scan_token(BASE)) return true; + if (jj_3R_142()) return true; return false; } - private boolean jj_3R_153() { + private boolean jj_3R_141() { Token xsp; xsp = jj_scanpos; - if (jj_3R_158()) { + if (jj_3R_147()) { jj_scanpos = xsp; - if (jj_3R_159()) return true; + if (jj_3R_148()) return true; } return false; } - private boolean jj_3R_146() { - if (jj_3R_153()) return true; + private boolean jj_3R_147() { + if (jj_3R_142()) return true; return false; } - private boolean jj_3R_139() { + private boolean jj_3R_103() { Token xsp; xsp = jj_scanpos; - if (jj_3R_145()) { + if (jj_3R_115()) { jj_scanpos = xsp; - if (jj_3R_146()) return true; + if (jj_3R_116()) return true; } return false; } - private boolean jj_3R_145() { - if (jj_3R_140()) return true; + private boolean jj_3R_115() { + if (jj_3R_135()) return true; return false; } - private boolean jj_3R_131() { + private boolean jj_3R_44() { + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_103()) { jj_scanpos = xsp; break; } + } + return false; + } + + private boolean jj_3R_133() { if (jj_scan_token(LPAREN)) return true; return false; } - private boolean jj_3R_107() { + private boolean jj_3R_109() { Token xsp; xsp = jj_scanpos; - if (jj_scan_token(170)) { + if (jj_scan_token(171)) { jj_scanpos = xsp; - if (jj_3R_131()) return true; + if (jj_3R_133()) return true; } return false; } - private boolean jj_3R_171() { + private boolean jj_3R_173() { if (jj_scan_token(STRING_LITERAL_LONG2)) return true; return false; } - private boolean jj_3R_170() { + private boolean jj_3R_172() { if (jj_scan_token(STRING_LITERAL_LONG1)) return true; return false; } - private boolean jj_3R_169() { + private boolean jj_3R_171() { if (jj_scan_token(STRING_LITERAL2)) return true; return false; } - private boolean jj_3R_168() { + private boolean jj_3R_170() { if (jj_scan_token(STRING_LITERAL1)) return true; return false; } - private boolean jj_3R_160() { + private boolean jj_3R_162() { Token xsp; xsp = jj_scanpos; - if (jj_3R_168()) { + if (jj_3R_170()) { jj_scanpos = xsp; - if (jj_3R_169()) { + if (jj_3R_171()) { jj_scanpos = xsp; - if (jj_3R_170()) { + if (jj_3R_172()) { jj_scanpos = xsp; - if (jj_3R_171()) return true; + if (jj_3R_173()) return true; } } } return false; } - private boolean jj_3R_165() { + private boolean jj_3R_167() { if (jj_scan_token(FALSE)) return true; return false; } - private boolean jj_3R_156() { + private boolean jj_3R_158() { Token xsp; xsp = jj_scanpos; - if (jj_3R_164()) { + if (jj_3R_166()) { jj_scanpos = xsp; - if (jj_3R_165()) return true; + if (jj_3R_167()) return true; } return false; } - private boolean jj_3R_164() { + private boolean jj_3R_166() { if (jj_scan_token(TRUE)) return true; return false; } - private boolean jj_3R_183() { + private boolean jj_3R_185() { if (jj_scan_token(DOUBLE_NEGATIVE)) return true; return false; } - private boolean jj_3R_182() { + private boolean jj_3R_184() { if (jj_scan_token(DECIMAL_NEGATIVE)) return true; return false; } - private boolean jj_3R_181() { + private boolean jj_3R_183() { if (jj_scan_token(INTEGER_NEGATIVE)) return true; return false; } - private boolean jj_3R_174() { + private boolean jj_3R_176() { Token xsp; xsp = jj_scanpos; - if (jj_3R_181()) { + if (jj_3R_183()) { jj_scanpos = xsp; - if (jj_3R_182()) { + if (jj_3R_184()) { jj_scanpos = xsp; - if (jj_3R_183()) return true; + if (jj_3R_185()) return true; } } return false; } - private boolean jj_3R_152() { + private boolean jj_3R_154() { if (jj_scan_token(NIL)) return true; return false; } - private boolean jj_3R_151() { - if (jj_3R_157()) return true; + private boolean jj_3R_153() { + if (jj_3R_159()) return true; return false; } - private boolean jj_3R_180() { + private boolean jj_3R_182() { if (jj_scan_token(DOUBLE_POSITIVE)) return true; return false; } - private boolean jj_3R_150() { - if (jj_3R_156()) return true; + private boolean jj_3R_152() { + if (jj_3R_158()) return true; return false; } - private boolean jj_3R_179() { + private boolean jj_3R_181() { if (jj_scan_token(DECIMAL_POSITIVE)) return true; return false; } - private boolean jj_3R_149() { - if (jj_3R_155()) return true; + private boolean jj_3R_151() { + if (jj_3R_157()) return true; return false; } - private boolean jj_3R_148() { - if (jj_3R_154()) return true; + private boolean jj_3R_150() { + if (jj_3R_156()) return true; return false; } - private boolean jj_3R_173() { + private boolean jj_3R_175() { Token xsp; xsp = jj_scanpos; - if (jj_3R_178()) { + if (jj_3R_180()) { jj_scanpos = xsp; - if (jj_3R_179()) { + if (jj_3R_181()) { jj_scanpos = xsp; - if (jj_3R_180()) return true; + if (jj_3R_182()) return true; } } return false; } - private boolean jj_3R_178() { + private boolean jj_3R_180() { if (jj_scan_token(INTEGER_POSITIVE)) return true; return false; } - private boolean jj_3R_142() { + private boolean jj_3R_144() { Token xsp; xsp = jj_scanpos; - if (jj_3R_147()) { - jj_scanpos = xsp; - if (jj_3R_148()) { - jj_scanpos = xsp; if (jj_3R_149()) { jj_scanpos = xsp; if (jj_3R_150()) { jj_scanpos = xsp; if (jj_3R_151()) { jj_scanpos = xsp; - if (jj_3R_152()) return true; + if (jj_3R_152()) { + jj_scanpos = xsp; + if (jj_3R_153()) { + jj_scanpos = xsp; + if (jj_3R_154()) return true; } } } @@ -6848,12 +6853,12 @@ private boolean jj_3R_142() { return false; } - private boolean jj_3R_147() { - if (jj_3R_139()) return true; + private boolean jj_3R_149() { + if (jj_3R_141()) return true; return false; } - private boolean jj_3R_141() { + private boolean jj_3R_143() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(14)) { @@ -6863,36 +6868,174 @@ private boolean jj_3R_141() { return false; } - private boolean jj_3R_177() { + private boolean jj_3R_179() { if (jj_scan_token(DOUBLE)) return true; return false; } - private boolean jj_3R_176() { + private boolean jj_3R_178() { if (jj_scan_token(DECIMAL)) return true; return false; } - private boolean jj_3R_172() { + private boolean jj_3R_174() { Token xsp; xsp = jj_scanpos; - if (jj_3R_175()) { + if (jj_3R_177()) { jj_scanpos = xsp; - if (jj_3R_176()) { + if (jj_3R_178()) { jj_scanpos = xsp; - if (jj_3R_177()) return true; + if (jj_3R_179()) return true; } } return false; } - private boolean jj_3R_175() { + private boolean jj_3R_177() { if (jj_scan_token(INTEGER)) return true; return false; } - private boolean jj_3R_136() { - if (jj_3R_142()) return true; + private boolean jj_3R_138() { + if (jj_3R_144()) return true; + return false; + } + + private boolean jj_3R_165() { + if (jj_3R_176()) return true; + return false; + } + + private boolean jj_3R_164() { + if (jj_3R_175()) return true; + return false; + } + + private boolean jj_3R_163() { + if (jj_3R_174()) return true; + return false; + } + + private boolean jj_3R_157() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_163()) { + jj_scanpos = xsp; + if (jj_3R_164()) { + jj_scanpos = xsp; + if (jj_3R_165()) return true; + } + } + return false; + } + + private boolean jj_3R_137() { + if (jj_3R_143()) return true; + return false; + } + + private boolean jj_3R_117() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_137()) { + jj_scanpos = xsp; + if (jj_3R_138()) return true; + } + return false; + } + + private boolean jj_3R_156() { + if (jj_3R_162()) return true; + return false; + } + + private boolean jj_3R_132() { + if (jj_scan_token(AGG)) return true; + if (jj_3R_141()) return true; + return false; + } + + private boolean jj_3R_131() { + if (jj_scan_token(VAR_POP)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_130() { + if (jj_scan_token(VAR_SAMP)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_129() { + if (jj_scan_token(VARIANCE)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_128() { + if (jj_scan_token(STDEV_POP)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_127() { + if (jj_scan_token(STDEV_SAMP)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_2() { + if (jj_scan_token(SEMICOLON)) return true; + if (jj_3R_44()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_scan_token(136)) { + jj_scanpos = xsp; + if (jj_scan_token(137)) { + jj_scanpos = xsp; + if (jj_scan_token(144)) { + jj_scanpos = xsp; + if (jj_scan_token(139)) { + jj_scanpos = xsp; + if (jj_scan_token(140)) { + jj_scanpos = xsp; + if (jj_scan_token(141)) { + jj_scanpos = xsp; + if (jj_scan_token(138)) { + jj_scanpos = xsp; + if (jj_scan_token(149)) { + jj_scanpos = xsp; + if (jj_scan_token(132)) { + jj_scanpos = xsp; + if (jj_scan_token(131)) { + jj_scanpos = xsp; + if (jj_scan_token(150)) { + jj_scanpos = xsp; + if (jj_scan_token(133)) { + jj_scanpos = xsp; + if (jj_scan_token(134)) { + jj_scanpos = xsp; + if (jj_scan_token(135)) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3R_126() { + if (jj_scan_token(STDEV)) return true; + if (jj_scan_token(LPAREN)) return true; return false; } @@ -6907,7 +7050,7 @@ private boolean jj_3R_136() { private Token jj_scanpos, jj_lastpos; private int jj_la; private int jj_gen; - final private int[] jj_la1 = new int[182]; + final private int[] jj_la1 = new int[187]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -6925,25 +7068,25 @@ private boolean jj_3R_136() { jj_la1_init_6(); } private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0xe400000,0x200,0x300000,0x300000,0x0,0x1800000,0x1800000,0x1c00,0x0,0xdc00,0xdc00,0xdc00,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x1c00,0x0,0x0,0x0,0x40000000,0x30000000,0xdc00,0x0,0xdc00,0x1c00,0xdc00,0x0,0xdc00,0xdc00,0x20000000,0x10000000,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0xfc00,0x0,0x0,0xfc00,0xfc00,0xfc00,0x0,0x0,0xfc00,0x0,0xfc00,0x0,0x400000,0xfc00,0x0,0x0,0xfc00,0xfc00,0x0,0x0,0x0,0xc000,0x3c00,0xc000,0x0,0x0,0x3c00,0x0,0x3c00,0x0,0x1c00,0x800000,0x0,0x0,0x0,0x0,0x0,0xfc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0xfc00,0x88dc00,0x88dc00,0x0,0x88dc00,0x88dc00,0x0,0x0,0x0,0x0,0x0,0x881c00,0x0,0x0,0x0,0x0,0x881c00,0x0,0x81c00,0x81c00,0x81c00,0x81c00,0x0,0x0,0xfc00,0xfc00,0xfc00,0xfc00,0xfc00,0xdc00,0xfc00,0xc000,0x3c00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0xdc00,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x0,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x1800,0x2000,}; + jj_la1_0 = new int[] {0x1e400000,0x200,0x300000,0x300000,0x0,0x1800000,0x1800000,0x1c00,0x0,0xdc00,0xdc00,0xdc00,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0xc000,0x0,0xc000,0x1c00,0x0,0x0,0x0,0x80000000,0x60000000,0xdc00,0x0,0xdc00,0x1c00,0xdc00,0x0,0xdc00,0xdc00,0x40000000,0x20000000,0x60000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0xfc00,0x0,0x0,0xfc00,0xfc00,0xfc00,0x0,0x0,0xfc00,0x0,0xfc00,0x0,0x400000,0xfc00,0x0,0x0,0xfc00,0xfc00,0x0,0x0,0x0,0xc000,0x3c00,0xc000,0x0,0x0,0x3c00,0x0,0x3c00,0x0,0x1c00,0x800000,0x0,0x0,0x0,0x0,0x0,0xfc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0xfc00,0x88dc00,0x88dc00,0x0,0x88dc00,0x88dc00,0x0,0x0,0x0,0x0,0x0,0x881c00,0x0,0x0,0x0,0x0,0x881c00,0x0,0x81c00,0x81c00,0x81c00,0x81c00,0x0,0x0,0xfc00,0xfc00,0xfc00,0xfc00,0xfc00,0xdc00,0xfc00,0xc000,0x3c00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0xdc00,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x0,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x1800,0x2000,}; } private static void jj_la1_init_1() { - jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x20000,0xffe18000,0xffe18000,0xffe18000,0x20,0x20,0x60,0x0,0x0,0x20,0x40,0x20,0x10,0x40,0x40000,0x80000,0x0,0x0,0xffe18000,0x20000,0xffe18000,0xffe18000,0xffe1800c,0xc,0xffe18000,0xffe1800c,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x100,0x100,0x110,0x0,0x100,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x1fb01,0x0,0x0,0x0,0x0,0x1fb01,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x2,0x400,0xffe18000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffe18000,0xffe18000,0x0,0x0,0xffe18000,0x0,0x0,0x0,0x0,0xffe18000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffe00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x40000,0xffc30000,0xffc30000,0xffc30000,0x40,0x40,0xc0,0x0,0x0,0x40,0x80,0x40,0x40,0x0,0x0,0x0,0x20,0x80,0x80000,0x100000,0x0,0x0,0xffc30000,0x40000,0xffc30000,0xffc30000,0xffc30018,0x18,0xffc30000,0xffc30018,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x200,0x200,0x220,0x0,0x200,0x0,0x0,0x0,0x0,0x200,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x3f602,0x0,0x0,0x0,0x0,0x3f602,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x4,0x800,0xffc30000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc30000,0xffc30000,0x0,0x0,0xffc30000,0x0,0x0,0x0,0x0,0xffc30000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_2() { - jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff97b7,0xffff97b7,0xffff97b7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff97b7,0x0,0xffff97b7,0xffff97b7,0xffff97b7,0x0,0xffff97b7,0xffff97b7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff97b7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x6000,0x0,0x6000,0x6000,0x0,0x0,0x0,0x0,0x0,0x6000,0x0,0x0,0x0,0x0,0x6000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff97b7,0xffff97b7,0x0,0x0,0xffff97b7,0x0,0x0,0x0,0x0,0xffff97b7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0xffff2f6f,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0x0,0xffff2f6f,0xffff2f6f,0xffff2f6f,0x0,0xffff2f6f,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000,0xc000,0x0,0xc000,0xc000,0x0,0x0,0x0,0x0,0x0,0xc000,0x0,0x0,0x0,0x0,0xc000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0xffff2f6f,0x0,0x0,0xffff2f6f,0x0,0x0,0x0,0x0,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_3() { - jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0xf7ffffff,0xf7ffffff,0xf7ffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x77ffffff,0x0,0x77ffffff,0x77ffffff,0x77ffffff,0x0,0x77ffffff,0x77ffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x80000000,0x80000000,0x80000000,0x0,0x0,0x80000000,0x0,0x80000000,0x0,0x0,0x80000000,0x0,0x0,0x80000000,0x80000000,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x80000000,0x0,0x80000000,0x0,0x77ffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf7ffffff,0xf7ffffff,0x0,0x0,0x77ffffff,0x0,0x0,0x0,0x0,0xf7ffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,}; + jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0xefffffff,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0x0,0xefffffff,0xefffffff,0xefffffff,0x0,0xefffffff,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0xefffffff,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_4() { - jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff800001,0x0,0xff800001,0xff800001,0xff800001,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x109ffc,0x109ffc,0x4000,0x10000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x100000,0x4,0xc,0x200000,0x0,0x0,0x40000,0xc0000,0xff800001,0x0,0x0,0xff800001,0xff800001,0xff800001,0x0,0x0,0xff800001,0x0,0xff800001,0x0,0x0,0xff800001,0x0,0x0,0xff800001,0xff800001,0x0,0x0,0x4000,0x0,0xff800001,0x0,0x0,0x0,0xff800001,0x0,0xff800001,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff800001,0x0,0x0,0x0,0x0,0x0,0xff800001,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0x0,0x800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff800001,0xff800001,0xff800001,0xff800001,0xff800001,0x0,0x0,0x0,0xff800001,0x0,0x0,0x0,0x0,0xfc000000,0xfc000000,0x0,0x0,0xfc000000,0x0,0x0,0xff800001,0xff800001,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff800001,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff800000,0x3800000,0x1c000000,0xe0000000,0x1,0x0,0x0,0x0,0x0,}; + jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3000000,0x0,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x213ff8,0x213ff8,0x8000,0x20000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x200000,0x8,0x18,0x400000,0x0,0x0,0x80000,0x180000,0xff000003,0x0,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0xff000003,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x8000,0x0,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0xff000003,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0xf8000000,0xf8000000,0x0,0x0,0xf8000000,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000000,0x7000000,0x38000000,0xc0000000,0x3,0x0,0x3000000,0x0,0x0,0x0,}; } private static void jj_la1_init_5() { - jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf0,0x0,0x1f0,0x1f0,0x1f0,0x0,0x0,0x800,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x100,0x100,0x100,0x0,0x100,0x100,0x0,0x0,0x0,0x0,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa5f0,0x0,0x40000,0xa5f0,0xa5f0,0xa5f0,0x800,0x40000,0xa5f0,0x0,0xa5f0,0x40000,0x0,0xa5f0,0x800,0x40000,0xa5f0,0xa5f0,0x40000,0x800,0x0,0x500,0x80f0,0x0,0x500,0x500,0x80f0,0x500,0x80f0,0x0,0x100,0x0,0x20000,0x500,0x20000,0x500,0x40000,0xa5f0,0x0,0x10000,0x0,0x0,0x20000,0xa5f0,0x2000100,0x2000100,0x10000,0x2000100,0x2000100,0x20000,0x0,0x0,0x0,0x40000800,0x2000100,0x1000,0x21000,0x40020000,0x40000800,0x2000100,0x0,0x0,0x100,0x0,0x0,0x2100,0x2100,0xa5f0,0xa5f0,0xa5f0,0xa5f0,0x84f0,0x0,0x8000,0x0,0x84f0,0x10000000,0x20000000,0x1f80000,0x1f80000,0xc0000000,0x0,0x0,0x0,0xc0000000,0x0,0x0,0xc20001f0,0x1f0,0x500,0x20000,0x0,0x20000,0x20000,0x20000,0x0,0xc20001f0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x500,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf0,0x0,0x0,0x8000,}; + jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e1,0x0,0x3e1,0x3e1,0x3e1,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x1e0,0x40000,0x1e0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x200,0x200,0x0,0x200,0x200,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14be1,0x0,0x80000,0x14be1,0x14be1,0x14be1,0x1000,0x80000,0x14be1,0x0,0x14be1,0x80000,0x0,0x14be1,0x1000,0x80000,0x14be1,0x14be1,0x80000,0x1000,0x0,0xa00,0x101e1,0x0,0xa00,0xa00,0x101e1,0xa00,0x101e1,0x0,0x200,0x0,0x40000,0xa00,0x40000,0xa00,0x80000,0x14be1,0x0,0x20000,0x0,0x0,0x40000,0x14be1,0x4000200,0x4000200,0x20000,0x4000200,0x4000200,0x40000,0x0,0x0,0x0,0x80001000,0x4000200,0x2000,0x42000,0x80040000,0x80001000,0x4000200,0x0,0x0,0x200,0x0,0x0,0x4200,0x4200,0x14be1,0x14be1,0x14be1,0x14be1,0x109e1,0x0,0x10000,0x0,0x109e1,0x20000000,0x40000000,0x3f00000,0x3f00000,0x80000001,0x1,0x0,0x0,0x80000001,0x0,0x0,0x840003e1,0x3e1,0xa00,0x40000,0x0,0x40000,0x40000,0x40000,0x0,0x840003e1,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa00,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x1e0,0x0,0x0,0x0,0x10000,}; } private static void jj_la1_init_6() { - jj_la1_6 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x40,0x0,0x40,0x40,0x0,0x20,0x42,0x42,0x201,0x40,0x0,0x0,0x1,0x201,0x0,0x20,0x40,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x3,0x0,0x3,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_6 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x0,0x80,0x80,0x0,0x40,0x84,0x84,0x402,0x80,0x0,0x0,0x2,0x402,0x0,0x40,0x80,0x80,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x6,0x6,0x1,0x6,0x6,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } final private JJCalls[] jj_2_rtns = new JJCalls[5]; private boolean jj_rescan = false; @@ -6960,7 +7103,7 @@ public ARQParser(java.io.InputStream stream, String encoding) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 182; i++) jj_la1[i] = -1; + for (int i = 0; i < 187; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -6975,7 +7118,7 @@ public void ReInit(java.io.InputStream stream, String encoding) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 182; i++) jj_la1[i] = -1; + for (int i = 0; i < 187; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -6986,7 +7129,7 @@ public ARQParser(java.io.Reader stream) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 182; i++) jj_la1[i] = -1; + for (int i = 0; i < 187; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -6997,7 +7140,7 @@ public void ReInit(java.io.Reader stream) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 182; i++) jj_la1[i] = -1; + for (int i = 0; i < 187; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7007,7 +7150,7 @@ public ARQParser(ARQParserTokenManager tm) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 182; i++) jj_la1[i] = -1; + for (int i = 0; i < 187; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7017,7 +7160,7 @@ public void ReInit(ARQParserTokenManager tm) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 182; i++) jj_la1[i] = -1; + for (int i = 0; i < 187; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7095,7 +7238,7 @@ private int jj_ntk() { return (jj_ntk = jj_nt.kind); } - private java.util.List jj_expentries = new java.util.ArrayList<>(); + private java.util.List jj_expentries = new java.util.ArrayList(); private int[] jj_expentry; private int jj_kind = -1; private int[] jj_lasttokens = new int[100]; @@ -7110,18 +7253,21 @@ private void jj_add_error_token(int kind, int pos) { for (int i = 0; i < jj_endpos; i++) { jj_expentry[i] = jj_lasttokens[i]; } - jj_entries_loop: for (java.util.Iterator it = jj_expentries.iterator(); it.hasNext();) { + boolean exists = false; + for (java.util.Iterator it = jj_expentries.iterator(); it.hasNext();) { + exists = true; int[] oldentry = (int[])(it.next()); if (oldentry.length == jj_expentry.length) { for (int i = 0; i < jj_expentry.length; i++) { if (oldentry[i] != jj_expentry[i]) { - continue jj_entries_loop; + exists = false; + break; } } - jj_expentries.add(jj_expentry); - break jj_entries_loop; + if (exists) break; } } + if (!exists) jj_expentries.add(jj_expentry); if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; } } @@ -7129,12 +7275,12 @@ private void jj_add_error_token(int kind, int pos) { /** Generate ParseException. */ public ParseException generateParseException() { jj_expentries.clear(); - boolean[] la1tokens = new boolean[213]; + boolean[] la1tokens = new boolean[214]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 182; i++) { + for (int i = 0; i < 187; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1< 151) - kind = 151; + if (kind > 152) + kind = 152; jjCheckNAddStates(0, 6); } else if (curChar == 45) @@ -2527,8 +2541,8 @@ else if (curChar == 39) jjstateSet[jjnewStateCnt++] = 32; break; case 40: - if ((0x8400000000L & l) != 0L && kind > 163) - kind = 163; + if ((0x8400000000L & l) != 0L && kind > 164) + kind = 164; break; case 41: if (curChar == 39) @@ -2543,8 +2557,8 @@ else if (curChar == 39) jjCheckNAddStates(29, 31); break; case 45: - if (curChar == 39 && kind > 164) - kind = 164; + if (curChar == 39 && kind > 165) + kind = 165; break; case 46: if (curChar == 34) @@ -2559,8 +2573,8 @@ else if (curChar == 39) jjCheckNAddStates(26, 28); break; case 50: - if (curChar == 34 && kind > 165) - kind = 165; + if (curChar == 34 && kind > 166) + kind = 166; break; case 51: if (curChar == 39) @@ -2584,8 +2598,8 @@ else if (curChar == 39) jjAddStates(45, 46); break; case 58: - if (curChar == 39 && kind > 166) - kind = 166; + if (curChar == 39 && kind > 167) + kind = 167; break; case 59: if (curChar == 39) @@ -2621,8 +2635,8 @@ else if (curChar == 39) jjAddStates(51, 52); break; case 69: - if (curChar == 34 && kind > 167) - kind = 167; + if (curChar == 34 && kind > 168) + kind = 168; break; case 70: if (curChar == 34) @@ -2657,8 +2671,8 @@ else if (curChar == 39) jjCheckNAddStates(20, 22); break; case 78: - if (curChar == 41 && kind > 170) - kind = 170; + if (curChar == 41 && kind > 171) + kind = 171; break; case 79: if (curChar == 10) @@ -2839,15 +2853,15 @@ else if (curChar == 39) case 145: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 151) - kind = 151; + if (kind > 152) + kind = 152; jjCheckNAddStates(0, 6); break; case 146: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 151) - kind = 151; + if (kind > 152) + kind = 152; jjCheckNAdd(146); break; case 147: @@ -2861,8 +2875,8 @@ else if (curChar == 39) case 149: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 152) - kind = 152; + if (kind > 153) + kind = 153; jjCheckNAdd(149); break; case 150: @@ -2884,8 +2898,8 @@ else if (curChar == 39) case 155: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 153) - kind = 153; + if (kind > 154) + kind = 154; jjCheckNAdd(155); break; case 156: @@ -2899,8 +2913,8 @@ else if (curChar == 39) case 159: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 153) - kind = 153; + if (kind > 154) + kind = 154; jjCheckNAdd(159); break; case 160: @@ -2918,8 +2932,8 @@ else if (curChar == 39) case 164: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 153) - kind = 153; + if (kind > 154) + kind = 154; jjCheckNAdd(164); break; case 165: @@ -2929,8 +2943,8 @@ else if (curChar == 39) case 166: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 154) - kind = 154; + if (kind > 155) + kind = 155; jjCheckNAdd(166); break; case 167: @@ -2944,8 +2958,8 @@ else if (curChar == 39) case 169: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 155) - kind = 155; + if (kind > 156) + kind = 156; jjCheckNAdd(169); break; case 170: @@ -2963,8 +2977,8 @@ else if (curChar == 39) case 174: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 156) - kind = 156; + if (kind > 157) + kind = 157; jjCheckNAdd(174); break; case 175: @@ -2990,8 +3004,8 @@ else if (curChar == 39) case 181: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 156) - kind = 156; + if (kind > 157) + kind = 157; jjCheckNAdd(181); break; case 182: @@ -3005,8 +3019,8 @@ else if (curChar == 39) case 185: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 156) - kind = 156; + if (kind > 157) + kind = 157; jjCheckNAdd(185); break; case 186: @@ -3016,8 +3030,8 @@ else if (curChar == 39) case 187: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 157) - kind = 157; + if (kind > 158) + kind = 158; jjCheckNAdd(187); break; case 188: @@ -3031,8 +3045,8 @@ else if (curChar == 39) case 190: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 158) - kind = 158; + if (kind > 159) + kind = 159; jjCheckNAdd(190); break; case 191: @@ -3050,8 +3064,8 @@ else if (curChar == 39) case 195: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 159) - kind = 159; + if (kind > 160) + kind = 160; jjCheckNAdd(195); break; case 196: @@ -3077,8 +3091,8 @@ else if (curChar == 39) case 202: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 159) - kind = 159; + if (kind > 160) + kind = 160; jjCheckNAdd(202); break; case 203: @@ -3092,8 +3106,8 @@ else if (curChar == 39) case 206: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 159) - kind = 159; + if (kind > 160) + kind = 160; jjCheckNAdd(206); break; default : break; @@ -3193,8 +3207,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(32, 37); break; case 28: - if ((0x200000002L & l) != 0L && kind > 132) - kind = 132; + if ((0x200000002L & l) != 0L && kind > 133) + kind = 133; break; case 29: if ((0x10000000100000L & l) != 0L) @@ -3233,8 +3247,8 @@ else if ((0x20000000200L & l) != 0L) jjstateSet[jjnewStateCnt++] = 40; break; case 40: - if ((0x14404410000000L & l) != 0L && kind > 163) - kind = 163; + if ((0x14404410000000L & l) != 0L && kind > 164) + kind = 164; break; case 42: if ((0xffffffffefffffffL & l) != 0L) @@ -3295,8 +3309,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(59, 64); break; case 86: - if (curChar == 93 && kind > 175) - kind = 175; + if (curChar == 93 && kind > 176) + kind = 176; break; case 89: if ((0x7fffffe07fffffeL & l) != 0L) @@ -3395,8 +3409,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(78, 83); break; case 119: - if ((0x200000002L & l) != 0L && kind > 133) - kind = 133; + if ((0x200000002L & l) != 0L && kind > 134) + kind = 134; break; case 120: if ((0x10000000100000L & l) != 0L) @@ -3434,8 +3448,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(87, 92); break; case 134: - if ((0x2000000020L & l) != 0L && kind > 134) - kind = 134; + if ((0x2000000020L & l) != 0L && kind > 135) + kind = 135; break; case 135: if ((0x4000000040000L & l) != 0L) @@ -3767,18 +3781,18 @@ private static final boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, lo null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, -null, "\50", "\51", null, "\173", "\175", "\133", "\135", null, "\73", "\54", "\56", -"\75", "\41\75", "\76", "\74", "\74\75", "\76\75", "\41", "\176", "\72", "\174\174", -"\46\46", "\53", "\55", "\52", "\57", "\136\136", "\100", "\72\75", "\174", "\136", -"\55\76", "\74\55", "\77", null, null, null, null, null, null, null, null, null, null, -null, }; +null, null, "\50", "\51", null, "\173", "\175", "\133", "\135", null, "\73", "\54", +"\56", "\75", "\41\75", "\76", "\74", "\74\75", "\76\75", "\41", "\176", "\72", +"\174\174", "\46\46", "\53", "\55", "\52", "\57", "\136\136", "\100", "\72\75", "\174", +"\136", "\55\76", "\74\55", "\77", null, null, null, null, null, null, null, null, +null, null, null, }; /** Lexer state names. */ public static final String[] lexStateNames = { "DEFAULT", }; static final long[] jjtoToken = { - 0xfffffffffff9fe01L, 0xffffffffffffffffL, 0xfffffff8ffbfffffL, 0x3ffL, + 0xfffffffffff9fe01L, 0xffffffffffffffffL, 0xfffffff1ff7fffffL, 0x7ffL, }; static final long[] jjtoSkip = { 0x7eL, 0x0L, 0x0L, 0x0L, diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java index c3d04b4f29b..74367389837 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java @@ -13,6 +13,38 @@ @SuppressWarnings("all") public class SPARQLParser11 extends SPARQLParser11Base implements SPARQLParser11Constants { + boolean allowAggregatesInExpressions = false ; + public static void main(String args[]) { + while (true) { + StringBuilder queryString = new StringBuilder() ; + java.util.Scanner scanner = new java.util.Scanner(System.in) ; + boolean firstEmptyLine = false ; + System.out.print("Enter input: ") ; + while (true) { + String line = scanner.nextLine() ; + if ("".equals(line) || line == null) { + if (firstEmptyLine) break ; + firstEmptyLine = true ; + } else { + queryString.append(line + System.lineSeparator()) ; + firstEmptyLine = false ; + } + } + try { + Query query = QueryFactory.create(queryString.toString(), + "http://example/query-base", Syntax.syntaxARQ) ; + java.io.Reader in = new java.io.StringReader(queryString.toString()) ; + SPARQLParser11 parser = new SPARQLParser11(in) ; + parser.setQuery(query) ; + parser.QueryUnit() ; + System.out.println("Parsed query successfully!") ; + System.out.println("---" + System.lineSeparator()) ; + } catch (Exception e) { + System.out.println("Parser error: " + e.getMessage()) ; + e.printStackTrace(System.err) ; + } + } + } final public void QueryUnit() throws ParseException { ByteOrderMark(); @@ -37,6 +69,9 @@ final public void Query() throws ParseException { case ASK: AskQuery(); break; + case JSON: + JsonQuery(); + break; default: jj_la1[0] = jj_gen; jj_consume_token(-1); @@ -379,6 +414,94 @@ final public void AskQuery() throws ParseException { SolutionModifier(); } + final public void JsonQuery() throws ParseException { + JsonClause(); + label_9: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case FROM: + ; + break; + default: + jj_la1[19] = jj_gen; + break label_9; + } + DatasetClause(); + } + WhereClause(); + SolutionModifier(); + } + + final public void JsonClause() throws ParseException { + Object o ; String s ; + jj_consume_token(JSON); + getQuery().setQueryJsonType() ; + jj_consume_token(LBRACE); + s = String(); + jj_consume_token(PNAME_NS); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case VAR1: + case VAR2: + o = Var(); + getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; + break; + case STRING_LITERAL1: + case STRING_LITERAL2: + case STRING_LITERAL_LONG1: + case STRING_LITERAL_LONG2: + o = String(); + getQuery().addJsonMapping(s, o) ; + break; + case INTEGER: + case DECIMAL: + o = Number(); + getQuery().addJsonMapping(s, o) ; + break; + default: + jj_la1[20] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + label_10: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[21] = jj_gen; + break label_10; + } + jj_consume_token(COMMA); + s = String(); + jj_consume_token(PNAME_NS); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case VAR1: + case VAR2: + o = Var(); + getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; + break; + case STRING_LITERAL1: + case STRING_LITERAL2: + case STRING_LITERAL_LONG1: + case STRING_LITERAL_LONG2: + o = String(); + getQuery().addJsonMapping(s, o) ; + break; + case INTEGER: + case DECIMAL: + o = Number(); + getQuery().addJsonMapping(s, o) ; + break; + default: + jj_la1[22] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + jj_consume_token(RBRACE); + } + final public void DatasetClause() throws ParseException { jj_consume_token(FROM); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -391,7 +514,7 @@ final public void DatasetClause() throws ParseException { NamedGraphClause(); break; default: - jj_la1[19] = jj_gen; + jj_la1[23] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -424,7 +547,7 @@ final public void WhereClause() throws ParseException { jj_consume_token(WHERE); break; default: - jj_la1[20] = jj_gen; + jj_la1[24] = jj_gen; ; } startWherePattern() ; @@ -439,7 +562,7 @@ final public void SolutionModifier() throws ParseException { GroupClause(); break; default: - jj_la1[21] = jj_gen; + jj_la1[25] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -447,7 +570,7 @@ final public void SolutionModifier() throws ParseException { HavingClause(); break; default: - jj_la1[22] = jj_gen; + jj_la1[26] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -455,7 +578,7 @@ final public void SolutionModifier() throws ParseException { OrderClause(); break; default: - jj_la1[23] = jj_gen; + jj_la1[27] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -464,7 +587,7 @@ final public void SolutionModifier() throws ParseException { LimitOffsetClauses(); break; default: - jj_la1[24] = jj_gen; + jj_la1[28] = jj_gen; ; } } @@ -472,7 +595,7 @@ final public void SolutionModifier() throws ParseException { final public void GroupClause() throws ParseException { jj_consume_token(GROUP); jj_consume_token(BY); - label_9: + label_11: while (true) { GroupCondition(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -546,8 +669,8 @@ final public void GroupClause() throws ParseException { ; break; default: - jj_la1[25] = jj_gen; - break label_9; + jj_la1[29] = jj_gen; + break label_11; } } } @@ -634,7 +757,7 @@ final public void GroupCondition() throws ParseException { v = Var(); break; default: - jj_la1[26] = jj_gen; + jj_la1[30] = jj_gen; ; } jj_consume_token(RPAREN); @@ -646,7 +769,7 @@ final public void GroupCondition() throws ParseException { getQuery().addGroupBy(v) ; break; default: - jj_la1[27] = jj_gen; + jj_la1[31] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -655,7 +778,7 @@ final public void GroupCondition() throws ParseException { final public void HavingClause() throws ParseException { setAllowAggregatesInExpressions(true) ; jj_consume_token(HAVING); - label_10: + label_12: while (true) { HavingCondition(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -727,8 +850,8 @@ final public void HavingClause() throws ParseException { ; break; default: - jj_la1[28] = jj_gen; - break label_10; + jj_la1[32] = jj_gen; + break label_12; } } setAllowAggregatesInExpressions(false) ; @@ -744,7 +867,7 @@ final public void OrderClause() throws ParseException { setAllowAggregatesInExpressions(true) ; jj_consume_token(ORDER); jj_consume_token(BY); - label_11: + label_13: while (true) { OrderCondition(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -820,8 +943,8 @@ final public void OrderClause() throws ParseException { ; break; default: - jj_la1[29] = jj_gen; - break label_11; + jj_la1[33] = jj_gen; + break label_13; } } setAllowAggregatesInExpressions(false) ; @@ -843,7 +966,7 @@ final public void OrderCondition() throws ParseException { direction = Query.ORDER_DESCENDING ; break; default: - jj_la1[30] = jj_gen; + jj_la1[34] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -989,13 +1112,13 @@ final public void OrderCondition() throws ParseException { v = Var(); break; default: - jj_la1[31] = jj_gen; + jj_la1[35] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[32] = jj_gen; + jj_la1[36] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1014,7 +1137,7 @@ final public void LimitOffsetClauses() throws ParseException { OffsetClause(); break; default: - jj_la1[33] = jj_gen; + jj_la1[37] = jj_gen; ; } break; @@ -1025,12 +1148,12 @@ final public void LimitOffsetClauses() throws ParseException { LimitClause(); break; default: - jj_la1[34] = jj_gen; + jj_la1[38] = jj_gen; ; } break; default: - jj_la1[35] = jj_gen; + jj_la1[39] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1060,7 +1183,7 @@ final public void ValuesClause() throws ParseException { finishValuesClause(t.beginLine, t.beginColumn) ; break; default: - jj_la1[36] = jj_gen; + jj_la1[40] = jj_gen; ; } } @@ -1088,12 +1211,12 @@ final public void Update() throws ParseException { Update(); break; default: - jj_la1[37] = jj_gen; + jj_la1[41] = jj_gen; ; } break; default: - jj_la1[38] = jj_gen; + jj_la1[42] = jj_gen; ; } } @@ -1138,7 +1261,7 @@ final public void Update1() throws ParseException { DeleteData(); break; default: - jj_la1[39] = jj_gen; + jj_la1[43] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1155,7 +1278,7 @@ final public Update Load() throws ParseException { silent = true ; break; default: - jj_la1[40] = jj_gen; + jj_la1[44] = jj_gen; ; } url = iri(); @@ -1165,7 +1288,7 @@ final public Update Load() throws ParseException { dest = GraphRef(); break; default: - jj_la1[41] = jj_gen; + jj_la1[45] = jj_gen; ; } {if (true) return new UpdateLoad(url, dest, silent) ;} @@ -1181,7 +1304,7 @@ final public Update Clear() throws ParseException { silent = true ; break; default: - jj_la1[42] = jj_gen; + jj_la1[46] = jj_gen; ; } target = GraphRefAll(); @@ -1198,7 +1321,7 @@ final public Update Drop() throws ParseException { silent = true ; break; default: - jj_la1[43] = jj_gen; + jj_la1[47] = jj_gen; ; } target = GraphRefAll(); @@ -1215,7 +1338,7 @@ final public Update Create() throws ParseException { silent=true ; break; default: - jj_la1[44] = jj_gen; + jj_la1[48] = jj_gen; ; } iri = GraphRef(); @@ -1232,7 +1355,7 @@ final public Update Add() throws ParseException { silent=true ; break; default: - jj_la1[45] = jj_gen; + jj_la1[49] = jj_gen; ; } src = GraphOrDefault(); @@ -1251,7 +1374,7 @@ final public Update Move() throws ParseException { silent=true ; break; default: - jj_la1[46] = jj_gen; + jj_la1[50] = jj_gen; ; } src = GraphOrDefault(); @@ -1270,7 +1393,7 @@ final public Update Copy() throws ParseException { silent=true ; break; default: - jj_la1[47] = jj_gen; + jj_la1[51] = jj_gen; ; } src = GraphOrDefault(); @@ -1322,7 +1445,7 @@ final public Update Modify() throws ParseException { Node n = createNode(iri) ; up.setWithIRI(n) ; break; default: - jj_la1[48] = jj_gen; + jj_la1[52] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1333,7 +1456,7 @@ final public Update Modify() throws ParseException { InsertClause(up); break; default: - jj_la1[49] = jj_gen; + jj_la1[53] = jj_gen; ; } break; @@ -1341,19 +1464,19 @@ final public Update Modify() throws ParseException { InsertClause(up); break; default: - jj_la1[50] = jj_gen; + jj_la1[54] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_12: + label_14: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case USING: ; break; default: - jj_la1[51] = jj_gen; - break label_12; + jj_la1[55] = jj_gen; + break label_14; } UsingClause(up); } @@ -1403,7 +1526,7 @@ final public void UsingClause(UpdateWithUsing update) throws ParseException { n = createNode(iri) ; update.addUsingNamed(n) ; break; default: - jj_la1[52] = jj_gen; + jj_la1[56] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1425,14 +1548,14 @@ final public Target GraphOrDefault() throws ParseException { jj_consume_token(GRAPH); break; default: - jj_la1[53] = jj_gen; + jj_la1[57] = jj_gen; ; } iri = iri(); {if (true) return Target.create(createNode(iri)) ;} break; default: - jj_la1[54] = jj_gen; + jj_la1[58] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1467,7 +1590,7 @@ final public Target GraphRefAll() throws ParseException { {if (true) return Target.ALL ;} break; default: - jj_la1[55] = jj_gen; + jj_la1[59] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1516,18 +1639,18 @@ final public void Quads(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[56] = jj_gen; + jj_la1[60] = jj_gen; ; } - label_13: + label_15: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case GRAPH: ; break; default: - jj_la1[57] = jj_gen; - break label_13; + jj_la1[61] = jj_gen; + break label_15; } QuadsNotTriples(acc); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1535,7 +1658,7 @@ final public void Quads(QuadAccSink acc) throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[58] = jj_gen; + jj_la1[62] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1567,7 +1690,7 @@ final public void Quads(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[59] = jj_gen; + jj_la1[63] = jj_gen; ; } } @@ -1608,7 +1731,7 @@ final public void QuadsNotTriples(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[60] = jj_gen; + jj_la1[64] = jj_gen; ; } jj_consume_token(RBRACE); @@ -1649,12 +1772,12 @@ final public void TriplesTemplate(TripleCollector acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[61] = jj_gen; + jj_la1[65] = jj_gen; ; } break; default: - jj_la1[62] = jj_gen; + jj_la1[66] = jj_gen; ; } } @@ -1671,7 +1794,7 @@ final public Element GroupGraphPattern() throws ParseException { el = new ElementSubQuery(q) ; break; default: - jj_la1[63] = jj_gen; + jj_la1[67] = jj_gen; el = GroupGraphPatternSub(); } jj_consume_token(RBRACE); @@ -1715,10 +1838,10 @@ final public Element GroupGraphPatternSub() throws ParseException { elg.addElement(el) ; break; default: - jj_la1[64] = jj_gen; + jj_la1[68] = jj_gen; ; } - label_14: + label_16: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VALUES: @@ -1732,8 +1855,8 @@ final public Element GroupGraphPatternSub() throws ParseException { ; break; default: - jj_la1[65] = jj_gen; - break label_14; + jj_la1[69] = jj_gen; + break label_16; } el = GraphPatternNotTriples(); elg.addElement(el) ; @@ -1742,7 +1865,7 @@ final public Element GroupGraphPatternSub() throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[66] = jj_gen; + jj_la1[70] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1777,7 +1900,7 @@ final public Element GroupGraphPatternSub() throws ParseException { elg.addElement(el) ; break; default: - jj_la1[67] = jj_gen; + jj_la1[71] = jj_gen; ; } } @@ -1822,12 +1945,12 @@ final public Element TriplesBlock(ElementPathBlock acc) throws ParseException { TriplesBlock(acc); break; default: - jj_la1[68] = jj_gen; + jj_la1[72] = jj_gen; ; } break; default: - jj_la1[69] = jj_gen; + jj_la1[73] = jj_gen; ; } {if (true) return acc ;} @@ -1862,7 +1985,7 @@ final public Element GraphPatternNotTriples() throws ParseException { el = InlineData(); break; default: - jj_la1[70] = jj_gen; + jj_la1[74] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1896,7 +2019,7 @@ final public Element ServiceGraphPattern() throws ParseException { silent=true; break; default: - jj_la1[71] = jj_gen; + jj_la1[75] = jj_gen; ; } n = VarOrIri(); @@ -1940,7 +2063,7 @@ final public void DataBlock() throws ParseException { InlineDataFull(); break; default: - jj_la1[72] = jj_gen; + jj_la1[76] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1951,7 +2074,7 @@ final public void InlineDataOneVar() throws ParseException { v = Var(); emitDataBlockVariable(v) ; t = jj_consume_token(LBRACE); - label_15: + label_17: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IRIref: @@ -1976,8 +2099,8 @@ final public void InlineDataOneVar() throws ParseException { ; break; default: - jj_la1[73] = jj_gen; - break label_15; + jj_la1[77] = jj_gen; + break label_17; } n = DataBlockValue(); startDataBlockValueRow(-1, -1) ; @@ -1995,7 +2118,7 @@ final public void InlineDataFull() throws ParseException { break; case LPAREN: jj_consume_token(LPAREN); - label_16: + label_18: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VAR1: @@ -2003,8 +2126,8 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[74] = jj_gen; - break label_16; + jj_la1[78] = jj_gen; + break label_18; } v = Var(); emitDataBlockVariable(v) ; @@ -2012,12 +2135,12 @@ final public void InlineDataFull() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[75] = jj_gen; + jj_la1[79] = jj_gen; jj_consume_token(-1); throw new ParseException(); } jj_consume_token(LBRACE); - label_17: + label_19: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: @@ -2025,15 +2148,15 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[76] = jj_gen; - break label_17; + jj_la1[80] = jj_gen; + break label_19; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: t = jj_consume_token(LPAREN); beginLine = t.beginLine; beginColumn = t.beginColumn; t = null; startDataBlockValueRow(beginLine, beginColumn) ; - label_18: + label_20: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IRIref: @@ -2058,8 +2181,8 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[77] = jj_gen; - break label_18; + jj_la1[81] = jj_gen; + break label_20; } n = DataBlockValue(); emitDataBlockValue(n, beginLine, beginColumn) ; @@ -2075,7 +2198,7 @@ final public void InlineDataFull() throws ParseException { finishDataBlockValueRow(beginLine, beginColumn) ; break; default: - jj_la1[78] = jj_gen; + jj_la1[82] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2121,7 +2244,7 @@ final public Node DataBlockValue() throws ParseException { {if (true) return null ;} break; default: - jj_la1[79] = jj_gen; + jj_la1[83] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2139,15 +2262,15 @@ final public Element MinusGraphPattern() throws ParseException { final public Element GroupOrUnionGraphPattern() throws ParseException { Element el = null ; ElementUnion el2 = null ; el = GroupGraphPattern(); - label_19: + label_21: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case UNION: ; break; default: - jj_la1[80] = jj_gen; - break label_19; + jj_la1[84] = jj_gen; + break label_21; } jj_consume_token(UNION); if ( el2 == null ) @@ -2245,7 +2368,7 @@ final public Expr Constraint() throws ParseException { c = FunctionCall(); break; default: - jj_la1[81] = jj_gen; + jj_la1[85] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2286,20 +2409,20 @@ final public Args ArgList() throws ParseException { beginLine, beginColumn) ; break; default: - jj_la1[82] = jj_gen; + jj_la1[86] = jj_gen; ; } expr = Expression(); args.add(expr) ; - label_20: + label_22: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[83] = jj_gen; - break label_20; + jj_la1[87] = jj_gen; + break label_22; } jj_consume_token(COMMA); expr = Expression(); @@ -2308,7 +2431,7 @@ final public Args ArgList() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[84] = jj_gen; + jj_la1[88] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2326,15 +2449,15 @@ final public ExprList ExpressionList() throws ParseException { jj_consume_token(LPAREN); expr = Expression(); exprList.add(expr) ; - label_21: + label_23: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[85] = jj_gen; - break label_21; + jj_la1[89] = jj_gen; + break label_23; } jj_consume_token(COMMA); expr = Expression(); @@ -2343,7 +2466,7 @@ final public ExprList ExpressionList() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[86] = jj_gen; + jj_la1[90] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2385,7 +2508,7 @@ final public Template ConstructTemplate() throws ParseException { ConstructTriples(acc); break; default: - jj_la1[87] = jj_gen; + jj_la1[91] = jj_gen; ; } jj_consume_token(RBRACE); @@ -2428,12 +2551,12 @@ final public void ConstructTriples(TripleCollector acc) throws ParseException { ConstructTriples(acc); break; default: - jj_la1[88] = jj_gen; + jj_la1[92] = jj_gen; ; } break; default: - jj_la1[89] = jj_gen; + jj_la1[93] = jj_gen; ; } } @@ -2475,7 +2598,7 @@ final public void TriplesSameSubject(TripleCollector acc) throws ParseException insert(acc, tempAcc) ; break; default: - jj_la1[90] = jj_gen; + jj_la1[94] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2492,7 +2615,7 @@ final public void PropertyList(Node s, TripleCollector acc) throws ParseExceptio PropertyListNotEmpty(s, acc); break; default: - jj_la1[91] = jj_gen; + jj_la1[95] = jj_gen; ; } } @@ -2501,15 +2624,15 @@ final public void PropertyListNotEmpty(Node s, TripleCollector acc) throws Parse Node p = null ; p = Verb(); ObjectList(s, p, null, acc); - label_22: + label_24: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[92] = jj_gen; - break label_22; + jj_la1[96] = jj_gen; + break label_24; } jj_consume_token(SEMICOLON); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2523,7 +2646,7 @@ final public void PropertyListNotEmpty(Node s, TripleCollector acc) throws Parse ObjectList(s, p, null, acc); break; default: - jj_la1[93] = jj_gen; + jj_la1[97] = jj_gen; ; } } @@ -2544,7 +2667,7 @@ final public Node Verb() throws ParseException { p = nRDFtype ; break; default: - jj_la1[94] = jj_gen; + jj_la1[98] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2555,15 +2678,15 @@ final public Node Verb() throws ParseException { final public void ObjectList(Node s, Node p, Path path, TripleCollector acc) throws ParseException { Node o ; Object(s, p, path, acc); - label_23: + label_25: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[95] = jj_gen; - break label_23; + jj_la1[99] = jj_gen; + break label_25; } jj_consume_token(COMMA); Object(s, p, path, acc); @@ -2614,7 +2737,7 @@ final public void TriplesSameSubjectPath(TripleCollector acc) throws ParseExcept insert(acc, tempAcc) ; break; default: - jj_la1[96] = jj_gen; + jj_la1[100] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2634,7 +2757,7 @@ final public void PropertyListPath(Node s, TripleCollector acc) throws ParseExce PropertyListPathNotEmpty(s, acc); break; default: - jj_la1[97] = jj_gen; + jj_la1[101] = jj_gen; ; } } @@ -2656,20 +2779,20 @@ final public void PropertyListPathNotEmpty(Node s, TripleCollector acc) throws P p = VerbSimple(); break; default: - jj_la1[98] = jj_gen; + jj_la1[102] = jj_gen; jj_consume_token(-1); throw new ParseException(); } ObjectListPath(s, p, path, acc); - label_24: + label_26: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[99] = jj_gen; - break label_24; + jj_la1[103] = jj_gen; + break label_26; } jj_consume_token(SEMICOLON); path = null ; p = null ; @@ -2698,14 +2821,14 @@ final public void PropertyListPathNotEmpty(Node s, TripleCollector acc) throws P p = VerbSimple(); break; default: - jj_la1[100] = jj_gen; + jj_la1[104] = jj_gen; jj_consume_token(-1); throw new ParseException(); } ObjectListPath(s, p, path, acc); break; default: - jj_la1[101] = jj_gen; + jj_la1[105] = jj_gen; ; } } @@ -2728,15 +2851,15 @@ final public Node VerbSimple() throws ParseException { final public void ObjectListPath(Node s, Node p, Path path, TripleCollector acc) throws ParseException { Node o ; ObjectPath(s, p, path, acc); - label_25: + label_27: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[102] = jj_gen; - break label_25; + jj_la1[106] = jj_gen; + break label_27; } jj_consume_token(COMMA); ObjectPath(s, p, path, acc); @@ -2760,15 +2883,15 @@ final public Path Path() throws ParseException { final public Path PathAlternative() throws ParseException { Path p1 , p2 ; p1 = PathSequence(); - label_26: + label_28: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VBAR: ; break; default: - jj_la1[103] = jj_gen; - break label_26; + jj_la1[107] = jj_gen; + break label_28; } jj_consume_token(VBAR); p2 = PathSequence(); @@ -2781,15 +2904,15 @@ final public Path PathAlternative() throws ParseException { final public Path PathSequence() throws ParseException { Path p1 , p2 ; p1 = PathEltOrInverse(); - label_27: + label_29: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SLASH: ; break; default: - jj_la1[104] = jj_gen; - break label_27; + jj_la1[108] = jj_gen; + break label_29; } jj_consume_token(SLASH); p2 = PathEltOrInverse(); @@ -2809,7 +2932,7 @@ final public Path PathElt() throws ParseException { p = PathMod(p); break; default: - jj_la1[105] = jj_gen; + jj_la1[109] = jj_gen; ; } {if (true) return p ;} @@ -2833,7 +2956,7 @@ final public Path PathEltOrInverse() throws ParseException { p = PathFactory.pathInverse(p) ; break; default: - jj_la1[106] = jj_gen; + jj_la1[110] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2857,7 +2980,7 @@ final public Path PathMod(Path p) throws ParseException { {if (true) return PathFactory.pathOneOrMore1(p) ;} break; default: - jj_la1[107] = jj_gen; + jj_la1[111] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2887,7 +3010,7 @@ final public Path PathPrimary() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[108] = jj_gen; + jj_la1[112] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2917,15 +3040,15 @@ final public Path PathNegatedPropertySet() throws ParseException { case CARAT: p = PathOneInPropertySet(); pNegSet.add(p) ; - label_28: + label_30: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VBAR: ; break; default: - jj_la1[109] = jj_gen; - break label_28; + jj_la1[113] = jj_gen; + break label_30; } jj_consume_token(VBAR); p = PathOneInPropertySet(); @@ -2933,13 +3056,13 @@ final public Path PathNegatedPropertySet() throws ParseException { } break; default: - jj_la1[110] = jj_gen; + jj_la1[114] = jj_gen; ; } jj_consume_token(RPAREN); break; default: - jj_la1[111] = jj_gen; + jj_la1[115] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2974,13 +3097,13 @@ final public P_Path0 PathOneInPropertySet() throws ParseException { {if (true) return new P_ReverseLink(nRDFtype) ;} break; default: - jj_la1[112] = jj_gen; + jj_la1[116] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[113] = jj_gen; + jj_la1[117] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3006,7 +3129,7 @@ final public Node TriplesNode(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[114] = jj_gen; + jj_la1[118] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3035,7 +3158,7 @@ final public Node TriplesNodePath(TripleCollectorMark acc) throws ParseException {if (true) return n ;} break; default: - jj_la1[115] = jj_gen; + jj_la1[119] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3056,7 +3179,7 @@ final public Node Collection(TripleCollectorMark acc) throws ParseException { Node listHead = nRDFnil ; Node lastCell = null ; int mark ; Node n ; Token t ; t = jj_consume_token(LPAREN); int beginLine = t.beginLine; int beginColumn = t.beginColumn; t = null; - label_29: + label_31: while (true) { Node cell = createListNode( beginLine, beginColumn) ; if ( listHead == nRDFnil ) @@ -3096,8 +3219,8 @@ final public Node Collection(TripleCollectorMark acc) throws ParseException { ; break; default: - jj_la1[116] = jj_gen; - break label_29; + jj_la1[120] = jj_gen; + break label_31; } } jj_consume_token(RPAREN); @@ -3111,7 +3234,7 @@ final public Node CollectionPath(TripleCollectorMark acc) throws ParseException Node listHead = nRDFnil ; Node lastCell = null ; int mark ; Node n ; Token t ; t = jj_consume_token(LPAREN); int beginLine = t.beginLine; int beginColumn = t.beginColumn; t = null; - label_30: + label_32: while (true) { Node cell = createListNode( beginLine, beginColumn) ; if ( listHead == nRDFnil ) @@ -3151,8 +3274,8 @@ final public Node CollectionPath(TripleCollectorMark acc) throws ParseException ; break; default: - jj_la1[117] = jj_gen; - break label_30; + jj_la1[121] = jj_gen; + break label_32; } } jj_consume_token(RPAREN); @@ -3197,7 +3320,7 @@ final public Node GraphNode(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[118] = jj_gen; + jj_la1[122] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3239,7 +3362,7 @@ final public Node GraphNodePath(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[119] = jj_gen; + jj_la1[123] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3277,7 +3400,7 @@ final public Node VarOrTerm() throws ParseException { n = GraphTerm(); break; default: - jj_la1[120] = jj_gen; + jj_la1[124] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3299,7 +3422,7 @@ final public Node VarOrIri() throws ParseException { n = createNode(iri) ; break; default: - jj_la1[121] = jj_gen; + jj_la1[125] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3325,7 +3448,7 @@ final public Node VarOrBlankNodeOrIri() throws ParseException { n = createNode(iri) ; break; default: - jj_la1[122] = jj_gen; + jj_la1[126] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3343,7 +3466,7 @@ final public Var Var() throws ParseException { t = jj_consume_token(VAR2); break; default: - jj_la1[123] = jj_gen; + jj_la1[127] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3394,7 +3517,7 @@ final public Node GraphTerm() throws ParseException { {if (true) return nRDFnil ;} break; default: - jj_la1[124] = jj_gen; + jj_la1[128] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3411,15 +3534,15 @@ final public Expr Expression() throws ParseException { final public Expr ConditionalOrExpression() throws ParseException { Expr expr1, expr2 ; expr1 = ConditionalAndExpression(); - label_31: + label_33: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SC_OR: ; break; default: - jj_la1[125] = jj_gen; - break label_31; + jj_la1[129] = jj_gen; + break label_33; } jj_consume_token(SC_OR); expr2 = ConditionalAndExpression(); @@ -3432,15 +3555,15 @@ final public Expr ConditionalOrExpression() throws ParseException { final public Expr ConditionalAndExpression() throws ParseException { Expr expr1, expr2 ; expr1 = ValueLogical(); - label_32: + label_34: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SC_AND: ; break; default: - jj_la1[126] = jj_gen; - break label_32; + jj_la1[130] = jj_gen; + break label_34; } jj_consume_token(SC_AND); expr2 = ValueLogical(); @@ -3512,13 +3635,13 @@ final public Expr RelationalExpression() throws ParseException { expr1 = new E_NotOneOf(expr1, a) ; break; default: - jj_la1[127] = jj_gen; + jj_la1[131] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[128] = jj_gen; + jj_la1[132] = jj_gen; ; } {if (true) return expr1 ;} @@ -3535,7 +3658,7 @@ final public Expr NumericExpression() throws ParseException { final public Expr AdditiveExpression() throws ParseException { Expr expr1, expr2, expr3 ; boolean addition ; Node n ; expr1 = MultiplicativeExpression(); - label_33: + label_35: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case INTEGER_POSITIVE: @@ -3549,8 +3672,8 @@ final public Expr AdditiveExpression() throws ParseException { ; break; default: - jj_la1[129] = jj_gen; - break label_33; + jj_la1[133] = jj_gen; + break label_35; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PLUS: @@ -3587,11 +3710,11 @@ final public Expr AdditiveExpression() throws ParseException { addition = false ; break; default: - jj_la1[130] = jj_gen; + jj_la1[134] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_34: + label_36: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -3599,8 +3722,8 @@ final public Expr AdditiveExpression() throws ParseException { ; break; default: - jj_la1[131] = jj_gen; - break label_34; + jj_la1[135] = jj_gen; + break label_36; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -3614,7 +3737,7 @@ final public Expr AdditiveExpression() throws ParseException { expr2 = new E_Divide(expr2, expr3) ; break; default: - jj_la1[132] = jj_gen; + jj_la1[136] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3625,7 +3748,7 @@ final public Expr AdditiveExpression() throws ParseException { expr1 = new E_Subtract(expr1, expr2) ; break; default: - jj_la1[133] = jj_gen; + jj_la1[137] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3637,7 +3760,7 @@ final public Expr AdditiveExpression() throws ParseException { final public Expr MultiplicativeExpression() throws ParseException { Expr expr1, expr2 ; expr1 = UnaryExpression(); - label_35: + label_37: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -3645,8 +3768,8 @@ final public Expr MultiplicativeExpression() throws ParseException { ; break; default: - jj_la1[134] = jj_gen; - break label_35; + jj_la1[138] = jj_gen; + break label_37; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -3660,7 +3783,7 @@ final public Expr MultiplicativeExpression() throws ParseException { expr1 = new E_Divide(expr1, expr2) ; break; default: - jj_la1[135] = jj_gen; + jj_la1[139] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3773,7 +3896,7 @@ final public Expr UnaryExpression() throws ParseException { {if (true) return expr ;} break; default: - jj_la1[136] = jj_gen; + jj_la1[140] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3887,7 +4010,7 @@ final public Expr PrimaryExpression() throws ParseException { {if (true) return asExpr(gn) ;} break; default: - jj_la1[137] = jj_gen; + jj_la1[141] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3982,7 +4105,7 @@ final public Expr BuiltInCall() throws ParseException { {if (true) return new E_BNode() ;} break; default: - jj_la1[138] = jj_gen; + jj_la1[142] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4303,7 +4426,7 @@ final public Expr BuiltInCall() throws ParseException { {if (true) return expr ;} break; default: - jj_la1[139] = jj_gen; + jj_la1[143] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4323,7 +4446,7 @@ final public Expr RegexExpression() throws ParseException { flagsExpr = Expression(); break; default: - jj_la1[140] = jj_gen; + jj_la1[144] = jj_gen; ; } jj_consume_token(RPAREN); @@ -4344,7 +4467,7 @@ final public Expr SubstringExpression() throws ParseException { expr3 = Expression(); break; default: - jj_la1[141] = jj_gen; + jj_la1[145] = jj_gen; ; } jj_consume_token(RPAREN); @@ -4367,7 +4490,7 @@ final public Expr StrReplaceExpression() throws ParseException { expr4 = Expression(); break; default: - jj_la1[142] = jj_gen; + jj_la1[146] = jj_gen; ; } jj_consume_token(RPAREN); @@ -4408,7 +4531,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[143] = jj_gen; + jj_la1[147] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -4503,7 +4626,7 @@ final public Expr Aggregate() throws ParseException { expr = Expression(); break; default: - jj_la1[144] = jj_gen; + jj_la1[148] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4520,7 +4643,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[145] = jj_gen; + jj_la1[149] = jj_gen; ; } expr = Expression(); @@ -4536,7 +4659,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[146] = jj_gen; + jj_la1[150] = jj_gen; ; } expr = Expression(); @@ -4552,7 +4675,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[147] = jj_gen; + jj_la1[151] = jj_gen; ; } expr = Expression(); @@ -4568,7 +4691,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[148] = jj_gen; + jj_la1[152] = jj_gen; ; } expr = Expression(); @@ -4584,7 +4707,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[149] = jj_gen; + jj_la1[153] = jj_gen; ; } expr = Expression(); @@ -4600,7 +4723,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[150] = jj_gen; + jj_la1[154] = jj_gen; ; } expr = Expression(); @@ -4612,14 +4735,14 @@ final public Expr Aggregate() throws ParseException { sep = String(); break; default: - jj_la1[151] = jj_gen; + jj_la1[155] = jj_gen; ; } jj_consume_token(RPAREN); agg = AggregatorFactory.createGroupConcat(distinct, expr, sep, ordered) ; break; default: - jj_la1[152] = jj_gen; + jj_la1[156] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4640,7 +4763,7 @@ final public Expr iriOrFunction() throws ParseException { a = ArgList(); break; default: - jj_la1[153] = jj_gen; + jj_la1[157] = jj_gen; ; } if ( a == null ) @@ -4673,13 +4796,13 @@ final public Node RDFLiteral() throws ParseException { uri = iri(); break; default: - jj_la1[154] = jj_gen; + jj_la1[158] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[155] = jj_gen; + jj_la1[159] = jj_gen; ; } {if (true) return createLiteral(lex, lang, uri) ;} @@ -4705,7 +4828,7 @@ final public Node NumericLiteral() throws ParseException { n = NumericLiteralNegative(); break; default: - jj_la1[156] = jj_gen; + jj_la1[160] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4729,7 +4852,7 @@ final public Node NumericLiteralUnsigned() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[157] = jj_gen; + jj_la1[161] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4752,7 +4875,7 @@ final public Node NumericLiteralPositive() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[158] = jj_gen; + jj_la1[162] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4775,7 +4898,7 @@ final public Node NumericLiteralNegative() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[159] = jj_gen; + jj_la1[163] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4793,7 +4916,7 @@ final public Node BooleanLiteral() throws ParseException { {if (true) return XSD_FALSE ;} break; default: - jj_la1[160] = jj_gen; + jj_la1[164] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4820,7 +4943,7 @@ final public String String() throws ParseException { lex = stripQuotes3(t.image) ; break; default: - jj_la1[161] = jj_gen; + jj_la1[165] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4829,6 +4952,26 @@ final public String String() throws ParseException { throw new Error("Missing return statement in function"); } + final public Number Number() throws ParseException { + Token t ; Number number ; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INTEGER: + t = jj_consume_token(INTEGER); + number = integerValue(t.image) ; + break; + case DECIMAL: + t = jj_consume_token(DECIMAL); + number = doubleValue(t.image) ; + break; + default: + jj_la1[166] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return number ;} + throw new Error("Missing return statement in function"); + } + final public String iri() throws ParseException { String iri ; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -4842,7 +4985,7 @@ final public String iri() throws ParseException { {if (true) return iri ;} break; default: - jj_la1[162] = jj_gen; + jj_la1[167] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4861,7 +5004,7 @@ final public String PrefixedName() throws ParseException { {if (true) return resolvePName(t.image, t.beginLine, t.beginColumn) ;} break; default: - jj_la1[163] = jj_gen; + jj_la1[168] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4880,7 +5023,7 @@ final public Node BlankNode() throws ParseException { {if (true) return createBNode(t.beginLine, t.beginColumn) ;} break; default: - jj_la1[164] = jj_gen; + jj_la1[169] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4903,7 +5046,7 @@ final public String IRIREF() throws ParseException { public Token jj_nt; private int jj_ntk; private int jj_gen; - final private int[] jj_la1 = new int[165]; + final private int[] jj_la1 = new int[170]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -4921,25 +5064,25 @@ final public String IRIREF() throws ParseException { jj_la1_init_6(); } private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0xe400000,0x200,0x300000,0x300000,0x0,0x1800000,0x1800000,0xc000,0xc000,0xc000,0x0,0x0,0xfc00,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x1c00,0x0,0x0,0x0,0x40000000,0x30000000,0xdc00,0x0,0xdc00,0x1c00,0xdc00,0x0,0xdc00,0xdc00,0x20000000,0x10000000,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0xfc00,0x0,0x0,0xfc00,0xfc00,0xfc00,0x0,0x400000,0xfc00,0x0,0x0,0xfc00,0xfc00,0x0,0x0,0x0,0xc000,0x1c00,0xc000,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0x1c00,0x800000,0x0,0x0,0x0,0x0,0xfc00,0xfc00,0x0,0xfc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0xfc00,0x8dc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0x0,0x0,0x0,0x81c00,0x0,0x81c00,0x0,0x81c00,0x81c00,0x81c00,0x81c00,0x0,0x0,0xfc00,0xfc00,0xfc00,0xfc00,0xfc00,0xdc00,0xfc00,0xc000,0x3c00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0x0,0x800000,0xdc00,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x0,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x1800,0x2000,}; + jj_la1_0 = new int[] {0x1e400000,0x200,0x300000,0x300000,0x0,0x1800000,0x1800000,0xc000,0xc000,0xc000,0x0,0x0,0xfc00,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0xc000,0x0,0xc000,0x1c00,0x0,0x0,0x0,0x80000000,0x60000000,0xdc00,0x0,0xdc00,0x1c00,0xdc00,0x0,0xdc00,0xdc00,0x40000000,0x20000000,0x60000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0xfc00,0x0,0x0,0xfc00,0xfc00,0xfc00,0x0,0x400000,0xfc00,0x0,0x0,0xfc00,0xfc00,0x0,0x0,0x0,0xc000,0x1c00,0xc000,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0x1c00,0x800000,0x0,0x0,0x0,0x0,0xfc00,0xfc00,0x0,0xfc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0xfc00,0x8dc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0x0,0x0,0x0,0x81c00,0x0,0x81c00,0x0,0x81c00,0x81c00,0x81c00,0x81c00,0x0,0x0,0xfc00,0xfc00,0xfc00,0xfc00,0xfc00,0xdc00,0xfc00,0xc000,0x3c00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0x0,0x800000,0xdc00,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x0,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x1800,0x2000,}; } private static void jj_la1_init_1() { - jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x20,0x20,0x0,0x60,0x0,0x0,0x20,0x40,0x20,0x10,0x40,0x20000,0x40000,0x0,0x0,0x3e0c000,0x10000,0x3e0c000,0x3e0c000,0x3e0c00c,0xc,0x3e0c000,0x3e0c00c,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x100,0x100,0x110,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3b01,0x0,0x0,0x0,0x0,0x3b01,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x2,0x400,0x3e0c000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3e0c000,0x3e0c000,0x0,0x3e0c000,0x0,0x0,0x0,0x0,0x3e0c000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3e00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x40,0x40,0x0,0xc0,0x0,0x0,0x40,0x80,0x40,0x40,0x0,0x0,0x0,0x20,0x80,0x40000,0x80000,0x0,0x0,0x7c18000,0x20000,0x7c18000,0x7c18000,0x7c18018,0x18,0x7c18000,0x7c18018,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x200,0x200,0x220,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7602,0x0,0x0,0x0,0x0,0x7602,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x4,0x800,0x7c18000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7c18000,0x7c18000,0x0,0x7c18000,0x0,0x0,0x0,0x0,0x7c18000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7c00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_2() { - jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffdb,0x0,0xffffffdb,0xffffffdb,0xffffffdb,0x0,0xffffffdb,0xffffffdb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffdb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffdb,0xffffffdb,0x0,0xffffffdb,0x0,0x0,0x0,0x0,0xffffffdb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffb6,0x0,0xffffffb6,0xffffffb6,0xffffffb6,0x0,0xffffffb6,0xffffffb6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffb6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffb6,0xffffffb6,0x0,0xffffffb6,0x0,0x0,0x0,0x0,0xffffffb6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_3() { - jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1dfffff,0x0,0x1dfffff,0x1dfffff,0x1dfffff,0x0,0x1dfffff,0x1dfffff,0x0,0x0,0x0,0x0,0x0,0xf0000000,0xf0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x30000000,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x0,0x6000000,0x6000000,0x6000000,0x0,0x0,0x6000000,0x0,0x0,0x6000000,0x6000000,0x0,0x0,0x0,0x0,0x6000000,0x0,0x0,0x0,0x6000000,0x0,0x6000000,0x0,0x1dfffff,0x0,0x0,0x0,0x0,0x0,0x6000000,0x6000000,0x0,0x6000000,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x6000000,0x6000000,0x6000000,0x6000000,0x0,0x0,0x0,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7dfffff,0x7dfffff,0x0,0x1dfffff,0x0,0x0,0x0,0x0,0x7dfffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x0,0x0,0x0,}; + jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3bfffff,0x0,0x3bfffff,0x3bfffff,0x3bfffff,0x0,0x3bfffff,0x3bfffff,0x0,0x0,0x0,0x0,0x0,0xe0000000,0xe0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x60000000,0x0,0x0,0x0,0x0,0x0,0xc000000,0x0,0x0,0xc000000,0xc000000,0xc000000,0x0,0x0,0xc000000,0x0,0x0,0xc000000,0xc000000,0x0,0x0,0x0,0x0,0xc000000,0x0,0x0,0x0,0xc000000,0x0,0xc000000,0x0,0x3bfffff,0x0,0x0,0x0,0x0,0x0,0xc000000,0xc000000,0x0,0xc000000,0x0,0x0,0x0,0x0,0x0,0xc000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000000,0xc000000,0xc000000,0xc000000,0xc000000,0x0,0x0,0x0,0xc000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfbfffff,0xfbfffff,0x0,0x3bfffff,0x0,0x0,0x0,0x0,0xfbfffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000000,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_4() { - jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x427f,0x427f,0x100,0x400,0x100,0x100,0x100,0x100,0x100,0x100,0x4000,0x0,0x0,0x8000,0x0,0x0,0x1000,0x3000,0xc3fe0000,0x0,0x0,0xc3fe0000,0xc3fe0000,0xc3fe0000,0x0,0x0,0xc3fe0000,0x0,0x0,0xc3fe0000,0xc3fe0000,0x0,0x0,0x100,0x0,0xc3fe0000,0x0,0x0,0x0,0xc3fe0000,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc3fe0000,0xc3fe0000,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc3fe0000,0xc3fe0000,0xc3fe0000,0xc3fe0000,0xc3fe0000,0x0,0x0,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x3f00000,0x3f00000,0x0,0x0,0x3f00000,0x0,0x0,0xc3fe0000,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3fe0000,0xe0000,0x700000,0x3800000,0x0,0xc0000000,0x0,0x0,0x0,}; + jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800c0000,0x0,0x800c0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x84ff,0x84ff,0x200,0x800,0x200,0x200,0x200,0x200,0x200,0x200,0x8000,0x0,0x0,0x10000,0x0,0x0,0x2000,0x6000,0x87fc0000,0x0,0x0,0x87fc0000,0x87fc0000,0x87fc0000,0x0,0x0,0x87fc0000,0x0,0x0,0x87fc0000,0x87fc0000,0x0,0x0,0x200,0x0,0x87fc0000,0x0,0x0,0x0,0x87fc0000,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x87fc0000,0x87fc0000,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x87fc0000,0x87fc0000,0x87fc0000,0x87fc0000,0x87fc0000,0x0,0x0,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x7e00000,0x7e00000,0x0,0x0,0x7e00000,0x0,0x0,0x87fc0000,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7fc0000,0x1c0000,0xe00000,0x7000000,0x0,0x80000000,0xc0000,0x0,0x0,0x0,}; } private static void jj_la1_init_5() { - jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x4,0x4000004,0x0,0x0,0x297,0x20,0x0,0x4000000,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x4,0x4,0x4,0x0,0x4,0x4,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x297,0x0,0x1000,0x297,0x297,0x297,0x1000,0x0,0x297,0x20,0x1000,0x297,0x297,0x1000,0x20,0x0,0x14,0x3,0x0,0x14,0x14,0x3,0x14,0x3,0x0,0x4,0x0,0x800,0x14,0x800,0x14,0x297,0x297,0x1000,0x297,0x0,0x400,0x0,0x0,0x800,0x297,0x80080004,0x80080004,0x400,0x80080004,0x80080004,0x800,0x40000000,0x8000000,0x5000000,0x80080004,0x5000000,0x80004,0x40000000,0x80000000,0x80000004,0x0,0x80000000,0x84,0x84,0x297,0x297,0x297,0x297,0x213,0x0,0x200,0x0,0x213,0x400000,0x800000,0x7e000,0x7e000,0x3000000,0x0,0xc000000,0xc000000,0x3000000,0xc000000,0xc000000,0x3080007,0x7,0x14,0x0,0x800,0x800,0x800,0x0,0x7080007,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x14,0x10000000,0x10000000,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x200,}; + jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x8,0x8000008,0x0,0x0,0x52f,0x40,0x0,0x8000000,0x0,0x40,0x0,0x0,0x7,0x1000,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x8,0x8,0x0,0x8,0x8,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x52f,0x0,0x2000,0x52f,0x52f,0x52f,0x2000,0x0,0x52f,0x40,0x2000,0x52f,0x52f,0x2000,0x40,0x0,0x28,0x7,0x0,0x28,0x28,0x7,0x28,0x7,0x0,0x8,0x0,0x1000,0x28,0x1000,0x28,0x52f,0x52f,0x2000,0x52f,0x0,0x800,0x0,0x0,0x1000,0x52f,0x100008,0x100008,0x800,0x100008,0x100008,0x1000,0x80000000,0x10000000,0xa000000,0x100008,0xa000000,0x100008,0x80000000,0x0,0x8,0x0,0x0,0x108,0x108,0x52f,0x52f,0x52f,0x52f,0x427,0x0,0x400,0x0,0x427,0x800000,0x1000000,0xfc000,0xfc000,0x6000000,0x0,0x18000000,0x18000000,0x6000000,0x18000000,0x18000000,0x610000f,0xf,0x28,0x0,0x1000,0x1000,0x1000,0x0,0xe10000f,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x28,0x20000000,0x20000000,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x400,}; } private static void jj_la1_init_6() { - jj_la1_6 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_6 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x1,0x1,0x0,0x0,0x0,0x8,0x1,0x8,0x0,0x0,0x1,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } /** Constructor with InputStream. */ @@ -4953,7 +5096,7 @@ public SPARQLParser11(java.io.InputStream stream, String encoding) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 165; i++) jj_la1[i] = -1; + for (int i = 0; i < 170; i++) jj_la1[i] = -1; } /** Reinitialise. */ @@ -4967,7 +5110,7 @@ public void ReInit(java.io.InputStream stream, String encoding) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 165; i++) jj_la1[i] = -1; + for (int i = 0; i < 170; i++) jj_la1[i] = -1; } /** Constructor. */ @@ -4977,7 +5120,7 @@ public SPARQLParser11(java.io.Reader stream) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 165; i++) jj_la1[i] = -1; + for (int i = 0; i < 170; i++) jj_la1[i] = -1; } /** Reinitialise. */ @@ -4987,7 +5130,7 @@ public void ReInit(java.io.Reader stream) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 165; i++) jj_la1[i] = -1; + for (int i = 0; i < 170; i++) jj_la1[i] = -1; } /** Constructor with generated Token Manager. */ @@ -4996,7 +5139,7 @@ public SPARQLParser11(SPARQLParser11TokenManager tm) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 165; i++) jj_la1[i] = -1; + for (int i = 0; i < 170; i++) jj_la1[i] = -1; } /** Reinitialise. */ @@ -5005,7 +5148,7 @@ public void ReInit(SPARQLParser11TokenManager tm) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 165; i++) jj_la1[i] = -1; + for (int i = 0; i < 170; i++) jj_la1[i] = -1; } private Token jj_consume_token(int kind) throws ParseException { @@ -5056,12 +5199,12 @@ private int jj_ntk() { /** Generate ParseException. */ public ParseException generateParseException() { jj_expentries.clear(); - boolean[] la1tokens = new boolean[206]; + boolean[] la1tokens = new boolean[207]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 165; i++) { + for (int i = 0; i < 170; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1< 145) - kind = 145; + if (kind > 146) + kind = 146; jjCheckNAddStates(0, 6); } else if (curChar == 45) @@ -2461,8 +2475,8 @@ else if (curChar == 39) jjstateSet[jjnewStateCnt++] = 32; break; case 40: - if ((0x8400000000L & l) != 0L && kind > 157) - kind = 157; + if ((0x8400000000L & l) != 0L && kind > 158) + kind = 158; break; case 41: if (curChar == 39) @@ -2477,8 +2491,8 @@ else if (curChar == 39) jjCheckNAddStates(29, 31); break; case 45: - if (curChar == 39 && kind > 158) - kind = 158; + if (curChar == 39 && kind > 159) + kind = 159; break; case 46: if (curChar == 34) @@ -2493,8 +2507,8 @@ else if (curChar == 39) jjCheckNAddStates(26, 28); break; case 50: - if (curChar == 34 && kind > 159) - kind = 159; + if (curChar == 34 && kind > 160) + kind = 160; break; case 51: if (curChar == 39) @@ -2518,8 +2532,8 @@ else if (curChar == 39) jjAddStates(45, 46); break; case 58: - if (curChar == 39 && kind > 160) - kind = 160; + if (curChar == 39 && kind > 161) + kind = 161; break; case 59: if (curChar == 39) @@ -2555,8 +2569,8 @@ else if (curChar == 39) jjAddStates(51, 52); break; case 69: - if (curChar == 34 && kind > 161) - kind = 161; + if (curChar == 34 && kind > 162) + kind = 162; break; case 70: if (curChar == 34) @@ -2591,8 +2605,8 @@ else if (curChar == 39) jjCheckNAddStates(20, 22); break; case 78: - if (curChar == 41 && kind > 164) - kind = 164; + if (curChar == 41 && kind > 165) + kind = 165; break; case 79: if (curChar == 10) @@ -2773,15 +2787,15 @@ else if (curChar == 39) case 145: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 145) - kind = 145; + if (kind > 146) + kind = 146; jjCheckNAddStates(0, 6); break; case 146: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 145) - kind = 145; + if (kind > 146) + kind = 146; jjCheckNAdd(146); break; case 147: @@ -2795,8 +2809,8 @@ else if (curChar == 39) case 149: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 146) - kind = 146; + if (kind > 147) + kind = 147; jjCheckNAdd(149); break; case 150: @@ -2818,8 +2832,8 @@ else if (curChar == 39) case 155: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 147) - kind = 147; + if (kind > 148) + kind = 148; jjCheckNAdd(155); break; case 156: @@ -2833,8 +2847,8 @@ else if (curChar == 39) case 159: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 147) - kind = 147; + if (kind > 148) + kind = 148; jjCheckNAdd(159); break; case 160: @@ -2852,8 +2866,8 @@ else if (curChar == 39) case 164: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 147) - kind = 147; + if (kind > 148) + kind = 148; jjCheckNAdd(164); break; case 165: @@ -2863,8 +2877,8 @@ else if (curChar == 39) case 166: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 148) - kind = 148; + if (kind > 149) + kind = 149; jjCheckNAdd(166); break; case 167: @@ -2878,8 +2892,8 @@ else if (curChar == 39) case 169: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 149) - kind = 149; + if (kind > 150) + kind = 150; jjCheckNAdd(169); break; case 170: @@ -2897,8 +2911,8 @@ else if (curChar == 39) case 174: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 150) - kind = 150; + if (kind > 151) + kind = 151; jjCheckNAdd(174); break; case 175: @@ -2924,8 +2938,8 @@ else if (curChar == 39) case 181: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 150) - kind = 150; + if (kind > 151) + kind = 151; jjCheckNAdd(181); break; case 182: @@ -2939,8 +2953,8 @@ else if (curChar == 39) case 185: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 150) - kind = 150; + if (kind > 151) + kind = 151; jjCheckNAdd(185); break; case 186: @@ -2950,8 +2964,8 @@ else if (curChar == 39) case 187: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 151) - kind = 151; + if (kind > 152) + kind = 152; jjCheckNAdd(187); break; case 188: @@ -2965,8 +2979,8 @@ else if (curChar == 39) case 190: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 152) - kind = 152; + if (kind > 153) + kind = 153; jjCheckNAdd(190); break; case 191: @@ -2984,8 +2998,8 @@ else if (curChar == 39) case 195: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 153) - kind = 153; + if (kind > 154) + kind = 154; jjCheckNAdd(195); break; case 196: @@ -3011,8 +3025,8 @@ else if (curChar == 39) case 202: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 153) - kind = 153; + if (kind > 154) + kind = 154; jjCheckNAdd(202); break; case 203: @@ -3026,8 +3040,8 @@ else if (curChar == 39) case 206: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 153) - kind = 153; + if (kind > 154) + kind = 154; jjCheckNAdd(206); break; default : break; @@ -3127,8 +3141,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(32, 37); break; case 28: - if ((0x200000002L & l) != 0L && kind > 126) - kind = 126; + if ((0x200000002L & l) != 0L && kind > 127) + kind = 127; break; case 29: if ((0x10000000100000L & l) != 0L) @@ -3167,8 +3181,8 @@ else if ((0x20000000200L & l) != 0L) jjstateSet[jjnewStateCnt++] = 40; break; case 40: - if ((0x14404410000000L & l) != 0L && kind > 157) - kind = 157; + if ((0x14404410000000L & l) != 0L && kind > 158) + kind = 158; break; case 42: if ((0xffffffffefffffffL & l) != 0L) @@ -3229,8 +3243,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(59, 64); break; case 86: - if (curChar == 93 && kind > 169) - kind = 169; + if (curChar == 93 && kind > 170) + kind = 170; break; case 89: if ((0x7fffffe07fffffeL & l) != 0L) @@ -3329,8 +3343,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(78, 83); break; case 119: - if ((0x200000002L & l) != 0L && kind > 127) - kind = 127; + if ((0x200000002L & l) != 0L && kind > 128) + kind = 128; break; case 120: if ((0x10000000100000L & l) != 0L) @@ -3368,8 +3382,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(87, 92); break; case 134: - if ((0x2000000020L & l) != 0L && kind > 128) - kind = 128; + if ((0x2000000020L & l) != 0L && kind > 129) + kind = 129; break; case 135: if ((0x4000000040000L & l) != 0L) @@ -3700,18 +3714,18 @@ private static final boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, lo null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, -null, null, null, null, null, null, null, null, null, "\50", "\51", null, "\173", -"\175", "\133", "\135", null, "\73", "\54", "\56", "\75", "\41\75", "\76", "\74", -"\74\75", "\76\75", "\41", "\176", "\72", "\174\174", "\46\46", "\53", "\55", "\52", -"\57", "\136\136", "\100", "\174", "\136", "\55\76", "\74\55", "\77", null, null, -null, null, null, null, null, null, null, null, null, }; +null, null, null, null, null, null, null, null, null, null, "\50", "\51", null, +"\173", "\175", "\133", "\135", null, "\73", "\54", "\56", "\75", "\41\75", "\76", +"\74", "\74\75", "\76\75", "\41", "\176", "\72", "\174\174", "\46\46", "\53", "\55", +"\52", "\57", "\136\136", "\100", "\174", "\136", "\55\76", "\74\55", "\77", null, +null, null, null, null, null, null, null, null, null, null, }; /** Lexer state names. */ public static final String[] lexStateNames = { "DEFAULT", }; static final long[] jjtoToken = { - 0xfffffffffff9fe01L, 0xffffffffffffffffL, 0xffffffffe3feffffL, 0x7L, + 0xfffffffffff9fe01L, 0xffffffffffffffffL, 0xffffffffc7fdffffL, 0xfL, }; static final long[] jjtoSkip = { 0x7eL, 0x0L, 0x0L, 0x0L, diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/SPARQLResult.java b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/SPARQLResult.java index 77c7ae214c7..5f1a1529964 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/SPARQLResult.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/SPARQLResult.java @@ -18,9 +18,16 @@ package org.apache.jena.sparql.resultset; +import java.util.Iterator; + +import org.apache.jena.atlas.json.JsonObject; +import org.apache.jena.atlas.logging.Log; +import org.apache.jena.graph.Node; import org.apache.jena.query.Dataset; import org.apache.jena.query.ResultSet; import org.apache.jena.rdf.model.Model; +import org.apache.jena.sparql.core.Var; +import org.apache.jena.sparql.engine.binding.BindingMap; /** * The class "ResultSet" is reserved for the SELECT result format. This class @@ -34,6 +41,7 @@ public class SPARQLResult { private Boolean booleanResult = null; private Model model = null; private Dataset dataset = null; + private Iterator jsonItems = null; // Delayed choice of result type. protected SPARQLResult() {} @@ -54,6 +62,10 @@ public SPARQLResult(Dataset dataset) { set(dataset); } + public SPARQLResult(Iterator jsonItems) { + set(jsonItems); + } + public boolean isResultSet() { if ( !hasBeenSet ) throw new ResultSetException("Not set"); @@ -83,6 +95,13 @@ public boolean isBoolean() { return booleanResult != null; } + public boolean isJson() + { + if ( !hasBeenSet ) + throw new ResultSetException("Not set"); + return jsonItems != null; + } + public ResultSet getResultSet() { if ( !hasBeenSet ) throw new ResultSetException("Not set"); @@ -115,6 +134,15 @@ public Dataset getDataset() { return dataset; } + public Iterator getJsonItems() + { + if ( !hasBeenSet ) + throw new ResultSetException("Not set"); + if ( !isJson() ) + throw new ResultSetException("Not a JSON result"); + return jsonItems; + } + public boolean isHasBeenSet() { return hasBeenSet; } @@ -142,4 +170,23 @@ protected void set(Boolean r) { booleanResult = r; hasBeenSet = true; } + + protected void set(Iterator jsonItems) { + this.jsonItems = jsonItems; + hasBeenSet = true; + } + + static protected void addBinding(BindingMap binding, Var var, Node value) { + Node n = binding.get(var); + if ( n != null ) { + // Same - silently skip. + if ( n.equals(value) ) + return; + Log.warn(SPARQLResult.class, + String.format("Multiple occurences of a binding for variable '%s' with different values - ignored", var.getName())); + return; + } + binding.add(var, value); + } + } diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseJson.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseJson.java new file mode 100644 index 00000000000..ec1becf65cd --- /dev/null +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseJson.java @@ -0,0 +1,150 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.jena.fuseki.servlets; + +import static java.lang.String.format; + +import java.io.IOException; +import java.util.Iterator; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.StringUtils; +import org.apache.jena.atlas.json.JsonObject; +import org.apache.jena.fuseki.FusekiException; +import org.apache.jena.fuseki.servlets.ResponseResultSet.OutputContent; +import org.apache.jena.query.QueryCancelledException; +import org.apache.jena.query.ResultSetFormatter; +import org.apache.jena.riot.WebContent; +import org.apache.jena.web.HttpSC; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * Responsible for handling JSON response output. + */ +public class ResponseJson +{ + + // Loggers + private static Logger xlog = LoggerFactory.getLogger(ResponseJson.class) ; + + /** + * Outputs a JSON query result + * + * @param action HTTP action + * @param jsonItem a ResultSetJsonStream instance + */ + public static void doResponseJson(HttpAction action, Iterator jsonItem) + { + if ( jsonItem == null) + { + xlog.warn("doResponseJson: Result set is null") ; + throw new FusekiException("Result set is null") ; + } + + jsonOutput(action, jsonItem) ; + } + + private static void jsonOutput(HttpAction action, final Iterator jsonItems) + { + OutputContent proc = new OutputContent() + { + @Override + public void output(ServletOutputStream out) + { + if (jsonItems != null) + ResultSetFormatter.outputAsJSON(out, jsonItems) ; + } + } ; + + try + { + String callback = ResponseOps.paramCallback(action.request) ; + ServletOutputStream out = action.response.getOutputStream() ; + + if ( callback != null ) + { + callback = StringUtils.replaceChars(callback, "\r", "") ; + callback = StringUtils.replaceChars(callback, "\n", "") ; + out.print(callback) ; + out.println("(") ; + } + + output(action, "application/json", WebContent.charsetUTF8, proc) ; + + if ( callback != null ) + out.println(")") ; + } catch (IOException ex) { ServletOps.errorOccurred(ex) ; } + } + + private static void output(HttpAction action, String contentType, String charset, OutputContent proc) + { + try + { + setHttpResponse(action.request, action.response, contentType, charset) ; + action.response.setStatus(HttpSC.OK_200) ; + ServletOutputStream out = action.response.getOutputStream() ; + try + { + proc.output(out) ; + out.flush() ; + } + catch (QueryCancelledException ex) + { + // Bother. Status code 200 already sent. + xlog.info(format("[%d] Query Cancelled - results truncated (but 200 already sent)", action.id)) ; + out.println() ; + out.println("## Query cancelled due to timeout during execution ##") ; + out.println("## **** Incomplete results **** ##") ; + out.flush() ; + // No point raising an exception - 200 was sent already. + //errorOccurred(ex) ; + } + // Includes client gone. + } catch (IOException ex) + { ServletOps.errorOccurred(ex) ; } + // Do not call httpResponse.flushBuffer(); here - Jetty closes the stream if it is a gzip stream + // then the JSON callback closing details can't be added. + } + + public static void setHttpResponse(HttpServletRequest httpRequest, + HttpServletResponse httpResponse, + String contentType, String charset) + { + // ---- Set up HTTP Response + // Stop caching (not that ?queryString URLs are cached anyway) + if ( true ) + { + httpResponse.setHeader("Cache-Control", "no-cache") ; + httpResponse.setHeader("Pragma", "no-cache") ; + } + // See: http://www.w3.org/International/O-HTTP-charset.html + if ( contentType != null ) + { + if ( charset != null ) + contentType = contentType+"; charset="+charset ; + xlog.trace("Content-Type for response: "+contentType) ; + httpResponse.setContentType(contentType) ; + } + } + +} diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java index 278b9048a29..d88a51ca145 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java @@ -45,6 +45,7 @@ import org.apache.jena.atlas.io.IO ; import org.apache.jena.atlas.io.IndentedLineBuffer ; +import org.apache.jena.atlas.json.JsonObject; import org.apache.jena.atlas.web.ContentType ; import org.apache.jena.fuseki.Fuseki ; import org.apache.jena.fuseki.FusekiException ; @@ -345,6 +346,14 @@ protected SPARQLResult executeQuery(HttpAction action, QueryExecution queryExecu return new SPARQLResult(b) ; } + if ( query.isJsonType() ) + { + Iterator jsonIterator = queryExecution.execJsonItems(); + //JsonArray jsonArray = queryExecution.execJson(); + action.log.info(format("[%d] exec/json", action.id)); + return new SPARQLResult(jsonIterator); + } + ServletOps.errorBadRequest("Unknown query type - " + queryStringLog) ; return null ; } @@ -399,6 +408,8 @@ else if ( result.isModel() ) ResponseDataset.doResponseModel(action, result.getModel()); else if ( result.isBoolean() ) ResponseResultSet.doResponseResultSet(action, result.getBooleanResult()) ; + else if ( result.isJson() ) + ResponseJson.doResponseJson(action, result.getJsonItems()) ; else ServletOps.errorOccurred("Unknown or invalid result type") ; } From 650d0ebe27011a194eb59efe4126570830bb33fa Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Mon, 20 Mar 2017 23:46:03 +1300 Subject: [PATCH 02/18] Omit JSON from SPARQL 1.1 --- jena-arq/Grammar/arq.jj | 3 +- jena-arq/Grammar/master.jj | 17 +- jena-arq/Grammar/sparql_11.jj | 71 +- .../sparql/lang/sparql_11/SPARQLParser11.java | 576 +++--- .../sparql_11/SPARQLParser11Constants.java | 365 ++-- .../sparql_11/SPARQLParser11TokenManager.java | 1680 ++++++++--------- 6 files changed, 1246 insertions(+), 1466 deletions(-) diff --git a/jena-arq/Grammar/arq.jj b/jena-arq/Grammar/arq.jj index e28a0e0319f..636bc7bc3f5 100644 --- a/jena-arq/Grammar/arq.jj +++ b/jena-arq/Grammar/arq.jj @@ -81,7 +81,8 @@ void QueryUnit(): { } void Query() : { } { Prologue() - ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() | JsonQuery() + ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() + | JsonQuery() ) ValuesClause() } diff --git a/jena-arq/Grammar/master.jj b/jena-arq/Grammar/master.jj index de395c01135..a932a055ee0 100644 --- a/jena-arq/Grammar/master.jj +++ b/jena-arq/Grammar/master.jj @@ -101,7 +101,7 @@ import org.apache.jena.sparql.core.Quad ; public class CLASS extends PARSERBASE { boolean allowAggregatesInExpressions = false ; - +#ifdef ARQ public static void main(String args[]) { while (true) { StringBuilder queryString = new StringBuilder() ; @@ -133,6 +133,7 @@ public class CLASS extends PARSERBASE } } } +#endif } PARSER_END(CLASS) @@ -155,10 +156,10 @@ void QueryUnit(): { } void Query() : { } { Prologue() - ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() | JsonQuery() -// #ifdef ARQ -// | JsonTemplateQuery() -// #endif + ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() +#ifdef ARQ + | JsonQuery() +#endif ) ValuesClause() } @@ -360,6 +361,7 @@ void AskQuery() : {} SolutionModifier() } +#ifdef ARQ void JsonQuery() : {} { JsonClause() @@ -388,6 +390,7 @@ void JsonClause() : { Object o ; String s ; } )* } +#endif // ---- @@ -2239,6 +2242,7 @@ String String() : { Token t ; String lex ; } } } +#ifdef ARQ Number Number() : { Token t ; Number number ; } { ( @@ -2249,6 +2253,7 @@ Number Number() : { Token t ; Number number ; } return number ; } } +#endif String iri() : { String iri ; } { @@ -2350,7 +2355,9 @@ TOKEN [IGNORE_CASE] : | < SELECT: "select" > | < DISTINCT: "distinct" > | < REDUCED: "reduced" > +#ifdef ARQ | < JSON: "json" > +#endif | < DESCRIBE: "describe" > | < CONSTRUCT: "construct" > | < ASK: "ask" > diff --git a/jena-arq/Grammar/sparql_11.jj b/jena-arq/Grammar/sparql_11.jj index 9a6d677144b..5e373417db2 100644 --- a/jena-arq/Grammar/sparql_11.jj +++ b/jena-arq/Grammar/sparql_11.jj @@ -37,37 +37,6 @@ import org.apache.jena.sparql.modify.request.* ; public class SPARQLParser11 extends SPARQLParser11Base { boolean allowAggregatesInExpressions = false ; - public static void main(String args[]) { - while (true) { - StringBuilder queryString = new StringBuilder() ; - java.util.Scanner scanner = new java.util.Scanner(System.in) ; - boolean firstEmptyLine = false ; - System.out.print("Enter input: ") ; - while (true) { - String line = scanner.nextLine() ; - if ("".equals(line) || line == null) { - if (firstEmptyLine) break ; - firstEmptyLine = true ; - } else { - queryString.append(line + System.lineSeparator()) ; - firstEmptyLine = false ; - } - } - try { - Query query = QueryFactory.create(queryString.toString(), - "http://example/query-base", Syntax.syntaxARQ) ; - java.io.Reader in = new java.io.StringReader(queryString.toString()) ; - SPARQLParser11 parser = new SPARQLParser11(in) ; - parser.setQuery(query) ; - parser.QueryUnit() ; - System.out.println("Parsed query successfully!") ; - System.out.println("---" + System.lineSeparator()) ; - } catch (Exception e) { - System.out.println("Parser error: " + e.getMessage()) ; - e.printStackTrace(System.err) ; - } - } - } } PARSER_END(SPARQLParser11) void QueryUnit(): { } @@ -80,7 +49,7 @@ void QueryUnit(): { } void Query() : { } { Prologue() - ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() | JsonQuery() + ( SelectQuery() | ConstructQuery() | DescribeQuery() | AskQuery() ) ValuesClause() } @@ -202,33 +171,6 @@ void AskQuery() : {} WhereClause() SolutionModifier() } -void JsonQuery() : {} -{ - JsonClause() - ( DatasetClause() )* - WhereClause() - SolutionModifier() -} -void JsonClause() : { Object o ; String s ; } -{ - { getQuery().setQueryJsonType() ; } - - s = String() < PNAME_NS > - ( - o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } - | o = String() { getQuery().addJsonMapping(s, o) ; } - | o = Number() { getQuery().addJsonMapping(s, o) ; } - ) - ( - s = String() < PNAME_NS > - ( - o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } - | o = String() { getQuery().addJsonMapping(s, o) ; } - | o = Number() { getQuery().addJsonMapping(s, o) ; } - ) - )* - -} void DatasetClause() : {} { @@ -1468,16 +1410,6 @@ String String() : { Token t ; String lex ; } return lex ; } } -Number Number() : { Token t ; Number number ; } -{ - ( - t = < INTEGER > { number = integerValue(t.image) ; } - | t = < DECIMAL > { number = doubleValue(t.image) ; } - ) - { - return number ; - } -} String iri() : { String iri ; } { iri = IRIREF() { return iri ; } @@ -1536,7 +1468,6 @@ TOKEN [IGNORE_CASE] : | < SELECT: "select" > | < DISTINCT: "distinct" > | < REDUCED: "reduced" > -| < JSON: "json" > | < DESCRIBE: "describe" > | < CONSTRUCT: "construct" > | < ASK: "ask" > diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java index 74367389837..e4222f2a917 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java @@ -14,37 +14,6 @@ @SuppressWarnings("all") public class SPARQLParser11 extends SPARQLParser11Base implements SPARQLParser11Constants { boolean allowAggregatesInExpressions = false ; - public static void main(String args[]) { - while (true) { - StringBuilder queryString = new StringBuilder() ; - java.util.Scanner scanner = new java.util.Scanner(System.in) ; - boolean firstEmptyLine = false ; - System.out.print("Enter input: ") ; - while (true) { - String line = scanner.nextLine() ; - if ("".equals(line) || line == null) { - if (firstEmptyLine) break ; - firstEmptyLine = true ; - } else { - queryString.append(line + System.lineSeparator()) ; - firstEmptyLine = false ; - } - } - try { - Query query = QueryFactory.create(queryString.toString(), - "http://example/query-base", Syntax.syntaxARQ) ; - java.io.Reader in = new java.io.StringReader(queryString.toString()) ; - SPARQLParser11 parser = new SPARQLParser11(in) ; - parser.setQuery(query) ; - parser.QueryUnit() ; - System.out.println("Parsed query successfully!") ; - System.out.println("---" + System.lineSeparator()) ; - } catch (Exception e) { - System.out.println("Parser error: " + e.getMessage()) ; - e.printStackTrace(System.err) ; - } - } - } final public void QueryUnit() throws ParseException { ByteOrderMark(); @@ -69,9 +38,6 @@ final public void Query() throws ParseException { case ASK: AskQuery(); break; - case JSON: - JsonQuery(); - break; default: jj_la1[0] = jj_gen; jj_consume_token(-1); @@ -414,94 +380,6 @@ final public void AskQuery() throws ParseException { SolutionModifier(); } - final public void JsonQuery() throws ParseException { - JsonClause(); - label_9: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case FROM: - ; - break; - default: - jj_la1[19] = jj_gen; - break label_9; - } - DatasetClause(); - } - WhereClause(); - SolutionModifier(); - } - - final public void JsonClause() throws ParseException { - Object o ; String s ; - jj_consume_token(JSON); - getQuery().setQueryJsonType() ; - jj_consume_token(LBRACE); - s = String(); - jj_consume_token(PNAME_NS); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case VAR1: - case VAR2: - o = Var(); - getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; - break; - case STRING_LITERAL1: - case STRING_LITERAL2: - case STRING_LITERAL_LONG1: - case STRING_LITERAL_LONG2: - o = String(); - getQuery().addJsonMapping(s, o) ; - break; - case INTEGER: - case DECIMAL: - o = Number(); - getQuery().addJsonMapping(s, o) ; - break; - default: - jj_la1[20] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - label_10: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case COMMA: - ; - break; - default: - jj_la1[21] = jj_gen; - break label_10; - } - jj_consume_token(COMMA); - s = String(); - jj_consume_token(PNAME_NS); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case VAR1: - case VAR2: - o = Var(); - getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; - break; - case STRING_LITERAL1: - case STRING_LITERAL2: - case STRING_LITERAL_LONG1: - case STRING_LITERAL_LONG2: - o = String(); - getQuery().addJsonMapping(s, o) ; - break; - case INTEGER: - case DECIMAL: - o = Number(); - getQuery().addJsonMapping(s, o) ; - break; - default: - jj_la1[22] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - jj_consume_token(RBRACE); - } - final public void DatasetClause() throws ParseException { jj_consume_token(FROM); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -514,7 +392,7 @@ final public void DatasetClause() throws ParseException { NamedGraphClause(); break; default: - jj_la1[23] = jj_gen; + jj_la1[19] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -547,7 +425,7 @@ final public void WhereClause() throws ParseException { jj_consume_token(WHERE); break; default: - jj_la1[24] = jj_gen; + jj_la1[20] = jj_gen; ; } startWherePattern() ; @@ -562,7 +440,7 @@ final public void SolutionModifier() throws ParseException { GroupClause(); break; default: - jj_la1[25] = jj_gen; + jj_la1[21] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -570,7 +448,7 @@ final public void SolutionModifier() throws ParseException { HavingClause(); break; default: - jj_la1[26] = jj_gen; + jj_la1[22] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -578,7 +456,7 @@ final public void SolutionModifier() throws ParseException { OrderClause(); break; default: - jj_la1[27] = jj_gen; + jj_la1[23] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -587,7 +465,7 @@ final public void SolutionModifier() throws ParseException { LimitOffsetClauses(); break; default: - jj_la1[28] = jj_gen; + jj_la1[24] = jj_gen; ; } } @@ -595,7 +473,7 @@ final public void SolutionModifier() throws ParseException { final public void GroupClause() throws ParseException { jj_consume_token(GROUP); jj_consume_token(BY); - label_11: + label_9: while (true) { GroupCondition(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -669,8 +547,8 @@ final public void GroupClause() throws ParseException { ; break; default: - jj_la1[29] = jj_gen; - break label_11; + jj_la1[25] = jj_gen; + break label_9; } } } @@ -757,7 +635,7 @@ final public void GroupCondition() throws ParseException { v = Var(); break; default: - jj_la1[30] = jj_gen; + jj_la1[26] = jj_gen; ; } jj_consume_token(RPAREN); @@ -769,7 +647,7 @@ final public void GroupCondition() throws ParseException { getQuery().addGroupBy(v) ; break; default: - jj_la1[31] = jj_gen; + jj_la1[27] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -778,7 +656,7 @@ final public void GroupCondition() throws ParseException { final public void HavingClause() throws ParseException { setAllowAggregatesInExpressions(true) ; jj_consume_token(HAVING); - label_12: + label_10: while (true) { HavingCondition(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -850,8 +728,8 @@ final public void HavingClause() throws ParseException { ; break; default: - jj_la1[32] = jj_gen; - break label_12; + jj_la1[28] = jj_gen; + break label_10; } } setAllowAggregatesInExpressions(false) ; @@ -867,7 +745,7 @@ final public void OrderClause() throws ParseException { setAllowAggregatesInExpressions(true) ; jj_consume_token(ORDER); jj_consume_token(BY); - label_13: + label_11: while (true) { OrderCondition(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -943,8 +821,8 @@ final public void OrderClause() throws ParseException { ; break; default: - jj_la1[33] = jj_gen; - break label_13; + jj_la1[29] = jj_gen; + break label_11; } } setAllowAggregatesInExpressions(false) ; @@ -966,7 +844,7 @@ final public void OrderCondition() throws ParseException { direction = Query.ORDER_DESCENDING ; break; default: - jj_la1[34] = jj_gen; + jj_la1[30] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1112,13 +990,13 @@ final public void OrderCondition() throws ParseException { v = Var(); break; default: - jj_la1[35] = jj_gen; + jj_la1[31] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[36] = jj_gen; + jj_la1[32] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1137,7 +1015,7 @@ final public void LimitOffsetClauses() throws ParseException { OffsetClause(); break; default: - jj_la1[37] = jj_gen; + jj_la1[33] = jj_gen; ; } break; @@ -1148,12 +1026,12 @@ final public void LimitOffsetClauses() throws ParseException { LimitClause(); break; default: - jj_la1[38] = jj_gen; + jj_la1[34] = jj_gen; ; } break; default: - jj_la1[39] = jj_gen; + jj_la1[35] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1183,7 +1061,7 @@ final public void ValuesClause() throws ParseException { finishValuesClause(t.beginLine, t.beginColumn) ; break; default: - jj_la1[40] = jj_gen; + jj_la1[36] = jj_gen; ; } } @@ -1211,12 +1089,12 @@ final public void Update() throws ParseException { Update(); break; default: - jj_la1[41] = jj_gen; + jj_la1[37] = jj_gen; ; } break; default: - jj_la1[42] = jj_gen; + jj_la1[38] = jj_gen; ; } } @@ -1261,7 +1139,7 @@ final public void Update1() throws ParseException { DeleteData(); break; default: - jj_la1[43] = jj_gen; + jj_la1[39] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1278,7 +1156,7 @@ final public Update Load() throws ParseException { silent = true ; break; default: - jj_la1[44] = jj_gen; + jj_la1[40] = jj_gen; ; } url = iri(); @@ -1288,7 +1166,7 @@ final public Update Load() throws ParseException { dest = GraphRef(); break; default: - jj_la1[45] = jj_gen; + jj_la1[41] = jj_gen; ; } {if (true) return new UpdateLoad(url, dest, silent) ;} @@ -1304,7 +1182,7 @@ final public Update Clear() throws ParseException { silent = true ; break; default: - jj_la1[46] = jj_gen; + jj_la1[42] = jj_gen; ; } target = GraphRefAll(); @@ -1321,7 +1199,7 @@ final public Update Drop() throws ParseException { silent = true ; break; default: - jj_la1[47] = jj_gen; + jj_la1[43] = jj_gen; ; } target = GraphRefAll(); @@ -1338,7 +1216,7 @@ final public Update Create() throws ParseException { silent=true ; break; default: - jj_la1[48] = jj_gen; + jj_la1[44] = jj_gen; ; } iri = GraphRef(); @@ -1355,7 +1233,7 @@ final public Update Add() throws ParseException { silent=true ; break; default: - jj_la1[49] = jj_gen; + jj_la1[45] = jj_gen; ; } src = GraphOrDefault(); @@ -1374,7 +1252,7 @@ final public Update Move() throws ParseException { silent=true ; break; default: - jj_la1[50] = jj_gen; + jj_la1[46] = jj_gen; ; } src = GraphOrDefault(); @@ -1393,7 +1271,7 @@ final public Update Copy() throws ParseException { silent=true ; break; default: - jj_la1[51] = jj_gen; + jj_la1[47] = jj_gen; ; } src = GraphOrDefault(); @@ -1445,7 +1323,7 @@ final public Update Modify() throws ParseException { Node n = createNode(iri) ; up.setWithIRI(n) ; break; default: - jj_la1[52] = jj_gen; + jj_la1[48] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1456,7 +1334,7 @@ final public Update Modify() throws ParseException { InsertClause(up); break; default: - jj_la1[53] = jj_gen; + jj_la1[49] = jj_gen; ; } break; @@ -1464,19 +1342,19 @@ final public Update Modify() throws ParseException { InsertClause(up); break; default: - jj_la1[54] = jj_gen; + jj_la1[50] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_14: + label_12: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case USING: ; break; default: - jj_la1[55] = jj_gen; - break label_14; + jj_la1[51] = jj_gen; + break label_12; } UsingClause(up); } @@ -1526,7 +1404,7 @@ final public void UsingClause(UpdateWithUsing update) throws ParseException { n = createNode(iri) ; update.addUsingNamed(n) ; break; default: - jj_la1[56] = jj_gen; + jj_la1[52] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1548,14 +1426,14 @@ final public Target GraphOrDefault() throws ParseException { jj_consume_token(GRAPH); break; default: - jj_la1[57] = jj_gen; + jj_la1[53] = jj_gen; ; } iri = iri(); {if (true) return Target.create(createNode(iri)) ;} break; default: - jj_la1[58] = jj_gen; + jj_la1[54] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1590,7 +1468,7 @@ final public Target GraphRefAll() throws ParseException { {if (true) return Target.ALL ;} break; default: - jj_la1[59] = jj_gen; + jj_la1[55] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1639,18 +1517,18 @@ final public void Quads(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[60] = jj_gen; + jj_la1[56] = jj_gen; ; } - label_15: + label_13: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case GRAPH: ; break; default: - jj_la1[61] = jj_gen; - break label_15; + jj_la1[57] = jj_gen; + break label_13; } QuadsNotTriples(acc); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1658,7 +1536,7 @@ final public void Quads(QuadAccSink acc) throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[62] = jj_gen; + jj_la1[58] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1690,7 +1568,7 @@ final public void Quads(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[63] = jj_gen; + jj_la1[59] = jj_gen; ; } } @@ -1731,7 +1609,7 @@ final public void QuadsNotTriples(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[64] = jj_gen; + jj_la1[60] = jj_gen; ; } jj_consume_token(RBRACE); @@ -1772,12 +1650,12 @@ final public void TriplesTemplate(TripleCollector acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[65] = jj_gen; + jj_la1[61] = jj_gen; ; } break; default: - jj_la1[66] = jj_gen; + jj_la1[62] = jj_gen; ; } } @@ -1794,7 +1672,7 @@ final public Element GroupGraphPattern() throws ParseException { el = new ElementSubQuery(q) ; break; default: - jj_la1[67] = jj_gen; + jj_la1[63] = jj_gen; el = GroupGraphPatternSub(); } jj_consume_token(RBRACE); @@ -1838,10 +1716,10 @@ final public Element GroupGraphPatternSub() throws ParseException { elg.addElement(el) ; break; default: - jj_la1[68] = jj_gen; + jj_la1[64] = jj_gen; ; } - label_16: + label_14: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VALUES: @@ -1855,8 +1733,8 @@ final public Element GroupGraphPatternSub() throws ParseException { ; break; default: - jj_la1[69] = jj_gen; - break label_16; + jj_la1[65] = jj_gen; + break label_14; } el = GraphPatternNotTriples(); elg.addElement(el) ; @@ -1865,7 +1743,7 @@ final public Element GroupGraphPatternSub() throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[70] = jj_gen; + jj_la1[66] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1900,7 +1778,7 @@ final public Element GroupGraphPatternSub() throws ParseException { elg.addElement(el) ; break; default: - jj_la1[71] = jj_gen; + jj_la1[67] = jj_gen; ; } } @@ -1945,12 +1823,12 @@ final public Element TriplesBlock(ElementPathBlock acc) throws ParseException { TriplesBlock(acc); break; default: - jj_la1[72] = jj_gen; + jj_la1[68] = jj_gen; ; } break; default: - jj_la1[73] = jj_gen; + jj_la1[69] = jj_gen; ; } {if (true) return acc ;} @@ -1985,7 +1863,7 @@ final public Element GraphPatternNotTriples() throws ParseException { el = InlineData(); break; default: - jj_la1[74] = jj_gen; + jj_la1[70] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2019,7 +1897,7 @@ final public Element ServiceGraphPattern() throws ParseException { silent=true; break; default: - jj_la1[75] = jj_gen; + jj_la1[71] = jj_gen; ; } n = VarOrIri(); @@ -2063,7 +1941,7 @@ final public void DataBlock() throws ParseException { InlineDataFull(); break; default: - jj_la1[76] = jj_gen; + jj_la1[72] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2074,7 +1952,7 @@ final public void InlineDataOneVar() throws ParseException { v = Var(); emitDataBlockVariable(v) ; t = jj_consume_token(LBRACE); - label_17: + label_15: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IRIref: @@ -2099,8 +1977,8 @@ final public void InlineDataOneVar() throws ParseException { ; break; default: - jj_la1[77] = jj_gen; - break label_17; + jj_la1[73] = jj_gen; + break label_15; } n = DataBlockValue(); startDataBlockValueRow(-1, -1) ; @@ -2118,7 +1996,7 @@ final public void InlineDataFull() throws ParseException { break; case LPAREN: jj_consume_token(LPAREN); - label_18: + label_16: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VAR1: @@ -2126,8 +2004,8 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[78] = jj_gen; - break label_18; + jj_la1[74] = jj_gen; + break label_16; } v = Var(); emitDataBlockVariable(v) ; @@ -2135,12 +2013,12 @@ final public void InlineDataFull() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[79] = jj_gen; + jj_la1[75] = jj_gen; jj_consume_token(-1); throw new ParseException(); } jj_consume_token(LBRACE); - label_19: + label_17: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: @@ -2148,15 +2026,15 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[80] = jj_gen; - break label_19; + jj_la1[76] = jj_gen; + break label_17; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: t = jj_consume_token(LPAREN); beginLine = t.beginLine; beginColumn = t.beginColumn; t = null; startDataBlockValueRow(beginLine, beginColumn) ; - label_20: + label_18: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IRIref: @@ -2181,8 +2059,8 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[81] = jj_gen; - break label_20; + jj_la1[77] = jj_gen; + break label_18; } n = DataBlockValue(); emitDataBlockValue(n, beginLine, beginColumn) ; @@ -2198,7 +2076,7 @@ final public void InlineDataFull() throws ParseException { finishDataBlockValueRow(beginLine, beginColumn) ; break; default: - jj_la1[82] = jj_gen; + jj_la1[78] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2244,7 +2122,7 @@ final public Node DataBlockValue() throws ParseException { {if (true) return null ;} break; default: - jj_la1[83] = jj_gen; + jj_la1[79] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2262,15 +2140,15 @@ final public Element MinusGraphPattern() throws ParseException { final public Element GroupOrUnionGraphPattern() throws ParseException { Element el = null ; ElementUnion el2 = null ; el = GroupGraphPattern(); - label_21: + label_19: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case UNION: ; break; default: - jj_la1[84] = jj_gen; - break label_21; + jj_la1[80] = jj_gen; + break label_19; } jj_consume_token(UNION); if ( el2 == null ) @@ -2368,7 +2246,7 @@ final public Expr Constraint() throws ParseException { c = FunctionCall(); break; default: - jj_la1[85] = jj_gen; + jj_la1[81] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2409,20 +2287,20 @@ final public Args ArgList() throws ParseException { beginLine, beginColumn) ; break; default: - jj_la1[86] = jj_gen; + jj_la1[82] = jj_gen; ; } expr = Expression(); args.add(expr) ; - label_22: + label_20: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[87] = jj_gen; - break label_22; + jj_la1[83] = jj_gen; + break label_20; } jj_consume_token(COMMA); expr = Expression(); @@ -2431,7 +2309,7 @@ final public Args ArgList() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[88] = jj_gen; + jj_la1[84] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2449,15 +2327,15 @@ final public ExprList ExpressionList() throws ParseException { jj_consume_token(LPAREN); expr = Expression(); exprList.add(expr) ; - label_23: + label_21: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[89] = jj_gen; - break label_23; + jj_la1[85] = jj_gen; + break label_21; } jj_consume_token(COMMA); expr = Expression(); @@ -2466,7 +2344,7 @@ final public ExprList ExpressionList() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[90] = jj_gen; + jj_la1[86] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2508,7 +2386,7 @@ final public Template ConstructTemplate() throws ParseException { ConstructTriples(acc); break; default: - jj_la1[91] = jj_gen; + jj_la1[87] = jj_gen; ; } jj_consume_token(RBRACE); @@ -2551,12 +2429,12 @@ final public void ConstructTriples(TripleCollector acc) throws ParseException { ConstructTriples(acc); break; default: - jj_la1[92] = jj_gen; + jj_la1[88] = jj_gen; ; } break; default: - jj_la1[93] = jj_gen; + jj_la1[89] = jj_gen; ; } } @@ -2598,7 +2476,7 @@ final public void TriplesSameSubject(TripleCollector acc) throws ParseException insert(acc, tempAcc) ; break; default: - jj_la1[94] = jj_gen; + jj_la1[90] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2615,7 +2493,7 @@ final public void PropertyList(Node s, TripleCollector acc) throws ParseExceptio PropertyListNotEmpty(s, acc); break; default: - jj_la1[95] = jj_gen; + jj_la1[91] = jj_gen; ; } } @@ -2624,15 +2502,15 @@ final public void PropertyListNotEmpty(Node s, TripleCollector acc) throws Parse Node p = null ; p = Verb(); ObjectList(s, p, null, acc); - label_24: + label_22: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[96] = jj_gen; - break label_24; + jj_la1[92] = jj_gen; + break label_22; } jj_consume_token(SEMICOLON); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2646,7 +2524,7 @@ final public void PropertyListNotEmpty(Node s, TripleCollector acc) throws Parse ObjectList(s, p, null, acc); break; default: - jj_la1[97] = jj_gen; + jj_la1[93] = jj_gen; ; } } @@ -2667,7 +2545,7 @@ final public Node Verb() throws ParseException { p = nRDFtype ; break; default: - jj_la1[98] = jj_gen; + jj_la1[94] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2678,15 +2556,15 @@ final public Node Verb() throws ParseException { final public void ObjectList(Node s, Node p, Path path, TripleCollector acc) throws ParseException { Node o ; Object(s, p, path, acc); - label_25: + label_23: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[99] = jj_gen; - break label_25; + jj_la1[95] = jj_gen; + break label_23; } jj_consume_token(COMMA); Object(s, p, path, acc); @@ -2737,7 +2615,7 @@ final public void TriplesSameSubjectPath(TripleCollector acc) throws ParseExcept insert(acc, tempAcc) ; break; default: - jj_la1[100] = jj_gen; + jj_la1[96] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2757,7 +2635,7 @@ final public void PropertyListPath(Node s, TripleCollector acc) throws ParseExce PropertyListPathNotEmpty(s, acc); break; default: - jj_la1[101] = jj_gen; + jj_la1[97] = jj_gen; ; } } @@ -2779,20 +2657,20 @@ final public void PropertyListPathNotEmpty(Node s, TripleCollector acc) throws P p = VerbSimple(); break; default: - jj_la1[102] = jj_gen; + jj_la1[98] = jj_gen; jj_consume_token(-1); throw new ParseException(); } ObjectListPath(s, p, path, acc); - label_26: + label_24: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[103] = jj_gen; - break label_26; + jj_la1[99] = jj_gen; + break label_24; } jj_consume_token(SEMICOLON); path = null ; p = null ; @@ -2821,14 +2699,14 @@ final public void PropertyListPathNotEmpty(Node s, TripleCollector acc) throws P p = VerbSimple(); break; default: - jj_la1[104] = jj_gen; + jj_la1[100] = jj_gen; jj_consume_token(-1); throw new ParseException(); } ObjectListPath(s, p, path, acc); break; default: - jj_la1[105] = jj_gen; + jj_la1[101] = jj_gen; ; } } @@ -2851,15 +2729,15 @@ final public Node VerbSimple() throws ParseException { final public void ObjectListPath(Node s, Node p, Path path, TripleCollector acc) throws ParseException { Node o ; ObjectPath(s, p, path, acc); - label_27: + label_25: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[106] = jj_gen; - break label_27; + jj_la1[102] = jj_gen; + break label_25; } jj_consume_token(COMMA); ObjectPath(s, p, path, acc); @@ -2883,15 +2761,15 @@ final public Path Path() throws ParseException { final public Path PathAlternative() throws ParseException { Path p1 , p2 ; p1 = PathSequence(); - label_28: + label_26: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VBAR: ; break; default: - jj_la1[107] = jj_gen; - break label_28; + jj_la1[103] = jj_gen; + break label_26; } jj_consume_token(VBAR); p2 = PathSequence(); @@ -2904,15 +2782,15 @@ final public Path PathAlternative() throws ParseException { final public Path PathSequence() throws ParseException { Path p1 , p2 ; p1 = PathEltOrInverse(); - label_29: + label_27: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SLASH: ; break; default: - jj_la1[108] = jj_gen; - break label_29; + jj_la1[104] = jj_gen; + break label_27; } jj_consume_token(SLASH); p2 = PathEltOrInverse(); @@ -2932,7 +2810,7 @@ final public Path PathElt() throws ParseException { p = PathMod(p); break; default: - jj_la1[109] = jj_gen; + jj_la1[105] = jj_gen; ; } {if (true) return p ;} @@ -2956,7 +2834,7 @@ final public Path PathEltOrInverse() throws ParseException { p = PathFactory.pathInverse(p) ; break; default: - jj_la1[110] = jj_gen; + jj_la1[106] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2980,7 +2858,7 @@ final public Path PathMod(Path p) throws ParseException { {if (true) return PathFactory.pathOneOrMore1(p) ;} break; default: - jj_la1[111] = jj_gen; + jj_la1[107] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3010,7 +2888,7 @@ final public Path PathPrimary() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[112] = jj_gen; + jj_la1[108] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3040,15 +2918,15 @@ final public Path PathNegatedPropertySet() throws ParseException { case CARAT: p = PathOneInPropertySet(); pNegSet.add(p) ; - label_30: + label_28: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VBAR: ; break; default: - jj_la1[113] = jj_gen; - break label_30; + jj_la1[109] = jj_gen; + break label_28; } jj_consume_token(VBAR); p = PathOneInPropertySet(); @@ -3056,13 +2934,13 @@ final public Path PathNegatedPropertySet() throws ParseException { } break; default: - jj_la1[114] = jj_gen; + jj_la1[110] = jj_gen; ; } jj_consume_token(RPAREN); break; default: - jj_la1[115] = jj_gen; + jj_la1[111] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3097,13 +2975,13 @@ final public P_Path0 PathOneInPropertySet() throws ParseException { {if (true) return new P_ReverseLink(nRDFtype) ;} break; default: - jj_la1[116] = jj_gen; + jj_la1[112] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[117] = jj_gen; + jj_la1[113] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3129,7 +3007,7 @@ final public Node TriplesNode(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[118] = jj_gen; + jj_la1[114] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3158,7 +3036,7 @@ final public Node TriplesNodePath(TripleCollectorMark acc) throws ParseException {if (true) return n ;} break; default: - jj_la1[119] = jj_gen; + jj_la1[115] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3179,7 +3057,7 @@ final public Node Collection(TripleCollectorMark acc) throws ParseException { Node listHead = nRDFnil ; Node lastCell = null ; int mark ; Node n ; Token t ; t = jj_consume_token(LPAREN); int beginLine = t.beginLine; int beginColumn = t.beginColumn; t = null; - label_31: + label_29: while (true) { Node cell = createListNode( beginLine, beginColumn) ; if ( listHead == nRDFnil ) @@ -3219,8 +3097,8 @@ final public Node Collection(TripleCollectorMark acc) throws ParseException { ; break; default: - jj_la1[120] = jj_gen; - break label_31; + jj_la1[116] = jj_gen; + break label_29; } } jj_consume_token(RPAREN); @@ -3234,7 +3112,7 @@ final public Node CollectionPath(TripleCollectorMark acc) throws ParseException Node listHead = nRDFnil ; Node lastCell = null ; int mark ; Node n ; Token t ; t = jj_consume_token(LPAREN); int beginLine = t.beginLine; int beginColumn = t.beginColumn; t = null; - label_32: + label_30: while (true) { Node cell = createListNode( beginLine, beginColumn) ; if ( listHead == nRDFnil ) @@ -3274,8 +3152,8 @@ final public Node CollectionPath(TripleCollectorMark acc) throws ParseException ; break; default: - jj_la1[121] = jj_gen; - break label_32; + jj_la1[117] = jj_gen; + break label_30; } } jj_consume_token(RPAREN); @@ -3320,7 +3198,7 @@ final public Node GraphNode(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[122] = jj_gen; + jj_la1[118] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3362,7 +3240,7 @@ final public Node GraphNodePath(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[123] = jj_gen; + jj_la1[119] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3400,7 +3278,7 @@ final public Node VarOrTerm() throws ParseException { n = GraphTerm(); break; default: - jj_la1[124] = jj_gen; + jj_la1[120] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3422,7 +3300,7 @@ final public Node VarOrIri() throws ParseException { n = createNode(iri) ; break; default: - jj_la1[125] = jj_gen; + jj_la1[121] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3448,7 +3326,7 @@ final public Node VarOrBlankNodeOrIri() throws ParseException { n = createNode(iri) ; break; default: - jj_la1[126] = jj_gen; + jj_la1[122] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3466,7 +3344,7 @@ final public Var Var() throws ParseException { t = jj_consume_token(VAR2); break; default: - jj_la1[127] = jj_gen; + jj_la1[123] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3517,7 +3395,7 @@ final public Node GraphTerm() throws ParseException { {if (true) return nRDFnil ;} break; default: - jj_la1[128] = jj_gen; + jj_la1[124] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3534,15 +3412,15 @@ final public Expr Expression() throws ParseException { final public Expr ConditionalOrExpression() throws ParseException { Expr expr1, expr2 ; expr1 = ConditionalAndExpression(); - label_33: + label_31: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SC_OR: ; break; default: - jj_la1[129] = jj_gen; - break label_33; + jj_la1[125] = jj_gen; + break label_31; } jj_consume_token(SC_OR); expr2 = ConditionalAndExpression(); @@ -3555,15 +3433,15 @@ final public Expr ConditionalOrExpression() throws ParseException { final public Expr ConditionalAndExpression() throws ParseException { Expr expr1, expr2 ; expr1 = ValueLogical(); - label_34: + label_32: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SC_AND: ; break; default: - jj_la1[130] = jj_gen; - break label_34; + jj_la1[126] = jj_gen; + break label_32; } jj_consume_token(SC_AND); expr2 = ValueLogical(); @@ -3635,13 +3513,13 @@ final public Expr RelationalExpression() throws ParseException { expr1 = new E_NotOneOf(expr1, a) ; break; default: - jj_la1[131] = jj_gen; + jj_la1[127] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[132] = jj_gen; + jj_la1[128] = jj_gen; ; } {if (true) return expr1 ;} @@ -3658,7 +3536,7 @@ final public Expr NumericExpression() throws ParseException { final public Expr AdditiveExpression() throws ParseException { Expr expr1, expr2, expr3 ; boolean addition ; Node n ; expr1 = MultiplicativeExpression(); - label_35: + label_33: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case INTEGER_POSITIVE: @@ -3672,8 +3550,8 @@ final public Expr AdditiveExpression() throws ParseException { ; break; default: - jj_la1[133] = jj_gen; - break label_35; + jj_la1[129] = jj_gen; + break label_33; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PLUS: @@ -3710,11 +3588,11 @@ final public Expr AdditiveExpression() throws ParseException { addition = false ; break; default: - jj_la1[134] = jj_gen; + jj_la1[130] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_36: + label_34: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -3722,8 +3600,8 @@ final public Expr AdditiveExpression() throws ParseException { ; break; default: - jj_la1[135] = jj_gen; - break label_36; + jj_la1[131] = jj_gen; + break label_34; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -3737,7 +3615,7 @@ final public Expr AdditiveExpression() throws ParseException { expr2 = new E_Divide(expr2, expr3) ; break; default: - jj_la1[136] = jj_gen; + jj_la1[132] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3748,7 +3626,7 @@ final public Expr AdditiveExpression() throws ParseException { expr1 = new E_Subtract(expr1, expr2) ; break; default: - jj_la1[137] = jj_gen; + jj_la1[133] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3760,7 +3638,7 @@ final public Expr AdditiveExpression() throws ParseException { final public Expr MultiplicativeExpression() throws ParseException { Expr expr1, expr2 ; expr1 = UnaryExpression(); - label_37: + label_35: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -3768,8 +3646,8 @@ final public Expr MultiplicativeExpression() throws ParseException { ; break; default: - jj_la1[138] = jj_gen; - break label_37; + jj_la1[134] = jj_gen; + break label_35; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: @@ -3783,7 +3661,7 @@ final public Expr MultiplicativeExpression() throws ParseException { expr1 = new E_Divide(expr1, expr2) ; break; default: - jj_la1[139] = jj_gen; + jj_la1[135] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3896,7 +3774,7 @@ final public Expr UnaryExpression() throws ParseException { {if (true) return expr ;} break; default: - jj_la1[140] = jj_gen; + jj_la1[136] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4010,7 +3888,7 @@ final public Expr PrimaryExpression() throws ParseException { {if (true) return asExpr(gn) ;} break; default: - jj_la1[141] = jj_gen; + jj_la1[137] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4105,7 +3983,7 @@ final public Expr BuiltInCall() throws ParseException { {if (true) return new E_BNode() ;} break; default: - jj_la1[142] = jj_gen; + jj_la1[138] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4426,7 +4304,7 @@ final public Expr BuiltInCall() throws ParseException { {if (true) return expr ;} break; default: - jj_la1[143] = jj_gen; + jj_la1[139] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4446,7 +4324,7 @@ final public Expr RegexExpression() throws ParseException { flagsExpr = Expression(); break; default: - jj_la1[144] = jj_gen; + jj_la1[140] = jj_gen; ; } jj_consume_token(RPAREN); @@ -4467,7 +4345,7 @@ final public Expr SubstringExpression() throws ParseException { expr3 = Expression(); break; default: - jj_la1[145] = jj_gen; + jj_la1[141] = jj_gen; ; } jj_consume_token(RPAREN); @@ -4490,7 +4368,7 @@ final public Expr StrReplaceExpression() throws ParseException { expr4 = Expression(); break; default: - jj_la1[146] = jj_gen; + jj_la1[142] = jj_gen; ; } jj_consume_token(RPAREN); @@ -4531,7 +4409,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[147] = jj_gen; + jj_la1[143] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -4626,7 +4504,7 @@ final public Expr Aggregate() throws ParseException { expr = Expression(); break; default: - jj_la1[148] = jj_gen; + jj_la1[144] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4643,7 +4521,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[149] = jj_gen; + jj_la1[145] = jj_gen; ; } expr = Expression(); @@ -4659,7 +4537,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[150] = jj_gen; + jj_la1[146] = jj_gen; ; } expr = Expression(); @@ -4675,7 +4553,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[151] = jj_gen; + jj_la1[147] = jj_gen; ; } expr = Expression(); @@ -4691,7 +4569,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[152] = jj_gen; + jj_la1[148] = jj_gen; ; } expr = Expression(); @@ -4707,7 +4585,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[153] = jj_gen; + jj_la1[149] = jj_gen; ; } expr = Expression(); @@ -4723,7 +4601,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[154] = jj_gen; + jj_la1[150] = jj_gen; ; } expr = Expression(); @@ -4735,14 +4613,14 @@ final public Expr Aggregate() throws ParseException { sep = String(); break; default: - jj_la1[155] = jj_gen; + jj_la1[151] = jj_gen; ; } jj_consume_token(RPAREN); agg = AggregatorFactory.createGroupConcat(distinct, expr, sep, ordered) ; break; default: - jj_la1[156] = jj_gen; + jj_la1[152] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4763,7 +4641,7 @@ final public Expr iriOrFunction() throws ParseException { a = ArgList(); break; default: - jj_la1[157] = jj_gen; + jj_la1[153] = jj_gen; ; } if ( a == null ) @@ -4796,13 +4674,13 @@ final public Node RDFLiteral() throws ParseException { uri = iri(); break; default: - jj_la1[158] = jj_gen; + jj_la1[154] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[159] = jj_gen; + jj_la1[155] = jj_gen; ; } {if (true) return createLiteral(lex, lang, uri) ;} @@ -4828,7 +4706,7 @@ final public Node NumericLiteral() throws ParseException { n = NumericLiteralNegative(); break; default: - jj_la1[160] = jj_gen; + jj_la1[156] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4852,7 +4730,7 @@ final public Node NumericLiteralUnsigned() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[161] = jj_gen; + jj_la1[157] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4875,7 +4753,7 @@ final public Node NumericLiteralPositive() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[162] = jj_gen; + jj_la1[158] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4898,7 +4776,7 @@ final public Node NumericLiteralNegative() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[163] = jj_gen; + jj_la1[159] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4916,7 +4794,7 @@ final public Node BooleanLiteral() throws ParseException { {if (true) return XSD_FALSE ;} break; default: - jj_la1[164] = jj_gen; + jj_la1[160] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4943,7 +4821,7 @@ final public String String() throws ParseException { lex = stripQuotes3(t.image) ; break; default: - jj_la1[165] = jj_gen; + jj_la1[161] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4952,26 +4830,6 @@ final public String String() throws ParseException { throw new Error("Missing return statement in function"); } - final public Number Number() throws ParseException { - Token t ; Number number ; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case INTEGER: - t = jj_consume_token(INTEGER); - number = integerValue(t.image) ; - break; - case DECIMAL: - t = jj_consume_token(DECIMAL); - number = doubleValue(t.image) ; - break; - default: - jj_la1[166] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return number ;} - throw new Error("Missing return statement in function"); - } - final public String iri() throws ParseException { String iri ; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -4985,7 +4843,7 @@ final public String iri() throws ParseException { {if (true) return iri ;} break; default: - jj_la1[167] = jj_gen; + jj_la1[162] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5004,7 +4862,7 @@ final public String PrefixedName() throws ParseException { {if (true) return resolvePName(t.image, t.beginLine, t.beginColumn) ;} break; default: - jj_la1[168] = jj_gen; + jj_la1[163] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5023,7 +4881,7 @@ final public Node BlankNode() throws ParseException { {if (true) return createBNode(t.beginLine, t.beginColumn) ;} break; default: - jj_la1[169] = jj_gen; + jj_la1[164] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5046,7 +4904,7 @@ final public String IRIREF() throws ParseException { public Token jj_nt; private int jj_ntk; private int jj_gen; - final private int[] jj_la1 = new int[170]; + final private int[] jj_la1 = new int[165]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -5064,25 +4922,25 @@ final public String IRIREF() throws ParseException { jj_la1_init_6(); } private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0x1e400000,0x200,0x300000,0x300000,0x0,0x1800000,0x1800000,0xc000,0xc000,0xc000,0x0,0x0,0xfc00,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0xc000,0x0,0xc000,0x1c00,0x0,0x0,0x0,0x80000000,0x60000000,0xdc00,0x0,0xdc00,0x1c00,0xdc00,0x0,0xdc00,0xdc00,0x40000000,0x20000000,0x60000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0xfc00,0x0,0x0,0xfc00,0xfc00,0xfc00,0x0,0x400000,0xfc00,0x0,0x0,0xfc00,0xfc00,0x0,0x0,0x0,0xc000,0x1c00,0xc000,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0x1c00,0x800000,0x0,0x0,0x0,0x0,0xfc00,0xfc00,0x0,0xfc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0xfc00,0x8dc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0x0,0x0,0x0,0x81c00,0x0,0x81c00,0x0,0x81c00,0x81c00,0x81c00,0x81c00,0x0,0x0,0xfc00,0xfc00,0xfc00,0xfc00,0xfc00,0xdc00,0xfc00,0xc000,0x3c00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0x0,0x800000,0xdc00,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x0,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x1800,0x2000,}; + jj_la1_0 = new int[] {0xe400000,0x200,0x300000,0x300000,0x0,0x1800000,0x1800000,0xc000,0xc000,0xc000,0x0,0x0,0xfc00,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x1c00,0x0,0x0,0x0,0x40000000,0x30000000,0xdc00,0x0,0xdc00,0x1c00,0xdc00,0x0,0xdc00,0xdc00,0x20000000,0x10000000,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0xfc00,0x0,0x0,0xfc00,0xfc00,0xfc00,0x0,0x400000,0xfc00,0x0,0x0,0xfc00,0xfc00,0x0,0x0,0x0,0xc000,0x1c00,0xc000,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0x1c00,0x800000,0x0,0x0,0x0,0x0,0xfc00,0xfc00,0x0,0xfc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0xfc00,0x8dc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0x0,0x0,0x0,0x81c00,0x0,0x81c00,0x0,0x81c00,0x81c00,0x81c00,0x81c00,0x0,0x0,0xfc00,0xfc00,0xfc00,0xfc00,0xfc00,0xdc00,0xfc00,0xc000,0x3c00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0x0,0x800000,0xdc00,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x0,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x1800,0x2000,}; } private static void jj_la1_init_1() { - jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x40,0x40,0x0,0xc0,0x0,0x0,0x40,0x80,0x40,0x40,0x0,0x0,0x0,0x20,0x80,0x40000,0x80000,0x0,0x0,0x7c18000,0x20000,0x7c18000,0x7c18000,0x7c18018,0x18,0x7c18000,0x7c18018,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x200,0x200,0x220,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7602,0x0,0x0,0x0,0x0,0x7602,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x4,0x800,0x7c18000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7c18000,0x7c18000,0x0,0x7c18000,0x0,0x0,0x0,0x0,0x7c18000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7c00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x20,0x20,0x0,0x60,0x0,0x0,0x20,0x40,0x20,0x10,0x40,0x20000,0x40000,0x0,0x0,0x3e0c000,0x10000,0x3e0c000,0x3e0c000,0x3e0c00c,0xc,0x3e0c000,0x3e0c00c,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x100,0x100,0x110,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3b01,0x0,0x0,0x0,0x0,0x3b01,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x2,0x400,0x3e0c000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3e0c000,0x3e0c000,0x0,0x3e0c000,0x0,0x0,0x0,0x0,0x3e0c000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3e00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_2() { - jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffb6,0x0,0xffffffb6,0xffffffb6,0xffffffb6,0x0,0xffffffb6,0xffffffb6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffb6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffb6,0xffffffb6,0x0,0xffffffb6,0x0,0x0,0x0,0x0,0xffffffb6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffdb,0x0,0xffffffdb,0xffffffdb,0xffffffdb,0x0,0xffffffdb,0xffffffdb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffdb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffdb,0xffffffdb,0x0,0xffffffdb,0x0,0x0,0x0,0x0,0xffffffdb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_3() { - jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3bfffff,0x0,0x3bfffff,0x3bfffff,0x3bfffff,0x0,0x3bfffff,0x3bfffff,0x0,0x0,0x0,0x0,0x0,0xe0000000,0xe0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x60000000,0x0,0x0,0x0,0x0,0x0,0xc000000,0x0,0x0,0xc000000,0xc000000,0xc000000,0x0,0x0,0xc000000,0x0,0x0,0xc000000,0xc000000,0x0,0x0,0x0,0x0,0xc000000,0x0,0x0,0x0,0xc000000,0x0,0xc000000,0x0,0x3bfffff,0x0,0x0,0x0,0x0,0x0,0xc000000,0xc000000,0x0,0xc000000,0x0,0x0,0x0,0x0,0x0,0xc000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000000,0xc000000,0xc000000,0xc000000,0xc000000,0x0,0x0,0x0,0xc000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfbfffff,0xfbfffff,0x0,0x3bfffff,0x0,0x0,0x0,0x0,0xfbfffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000000,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1dfffff,0x0,0x1dfffff,0x1dfffff,0x1dfffff,0x0,0x1dfffff,0x1dfffff,0x0,0x0,0x0,0x0,0x0,0xf0000000,0xf0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x30000000,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x0,0x6000000,0x6000000,0x6000000,0x0,0x0,0x6000000,0x0,0x0,0x6000000,0x6000000,0x0,0x0,0x0,0x0,0x6000000,0x0,0x0,0x0,0x6000000,0x0,0x6000000,0x0,0x1dfffff,0x0,0x0,0x0,0x0,0x0,0x6000000,0x6000000,0x0,0x6000000,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x6000000,0x6000000,0x6000000,0x6000000,0x0,0x0,0x0,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7dfffff,0x7dfffff,0x0,0x1dfffff,0x0,0x0,0x0,0x0,0x7dfffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_4() { - jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800c0000,0x0,0x800c0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x84ff,0x84ff,0x200,0x800,0x200,0x200,0x200,0x200,0x200,0x200,0x8000,0x0,0x0,0x10000,0x0,0x0,0x2000,0x6000,0x87fc0000,0x0,0x0,0x87fc0000,0x87fc0000,0x87fc0000,0x0,0x0,0x87fc0000,0x0,0x0,0x87fc0000,0x87fc0000,0x0,0x0,0x200,0x0,0x87fc0000,0x0,0x0,0x0,0x87fc0000,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x87fc0000,0x87fc0000,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x87fc0000,0x87fc0000,0x87fc0000,0x87fc0000,0x87fc0000,0x0,0x0,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x7e00000,0x7e00000,0x0,0x0,0x7e00000,0x0,0x0,0x87fc0000,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x87fc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7fc0000,0x1c0000,0xe00000,0x7000000,0x0,0x80000000,0xc0000,0x0,0x0,0x0,}; + jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x427f,0x427f,0x100,0x400,0x100,0x100,0x100,0x100,0x100,0x100,0x4000,0x0,0x0,0x8000,0x0,0x0,0x1000,0x3000,0xc3fe0000,0x0,0x0,0xc3fe0000,0xc3fe0000,0xc3fe0000,0x0,0x0,0xc3fe0000,0x0,0x0,0xc3fe0000,0xc3fe0000,0x0,0x0,0x100,0x0,0xc3fe0000,0x0,0x0,0x0,0xc3fe0000,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc3fe0000,0xc3fe0000,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc3fe0000,0xc3fe0000,0xc3fe0000,0xc3fe0000,0xc3fe0000,0x0,0x0,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x3f00000,0x3f00000,0x0,0x0,0x3f00000,0x0,0x0,0xc3fe0000,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0x0,0xc3fe0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3fe0000,0xe0000,0x700000,0x3800000,0x0,0xc0000000,0x0,0x0,0x0,}; } private static void jj_la1_init_5() { - jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x8,0x8000008,0x0,0x0,0x52f,0x40,0x0,0x8000000,0x0,0x40,0x0,0x0,0x7,0x1000,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x8,0x8,0x0,0x8,0x8,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x52f,0x0,0x2000,0x52f,0x52f,0x52f,0x2000,0x0,0x52f,0x40,0x2000,0x52f,0x52f,0x2000,0x40,0x0,0x28,0x7,0x0,0x28,0x28,0x7,0x28,0x7,0x0,0x8,0x0,0x1000,0x28,0x1000,0x28,0x52f,0x52f,0x2000,0x52f,0x0,0x800,0x0,0x0,0x1000,0x52f,0x100008,0x100008,0x800,0x100008,0x100008,0x1000,0x80000000,0x10000000,0xa000000,0x100008,0xa000000,0x100008,0x80000000,0x0,0x8,0x0,0x0,0x108,0x108,0x52f,0x52f,0x52f,0x52f,0x427,0x0,0x400,0x0,0x427,0x800000,0x1000000,0xfc000,0xfc000,0x6000000,0x0,0x18000000,0x18000000,0x6000000,0x18000000,0x18000000,0x610000f,0xf,0x28,0x0,0x1000,0x1000,0x1000,0x0,0xe10000f,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x28,0x20000000,0x20000000,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x400,}; + jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x4,0x4000004,0x0,0x0,0x297,0x20,0x0,0x4000000,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x4,0x4,0x4,0x0,0x4,0x4,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x297,0x0,0x1000,0x297,0x297,0x297,0x1000,0x0,0x297,0x20,0x1000,0x297,0x297,0x1000,0x20,0x0,0x14,0x3,0x0,0x14,0x14,0x3,0x14,0x3,0x0,0x4,0x0,0x800,0x14,0x800,0x14,0x297,0x297,0x1000,0x297,0x0,0x400,0x0,0x0,0x800,0x297,0x80080004,0x80080004,0x400,0x80080004,0x80080004,0x800,0x40000000,0x8000000,0x5000000,0x80080004,0x5000000,0x80004,0x40000000,0x80000000,0x80000004,0x0,0x80000000,0x84,0x84,0x297,0x297,0x297,0x297,0x213,0x0,0x200,0x0,0x213,0x400000,0x800000,0x7e000,0x7e000,0x3000000,0x0,0xc000000,0xc000000,0x3000000,0xc000000,0xc000000,0x3080007,0x7,0x14,0x0,0x800,0x800,0x800,0x0,0x7080007,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x14,0x10000000,0x10000000,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x200,}; } private static void jj_la1_init_6() { - jj_la1_6 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x1,0x1,0x0,0x0,0x0,0x8,0x1,0x8,0x0,0x0,0x1,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_6 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } /** Constructor with InputStream. */ @@ -5096,7 +4954,7 @@ public SPARQLParser11(java.io.InputStream stream, String encoding) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 170; i++) jj_la1[i] = -1; + for (int i = 0; i < 165; i++) jj_la1[i] = -1; } /** Reinitialise. */ @@ -5110,7 +4968,7 @@ public void ReInit(java.io.InputStream stream, String encoding) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 170; i++) jj_la1[i] = -1; + for (int i = 0; i < 165; i++) jj_la1[i] = -1; } /** Constructor. */ @@ -5120,7 +4978,7 @@ public SPARQLParser11(java.io.Reader stream) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 170; i++) jj_la1[i] = -1; + for (int i = 0; i < 165; i++) jj_la1[i] = -1; } /** Reinitialise. */ @@ -5130,7 +4988,7 @@ public void ReInit(java.io.Reader stream) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 170; i++) jj_la1[i] = -1; + for (int i = 0; i < 165; i++) jj_la1[i] = -1; } /** Constructor with generated Token Manager. */ @@ -5139,7 +4997,7 @@ public SPARQLParser11(SPARQLParser11TokenManager tm) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 170; i++) jj_la1[i] = -1; + for (int i = 0; i < 165; i++) jj_la1[i] = -1; } /** Reinitialise. */ @@ -5148,7 +5006,7 @@ public void ReInit(SPARQLParser11TokenManager tm) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 170; i++) jj_la1[i] = -1; + for (int i = 0; i < 165; i++) jj_la1[i] = -1; } private Token jj_consume_token(int kind) throws ParseException { @@ -5199,12 +5057,12 @@ private int jj_ntk() { /** Generate ParseException. */ public ParseException generateParseException() { jj_expentries.clear(); - boolean[] la1tokens = new boolean[207]; + boolean[] la1tokens = new boolean[206]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 170; i++) { + for (int i = 0; i < 165; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1< 146) - kind = 146; + if (kind > 145) + kind = 145; jjCheckNAddStates(0, 6); } else if (curChar == 45) @@ -2475,8 +2461,8 @@ else if (curChar == 39) jjstateSet[jjnewStateCnt++] = 32; break; case 40: - if ((0x8400000000L & l) != 0L && kind > 158) - kind = 158; + if ((0x8400000000L & l) != 0L && kind > 157) + kind = 157; break; case 41: if (curChar == 39) @@ -2491,8 +2477,8 @@ else if (curChar == 39) jjCheckNAddStates(29, 31); break; case 45: - if (curChar == 39 && kind > 159) - kind = 159; + if (curChar == 39 && kind > 158) + kind = 158; break; case 46: if (curChar == 34) @@ -2507,8 +2493,8 @@ else if (curChar == 39) jjCheckNAddStates(26, 28); break; case 50: - if (curChar == 34 && kind > 160) - kind = 160; + if (curChar == 34 && kind > 159) + kind = 159; break; case 51: if (curChar == 39) @@ -2532,8 +2518,8 @@ else if (curChar == 39) jjAddStates(45, 46); break; case 58: - if (curChar == 39 && kind > 161) - kind = 161; + if (curChar == 39 && kind > 160) + kind = 160; break; case 59: if (curChar == 39) @@ -2569,8 +2555,8 @@ else if (curChar == 39) jjAddStates(51, 52); break; case 69: - if (curChar == 34 && kind > 162) - kind = 162; + if (curChar == 34 && kind > 161) + kind = 161; break; case 70: if (curChar == 34) @@ -2605,8 +2591,8 @@ else if (curChar == 39) jjCheckNAddStates(20, 22); break; case 78: - if (curChar == 41 && kind > 165) - kind = 165; + if (curChar == 41 && kind > 164) + kind = 164; break; case 79: if (curChar == 10) @@ -2787,15 +2773,15 @@ else if (curChar == 39) case 145: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 146) - kind = 146; + if (kind > 145) + kind = 145; jjCheckNAddStates(0, 6); break; case 146: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 146) - kind = 146; + if (kind > 145) + kind = 145; jjCheckNAdd(146); break; case 147: @@ -2809,8 +2795,8 @@ else if (curChar == 39) case 149: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 147) - kind = 147; + if (kind > 146) + kind = 146; jjCheckNAdd(149); break; case 150: @@ -2832,8 +2818,8 @@ else if (curChar == 39) case 155: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 148) - kind = 148; + if (kind > 147) + kind = 147; jjCheckNAdd(155); break; case 156: @@ -2847,8 +2833,8 @@ else if (curChar == 39) case 159: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 148) - kind = 148; + if (kind > 147) + kind = 147; jjCheckNAdd(159); break; case 160: @@ -2866,8 +2852,8 @@ else if (curChar == 39) case 164: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 148) - kind = 148; + if (kind > 147) + kind = 147; jjCheckNAdd(164); break; case 165: @@ -2877,8 +2863,8 @@ else if (curChar == 39) case 166: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 149) - kind = 149; + if (kind > 148) + kind = 148; jjCheckNAdd(166); break; case 167: @@ -2892,8 +2878,8 @@ else if (curChar == 39) case 169: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 150) - kind = 150; + if (kind > 149) + kind = 149; jjCheckNAdd(169); break; case 170: @@ -2911,8 +2897,8 @@ else if (curChar == 39) case 174: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 151) - kind = 151; + if (kind > 150) + kind = 150; jjCheckNAdd(174); break; case 175: @@ -2938,8 +2924,8 @@ else if (curChar == 39) case 181: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 151) - kind = 151; + if (kind > 150) + kind = 150; jjCheckNAdd(181); break; case 182: @@ -2953,8 +2939,8 @@ else if (curChar == 39) case 185: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 151) - kind = 151; + if (kind > 150) + kind = 150; jjCheckNAdd(185); break; case 186: @@ -2964,8 +2950,8 @@ else if (curChar == 39) case 187: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 152) - kind = 152; + if (kind > 151) + kind = 151; jjCheckNAdd(187); break; case 188: @@ -2979,8 +2965,8 @@ else if (curChar == 39) case 190: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 153) - kind = 153; + if (kind > 152) + kind = 152; jjCheckNAdd(190); break; case 191: @@ -2998,8 +2984,8 @@ else if (curChar == 39) case 195: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 154) - kind = 154; + if (kind > 153) + kind = 153; jjCheckNAdd(195); break; case 196: @@ -3025,8 +3011,8 @@ else if (curChar == 39) case 202: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 154) - kind = 154; + if (kind > 153) + kind = 153; jjCheckNAdd(202); break; case 203: @@ -3040,8 +3026,8 @@ else if (curChar == 39) case 206: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 154) - kind = 154; + if (kind > 153) + kind = 153; jjCheckNAdd(206); break; default : break; @@ -3141,8 +3127,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(32, 37); break; case 28: - if ((0x200000002L & l) != 0L && kind > 127) - kind = 127; + if ((0x200000002L & l) != 0L && kind > 126) + kind = 126; break; case 29: if ((0x10000000100000L & l) != 0L) @@ -3181,8 +3167,8 @@ else if ((0x20000000200L & l) != 0L) jjstateSet[jjnewStateCnt++] = 40; break; case 40: - if ((0x14404410000000L & l) != 0L && kind > 158) - kind = 158; + if ((0x14404410000000L & l) != 0L && kind > 157) + kind = 157; break; case 42: if ((0xffffffffefffffffL & l) != 0L) @@ -3243,8 +3229,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(59, 64); break; case 86: - if (curChar == 93 && kind > 170) - kind = 170; + if (curChar == 93 && kind > 169) + kind = 169; break; case 89: if ((0x7fffffe07fffffeL & l) != 0L) @@ -3343,8 +3329,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(78, 83); break; case 119: - if ((0x200000002L & l) != 0L && kind > 128) - kind = 128; + if ((0x200000002L & l) != 0L && kind > 127) + kind = 127; break; case 120: if ((0x10000000100000L & l) != 0L) @@ -3382,8 +3368,8 @@ else if ((0x20000000200L & l) != 0L) jjCheckNAddStates(87, 92); break; case 134: - if ((0x2000000020L & l) != 0L && kind > 129) - kind = 129; + if ((0x2000000020L & l) != 0L && kind > 128) + kind = 128; break; case 135: if ((0x4000000040000L & l) != 0L) @@ -3714,18 +3700,18 @@ private static final boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, lo null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, -null, null, null, null, null, null, null, null, null, null, "\50", "\51", null, -"\173", "\175", "\133", "\135", null, "\73", "\54", "\56", "\75", "\41\75", "\76", -"\74", "\74\75", "\76\75", "\41", "\176", "\72", "\174\174", "\46\46", "\53", "\55", -"\52", "\57", "\136\136", "\100", "\174", "\136", "\55\76", "\74\55", "\77", null, -null, null, null, null, null, null, null, null, null, null, }; +null, null, null, null, null, null, null, null, null, "\50", "\51", null, "\173", +"\175", "\133", "\135", null, "\73", "\54", "\56", "\75", "\41\75", "\76", "\74", +"\74\75", "\76\75", "\41", "\176", "\72", "\174\174", "\46\46", "\53", "\55", "\52", +"\57", "\136\136", "\100", "\174", "\136", "\55\76", "\74\55", "\77", null, null, +null, null, null, null, null, null, null, null, null, }; /** Lexer state names. */ public static final String[] lexStateNames = { "DEFAULT", }; static final long[] jjtoToken = { - 0xfffffffffff9fe01L, 0xffffffffffffffffL, 0xffffffffc7fdffffL, 0xfL, + 0xfffffffffff9fe01L, 0xffffffffffffffffL, 0xffffffffe3feffffL, 0x7L, }; static final long[] jjtoSkip = { 0x7eL, 0x0L, 0x0L, 0x0L, From ae20840b610995f739b767ce4997a5f7d2c7af22 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sat, 1 Apr 2017 00:16:45 +1300 Subject: [PATCH 03/18] Avoid inefficiently retrieving keys first, to then retrieve values from a map --- .../apache/jena/query/ResultSetFormatter.java | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java index fbcb658aa80..0c6a41b7310 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java +++ b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java @@ -30,6 +30,7 @@ import java.util.ArrayList ; import java.util.Iterator ; import java.util.List ; +import java.util.Map.Entry; import org.apache.jena.atlas.json.JsonObject; import org.apache.jena.atlas.json.JsonValue; @@ -526,26 +527,26 @@ static public void outputAsJSON(OutputStream outStream, boolean booleanResult) * @param outStream output stream * @param jsonItems The JSON values */ - public static void outputAsJSON(OutputStream outStream, Iterator jsonItems) - { - JSWriter jWriter = new JSWriter(outStream) ; - jWriter.startArray() ; - jWriter.startOutput() ; - while (jsonItems.hasNext()) - { - jWriter.startObject() ; - JsonObject jsonItem = jsonItems.next() ; - for (String key: jsonItem.keys()) - { - JsonValue value = jsonItem.get(key) ; - String val = value.getAsString().value() ; - jWriter.pair(key, val) ; - } - jWriter.finishObject() ; - } - jWriter.finishArray() ; - jWriter.finishOutput() ; - } + public static void outputAsJSON(OutputStream outStream, Iterator jsonItems) + { + JSWriter jWriter = new JSWriter(outStream) ; + jWriter.startArray() ; + jWriter.startOutput() ; + while (jsonItems.hasNext()) + { + jWriter.startObject() ; + JsonObject jsonItem = jsonItems.next() ; + for (Entry entries: jsonItem.entrySet()) + { + JsonValue value = entries.getValue() ; + String val = value.getAsString().value() ; + jWriter.pair(entries.getKey(), val) ; + } + jWriter.finishObject() ; + } + jWriter.finishArray() ; + jWriter.finishOutput() ; + } // ---- SSE From bd565b151478ff899414d7fae242d63922541a8f Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sat, 1 Apr 2017 00:40:18 +1300 Subject: [PATCH 04/18] Fix variable name --- .../src/main/java/org/apache/jena/query/ResultSetFormatter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java index 0c6a41b7310..3c5f26712d0 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java +++ b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java @@ -536,7 +536,7 @@ public static void outputAsJSON(OutputStream outStream, Iterator jso { jWriter.startObject() ; JsonObject jsonItem = jsonItems.next() ; - for (Entry entries: jsonItem.entrySet()) + for (Entry entry: jsonItem.entrySet()) { JsonValue value = entries.getValue() ; String val = value.getAsString().value() ; From bfb002dad4e1cc7d583c18865cb087ed1b4f0422 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sat, 1 Apr 2017 00:40:42 +1300 Subject: [PATCH 05/18] Fix variable name --- .../main/java/org/apache/jena/query/ResultSetFormatter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java index 3c5f26712d0..47b68ff63d5 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java +++ b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java @@ -538,9 +538,9 @@ public static void outputAsJSON(OutputStream outStream, Iterator jso JsonObject jsonItem = jsonItems.next() ; for (Entry entry: jsonItem.entrySet()) { - JsonValue value = entries.getValue() ; + JsonValue value = entry.getValue() ; String val = value.getAsString().value() ; - jWriter.pair(entries.getKey(), val) ; + jWriter.pair(entry.getKey(), val) ; } jWriter.finishObject() ; } From 6530a152fa74a75cab6626210a092b37c41ff9cc Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sat, 1 Apr 2017 01:02:00 +1300 Subject: [PATCH 06/18] Use PNAME_NS but verify if what we have is a COLON --- jena-arq/Grammar/arq.jj | 14 +++++++++++--- jena-arq/Grammar/master.jj | 15 ++++++++++++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/jena-arq/Grammar/arq.jj b/jena-arq/Grammar/arq.jj index 636bc7bc3f5..ffd881f8b92 100644 --- a/jena-arq/Grammar/arq.jj +++ b/jena-arq/Grammar/arq.jj @@ -217,18 +217,26 @@ void JsonQuery() : {} WhereClause() SolutionModifier() } -void JsonClause() : { Object o ; String s ; } +void JsonClause() : { Object o ; String s ; Token t; } { { getQuery().setQueryJsonType() ; } - s = String() < PNAME_NS > + s = String() + t = < PNAME_NS > { + if ( ! t.image.equals(":") ) + throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; + } ( o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } | o = String() { getQuery().addJsonMapping(s, o) ; } | o = Number() { getQuery().addJsonMapping(s, o) ; } ) ( - s = String() < PNAME_NS > + s = String() + t = < PNAME_NS > { + if ( ! t.image.equals(":") ) + throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; + } ( o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } | o = String() { getQuery().addJsonMapping(s, o) ; } diff --git a/jena-arq/Grammar/master.jj b/jena-arq/Grammar/master.jj index a932a055ee0..05c65e5b0c7 100644 --- a/jena-arq/Grammar/master.jj +++ b/jena-arq/Grammar/master.jj @@ -370,18 +370,27 @@ void JsonQuery() : {} SolutionModifier() } -void JsonClause() : { Object o ; String s ; } +void JsonClause() : { Object o ; String s ; Token t; } { { getQuery().setQueryJsonType() ; } - s = String() < PNAME_NS > + s = String() + // PNAME_NS would eval true before COLON (default namescape) so we make sure we got what we were expecting + t = < PNAME_NS > { + if ( ! t.image.equals(":") ) + throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; + } ( o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } | o = String() { getQuery().addJsonMapping(s, o) ; } | o = Number() { getQuery().addJsonMapping(s, o) ; } ) ( - s = String() < PNAME_NS > + s = String() + t = < PNAME_NS > { + if ( ! t.image.equals(":") ) + throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; + } ( o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } | o = String() { getQuery().addJsonMapping(s, o) ; } From 2c7e89dd6bd4ad237dbea6215a0d1549b34316ba Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sat, 1 Apr 2017 01:20:18 +1300 Subject: [PATCH 07/18] Use PNAME_NS but verify if what we have is a COLON --- .../jena/sparql/lang/arq/ARQParser.java | 56 ++++++++++--------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java index 91ae1b613d3..24cf2cb6e7c 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java @@ -714,12 +714,14 @@ final public void JsonQuery() throws ParseException { } final public void JsonClause() throws ParseException { - Object o ; String s ; + Object o ; String s ; Token t; jj_consume_token(JSON); getQuery().setQueryJsonType() ; jj_consume_token(LBRACE); s = String(); - jj_consume_token(PNAME_NS); + t = jj_consume_token(PNAME_NS); + if ( ! t.image.equals(":") ) + throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VAR1: case VAR2: @@ -755,7 +757,9 @@ final public void JsonClause() throws ParseException { } jj_consume_token(COMMA); s = String(); - jj_consume_token(PNAME_NS); + t = jj_consume_token(PNAME_NS); + if ( ! t.image.equals(":") ) + throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case VAR1: case VAR2: @@ -5850,12 +5854,6 @@ private boolean jj_2_5(int xla) { finally { jj_save(4, xla); } } - private boolean jj_3_5() { - if (jj_scan_token(SEMICOLON)) return true; - if (jj_scan_token(SEPARATOR)) return true; - return false; - } - private boolean jj_3R_145() { if (jj_scan_token(LPAREN)) return true; return false; @@ -6576,11 +6574,6 @@ private boolean jj_3R_105() { return false; } - private boolean jj_3R_116() { - if (jj_3R_136()) return true; - return false; - } - private boolean jj_3R_104() { if (jj_3R_117()) return true; return false; @@ -6612,13 +6605,6 @@ private boolean jj_3R_160() { return false; } - private boolean jj_3R_136() { - if (jj_scan_token(PREFIX)) return true; - if (jj_scan_token(PNAME_NS)) return true; - if (jj_3R_142()) return true; - return false; - } - private boolean jj_3R_155() { Token xsp; xsp = jj_scanpos; @@ -6629,14 +6615,13 @@ private boolean jj_3R_155() { return false; } - private boolean jj_3R_148() { - if (jj_3R_155()) return true; + private boolean jj_3R_116() { + if (jj_3R_136()) return true; return false; } - private boolean jj_3R_135() { - if (jj_scan_token(BASE)) return true; - if (jj_3R_142()) return true; + private boolean jj_3R_148() { + if (jj_3R_155()) return true; return false; } @@ -6655,6 +6640,19 @@ private boolean jj_3R_147() { return false; } + private boolean jj_3R_136() { + if (jj_scan_token(PREFIX)) return true; + if (jj_scan_token(PNAME_NS)) return true; + if (jj_3R_142()) return true; + return false; + } + + private boolean jj_3R_135() { + if (jj_scan_token(BASE)) return true; + if (jj_3R_142()) return true; + return false; + } + private boolean jj_3R_103() { Token xsp; xsp = jj_scanpos; @@ -7039,6 +7037,12 @@ private boolean jj_3R_126() { return false; } + private boolean jj_3_5() { + if (jj_scan_token(SEMICOLON)) return true; + if (jj_scan_token(SEPARATOR)) return true; + return false; + } + /** Generated Token Manager. */ public ARQParserTokenManager token_source; JavaCharStream jj_input_stream; From 896c371c6b818259b483edf46b674aa401ae5bc2 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sat, 10 Mar 2018 20:43:51 +1300 Subject: [PATCH 08/18] Update tokens.txt with JSON entry --- jena-arq/Grammar/tokens.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/jena-arq/Grammar/tokens.txt b/jena-arq/Grammar/tokens.txt index a95d6a527b3..a5ac75e74b2 100644 --- a/jena-arq/Grammar/tokens.txt +++ b/jena-arq/Grammar/tokens.txt @@ -48,6 +48,7 @@ [] ::= 'CONSTRUCT' //[] ::= 'CONSTRUCT WHERE' [] ::= 'ASK' +[] ::= 'JSON' [] ::= 'DISTINCT' [] ::= 'REDUCED' [] ::= 'WHERE' From 334e6c6e6f927242e11ea40e9bcf3b0854b3b0d4 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sat, 17 Mar 2018 00:18:46 +1300 Subject: [PATCH 09/18] JENA-632: use new RDFTerm2Json, and add unit tests --- .../java/org/apache/jena/query/Query.java | 2 + .../org/apache/jena/query/QueryVisitor.java | 3 +- .../apache/jena/query/ResultSetFormatter.java | 11 ++- .../apache/jena/sparql/core/QueryCompare.java | 5 ++ .../jena/sparql/core/QueryHashCode.java | 4 + .../jena/sparql/engine/JsonIterator.java | 12 +-- .../sparql/engine/QueryExecutionBase.java | 7 +- .../apache/jena/sparql/lib/RDFTerm2Json.java | 2 +- .../jena/sparql/resultset/SPARQLResult.java | 17 ---- .../sparql/serializer/QuerySerializer.java | 16 +++- .../syntaxtransform/QueryTransformOps.java | 5 ++ .../jena/query/TS_ResultSetFormatter.java | 30 +++++++ .../jena/query/TestResultSetFormatter.java | 81 +++++++++++++++++ .../org/apache/jena/sparql/api/TestAPI.java | 87 ++++++++++++++++++- .../apache/jena/sparql/engine/TS_Engine.java | 1 + .../jena/sparql/engine/TestJsonIterator.java | 86 ++++++++++++++++++ .../org/apache/jena/fuseki/TestQuery.java | 44 ++++++++++ 17 files changed, 377 insertions(+), 36 deletions(-) create mode 100644 jena-arq/src/test/java/org/apache/jena/query/TS_ResultSetFormatter.java create mode 100644 jena-arq/src/test/java/org/apache/jena/query/TestResultSetFormatter.java create mode 100644 jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonIterator.java diff --git a/jena-arq/src/main/java/org/apache/jena/query/Query.java b/jena-arq/src/main/java/org/apache/jena/query/Query.java index bf00616861d..8e0e98455c2 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/Query.java +++ b/jena-arq/src/main/java/org/apache/jena/query/Query.java @@ -719,6 +719,8 @@ public void visit(QueryVisitor visitor) visitor.visitDescribeResultForm(this) ; if ( this.isAskType() ) visitor.visitAskResultForm(this) ; + if ( this.isJsonType() ) + visitor.visitJsonResultForm(this) ; visitor.visitDatasetDecl(this) ; visitor.visitQueryPattern(this) ; visitor.visitGroupBy(this) ; diff --git a/jena-arq/src/main/java/org/apache/jena/query/QueryVisitor.java b/jena-arq/src/main/java/org/apache/jena/query/QueryVisitor.java index 73687013745..3d0afac43c5 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/QueryVisitor.java +++ b/jena-arq/src/main/java/org/apache/jena/query/QueryVisitor.java @@ -32,7 +32,8 @@ public interface QueryVisitor public void visitConstructResultForm(Query query) ; public void visitDescribeResultForm(Query query) ; public void visitAskResultForm(Query query) ; - + public void visitJsonResultForm(Query query); + public void visitDatasetDecl(Query query) ; public void visitQueryPattern(Query query) ; diff --git a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java index 47b68ff63d5..c891d6448d0 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java +++ b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java @@ -539,7 +539,16 @@ public static void outputAsJSON(OutputStream outStream, Iterator jso for (Entry entry: jsonItem.entrySet()) { JsonValue value = entry.getValue() ; - String val = value.getAsString().value() ; + String val = ""; + if (value.isString()) { + val = value.getAsString().value() ; + } else if (value.isNull()) { + val = value.getAsString().value() ; + } else if (value.isBoolean()) { + val = Boolean.toString(value.getAsBoolean().value()) ; + } else if (value.isNumber()) { + val = value.toString() ; + } jWriter.pair(entry.getKey(), val) ; } jWriter.finishObject() ; diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryCompare.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryCompare.java index a2c2ea95024..7a6df4648c7 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryCompare.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryCompare.java @@ -104,6 +104,11 @@ public void visitAskResultForm(Query query1) check("Not both ASK queries", query2.isAskType()) ; } + @Override + public void visitJsonResultForm(Query query) { + check("Not both JSON queries", query2.isJsonType()) ; + } + @Override public void visitDatasetDecl(Query query1) { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryHashCode.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryHashCode.java index 543ccaf625c..0ca768e8d51 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryHashCode.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/QueryHashCode.java @@ -80,6 +80,10 @@ public void visitDescribeResultForm(Query query) public void visitAskResultForm(Query query) { } + @Override + public void visitJsonResultForm(Query query) + { } + @Override public void visitDatasetDecl(Query query) { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/JsonIterator.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/JsonIterator.java index 8becf29c6c6..6306bd9aaf9 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/JsonIterator.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/JsonIterator.java @@ -24,11 +24,13 @@ import java.util.NoSuchElementException; import org.apache.jena.atlas.json.JsonObject; +import org.apache.jena.atlas.json.JsonValue; import org.apache.jena.atlas.lib.Closeable; import org.apache.jena.graph.Node; import org.apache.jena.sparql.core.Var; import org.apache.jena.sparql.engine.binding.Binding; +import org.apache.jena.sparql.lib.RDFTerm2Json; /** A JSON iterator for JsonObject's, that wraps a QueryIterator, and a list * of result variables. @@ -68,14 +70,8 @@ public JsonObject next() for (String resultVar : resultVars) { Node n = binding.get(Var.alloc(resultVar)) ; - if (n.isLiteral()) - { - jsonObject.put(resultVar, n.getLiteral().toString()) ; - } - else - { - jsonObject.put(resultVar, n.toString()) ; - } + JsonValue value = RDFTerm2Json.fromNode(n) ; + jsonObject.put(resultVar, value); } return jsonObject ; } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java index 97332c1f589..0e5d1341ede 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java @@ -26,6 +26,7 @@ import org.apache.jena.atlas.json.JsonArray; import org.apache.jena.atlas.json.JsonObject; +import org.apache.jena.atlas.json.JsonValue; import org.apache.jena.atlas.lib.Alarm ; import org.apache.jena.atlas.lib.AlarmClock; import org.apache.jena.atlas.logging.Log; @@ -46,6 +47,7 @@ import org.apache.jena.sparql.engine.binding.BindingUtils; import org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper; import org.apache.jena.sparql.graph.GraphFactory; +import org.apache.jena.sparql.lib.RDFTerm2Json; import org.apache.jena.sparql.modify.TemplateLib; import org.apache.jena.sparql.syntax.ElementGroup; import org.apache.jena.sparql.syntax.Template; @@ -355,9 +357,8 @@ public JsonArray execJson() JsonObject jsonObject = new JsonObject() ; for (String resultVar : resultVars) { Node n = binding.get(Var.alloc(resultVar)) ; - if (n.isLiteral()) { - jsonObject.put(resultVar, n.getLiteral().toString()) ; - } + JsonValue value = RDFTerm2Json.fromNode(n) ; + jsonObject.put(resultVar, value) ; } jsonArray.add(jsonObject) ; } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lib/RDFTerm2Json.java b/jena-arq/src/main/java/org/apache/jena/sparql/lib/RDFTerm2Json.java index 5f0184c69df..bcf1fd17c50 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lib/RDFTerm2Json.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lib/RDFTerm2Json.java @@ -64,7 +64,7 @@ public static JsonValue fromNode(Node node) { return new JsonString(node.getURI()); if ( node.isBlank() ) { Node node2 = RiotLib.blankNodeToIri(node); - return new JsonString(node.getURI()); + return new JsonString(node2.getURI()); } if ( node.isVariable() ) return new JsonString("?"+node.getName()); diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/SPARQLResult.java b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/SPARQLResult.java index 5f1a1529964..2633d8d8d7b 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/SPARQLResult.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/SPARQLResult.java @@ -21,13 +21,9 @@ import java.util.Iterator; import org.apache.jena.atlas.json.JsonObject; -import org.apache.jena.atlas.logging.Log; -import org.apache.jena.graph.Node; import org.apache.jena.query.Dataset; import org.apache.jena.query.ResultSet; import org.apache.jena.rdf.model.Model; -import org.apache.jena.sparql.core.Var; -import org.apache.jena.sparql.engine.binding.BindingMap; /** * The class "ResultSet" is reserved for the SELECT result format. This class @@ -176,17 +172,4 @@ protected void set(Iterator jsonItems) { hasBeenSet = true; } - static protected void addBinding(BindingMap binding, Var var, Node value) { - Node n = binding.get(var); - if ( n != null ) { - // Same - silently skip. - if ( n.equals(value) ) - return; - Log.warn(SPARQLResult.class, - String.format("Multiple occurences of a binding for variable '%s' with different values - ignored", var.getName())); - return; - } - binding.add(var, value); - } - } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java b/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java index e77e5e36db6..459c59971de 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java @@ -19,7 +19,9 @@ package org.apache.jena.sparql.serializer; import java.io.OutputStream ; +import java.util.ArrayList; import java.util.List ; +import java.util.Map; import org.apache.jena.atlas.io.IndentedWriter ; import org.apache.jena.graph.Node ; @@ -142,7 +144,19 @@ public void visitAskResultForm(Query query) out.print("ASK") ; out.newline() ; } - + + @Override + public void visitJsonResultForm(Query query) { + out.print("JSON {"); + List terms = new ArrayList<>(); + for (Map.Entry entry : query.jsonMapping.entrySet()) { + terms.add(String.format("\"%s\" : %s ", entry.getKey(), entry.getValue())); + } + out.print(String.join(",", terms)); + out.print(" }"); + out.newline(); + } + @Override public void visitDatasetDecl(Query query) { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java index 8c7b71283d5..c7d05b4da2d 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java @@ -217,6 +217,11 @@ public void visitAskResultForm(Query query) { newQuery.setQueryAskType(); } + @Override + public void visitJsonResultForm(Query query) { + newQuery.setQueryJsonType(); + } + @Override public void visitDatasetDecl(Query query) { } diff --git a/jena-arq/src/test/java/org/apache/jena/query/TS_ResultSetFormatter.java b/jena-arq/src/test/java/org/apache/jena/query/TS_ResultSetFormatter.java new file mode 100644 index 00000000000..44947fb44ef --- /dev/null +++ b/jena-arq/src/test/java/org/apache/jena/query/TS_ResultSetFormatter.java @@ -0,0 +1,30 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.query; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +@RunWith(Suite.class) +@Suite.SuiteClasses( { + TestResultSetFormatter.class +}) +public class TS_ResultSetFormatter { + +} diff --git a/jena-arq/src/test/java/org/apache/jena/query/TestResultSetFormatter.java b/jena-arq/src/test/java/org/apache/jena/query/TestResultSetFormatter.java new file mode 100644 index 00000000000..507ef57a369 --- /dev/null +++ b/jena-arq/src/test/java/org/apache/jena/query/TestResultSetFormatter.java @@ -0,0 +1,81 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.jena.query; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.nio.charset.Charset; + +import org.apache.commons.io.output.ByteArrayOutputStream; +import org.apache.jena.datatypes.xsd.XSDDatatype; +import org.apache.jena.rdf.model.AnonId; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.rdf.model.ModelFactory; +import org.apache.jena.rdf.model.Property; +import org.apache.jena.rdf.model.RDFNode; +import org.apache.jena.rdf.model.Resource; +import org.apache.jena.rdf.model.ResourceFactory; +import org.apache.jena.sparql.engine.JsonIterator; +import org.junit.Test; + +/** + * Tests for the {@link ResultSetFormatter}. + */ +public class TestResultSetFormatter { + + @Test + public void testIterator() throws IOException { + Model model = ModelFactory.createDefaultModel(); + { + Resource r = model.createResource(AnonId.create("first")); + Property p = model.getProperty(""); + RDFNode node = ResourceFactory.createTypedLiteral("123", XSDDatatype.XSDdecimal); + model.add(r, p, node); + r = model.createResource(AnonId.create("second")); + p = model.getProperty(""); + node = ResourceFactory.createTypedLiteral("abc", XSDDatatype.XSDstring); + model.add(r, p, node); + r = model.createResource(AnonId.create("third")); + p = model.getProperty(""); + node = ResourceFactory.createLangLiteral("def", "en"); + model.add(r, p, node); + r = model.createResource(AnonId.create("fourth")); + p = model.getProperty(""); + node = ResourceFactory.createTypedLiteral("true", XSDDatatype.XSDboolean); + model.add(r, p, node); + } + Query query = QueryFactory.create("JSON { \"s\": ?s , \"p\": ?p , \"o\" : ?o } " + + "WHERE { ?s ?p ?o }", Syntax.syntaxARQ); + try ( QueryExecution qexec = QueryExecutionFactory.create(query, model) ) { + JsonIterator execJsonItems = (JsonIterator) qexec.execJsonItems(); + try (final ByteArrayOutputStream baos = new ByteArrayOutputStream()) { + ResultSetFormatter.outputAsJSON(baos, execJsonItems); + String output = baos.toString(Charset.forName("UTF-8")); + assertTrue(output.contains("\"_:first\"")); + assertTrue(output.contains("\"_:second\"")); + assertTrue(output.contains("\"_:third\"")); + assertTrue(output.contains("\"_:fourth\"")); + assertTrue(output.contains("\"true\"")); + assertTrue(output.contains("\"123\"")); + assertTrue(output.contains("\"abc\"")); + } + } + } + +} diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java b/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java index 74c27a8dab9..7942a5e4747 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java @@ -22,12 +22,35 @@ import java.util.Set ; import org.apache.jena.atlas.iterator.Iter ; +import org.apache.jena.atlas.json.JsonArray; +import org.apache.jena.atlas.json.JsonObject; import org.apache.jena.atlas.junit.BaseTest; +import org.apache.jena.datatypes.xsd.XSDDatatype; import org.apache.jena.graph.Graph ; import org.apache.jena.graph.Node ; import org.apache.jena.graph.Triple; -import org.apache.jena.query.* ; -import org.apache.jena.rdf.model.* ; +import org.apache.jena.query.Dataset; +import org.apache.jena.query.DatasetFactory; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryExecution; +import org.apache.jena.query.QueryExecutionFactory; +import org.apache.jena.query.QueryFactory; +import org.apache.jena.query.QueryParseException; +import org.apache.jena.query.QuerySolution; +import org.apache.jena.query.QuerySolutionMap; +import org.apache.jena.query.ResultSet; +import org.apache.jena.query.ResultSetCloseable; +import org.apache.jena.query.ResultSetFactory; +import org.apache.jena.query.ResultSetFormatter; +import org.apache.jena.query.Syntax; +import org.apache.jena.rdf.model.AnonId; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.rdf.model.ModelFactory; +import org.apache.jena.rdf.model.Property; +import org.apache.jena.rdf.model.RDFNode; +import org.apache.jena.rdf.model.Resource; +import org.apache.jena.rdf.model.ResourceFactory; +import org.apache.jena.rdf.model.Statement; import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.DatasetGraphFactory; import org.apache.jena.sparql.core.Quad; @@ -553,9 +576,9 @@ public class TestAPI extends BaseTest @Test public void testARQConstructQuad_ShortForm_bad() { String queryString = "CONSTRUCT WHERE { GRAPH ?g {?s ?p ?o. FILTER isIRI(?o)} }"; try { - QueryFactory.create(queryString, Syntax.syntaxARQ); + QueryFactory.create(queryString, Syntax.syntaxARQ); }catch (QueryParseException e){ - return; + return; } fail("Short form of construct quad MUST be simple graph patterns!"); } @@ -601,4 +624,60 @@ private int queryAndCount(QueryExecution qExec) { qExec.close(); } } + + /** + * Test that a JSON query returns an array with the correct size, given a pre-populated model. + */ + @Test public void testExecJson() { + // JENA-632 + Query query = QueryFactory.create("JSON { \"s\": ?s , \"p\": ?p , \"o\" : ?o } " + + "WHERE { ?s ?p ?o }", Syntax.syntaxARQ); + + try ( QueryExecution qexec = QueryExecutionFactory.create(query, m) ) { + JsonArray jsonArray = qexec.execJson(); + assertNotNull( jsonArray ); + assertEquals(3, jsonArray.size()); + } + } + + /** + * Test that a JSON query returns an array with the correct data values, given a pre-populated + * model. + */ + @Test public void testExecJsonItems() { + // JENA-632 + Model model = ModelFactory.createDefaultModel(); + { + Resource r = model.createResource(AnonId.create("first")); + Property p = model.getProperty(""); + RDFNode node = ResourceFactory.createTypedLiteral("123", XSDDatatype.XSDdecimal); + model.add(r, p, node); + r = model.createResource(AnonId.create("second")); + p = model.getProperty(""); + node = ResourceFactory.createTypedLiteral("abc", XSDDatatype.XSDstring); + model.add(r, p, node); + r = model.createResource(AnonId.create("third")); + p = model.getProperty(""); + node = ResourceFactory.createLangLiteral("def", "en"); + model.add(r, p, node); + } + Query query = QueryFactory.create("JSON { \"s\": ?s , \"p\": ?p , \"o\" : ?o } " + + "WHERE { ?s ?p ?o }", Syntax.syntaxARQ); + try ( QueryExecution qexec = QueryExecutionFactory.create(query, model) ) { + Iterator execJsonItems = qexec.execJsonItems(); + int size = 0; + while(execJsonItems.hasNext()) { + JsonObject next = execJsonItems.next(); + if (next.get("s").toString().contains("first")) { + assertEquals(123, next.get("o").getAsNumber().value().intValue()); + } else if (next.get("s").toString().contains("second")) { + assertEquals("abc", next.get("o").getAsString().value()); + } else if (next.get("s").toString().contains("third")) { + assertEquals("def", next.get("o").getAsString().value()); + } + size++; + } + assertEquals(3, size); + } + } } diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/engine/TS_Engine.java b/jena-arq/src/test/java/org/apache/jena/sparql/engine/TS_Engine.java index d7b386c3211..06c91a1eef4 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/engine/TS_Engine.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/engine/TS_Engine.java @@ -34,6 +34,7 @@ , TestService.class , TestQueryEngineHTTP.class , TestQueryEngineMultiThreaded.class + , TestJsonIterator.class }) public class TS_Engine {} diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonIterator.java b/jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonIterator.java new file mode 100644 index 00000000000..82a733bbb8d --- /dev/null +++ b/jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonIterator.java @@ -0,0 +1,86 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.sparql.engine; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.util.Collections; +import java.util.NoSuchElementException; + +import org.apache.jena.datatypes.xsd.XSDDatatype; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryExecution; +import org.apache.jena.query.QueryExecutionFactory; +import org.apache.jena.query.QueryFactory; +import org.apache.jena.query.Syntax; +import org.apache.jena.rdf.model.AnonId; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.rdf.model.ModelFactory; +import org.apache.jena.rdf.model.Property; +import org.apache.jena.rdf.model.RDFNode; +import org.apache.jena.rdf.model.Resource; +import org.apache.jena.rdf.model.ResourceFactory; +import org.junit.Test; + +/** + * Tests for {@link JsonIterator}. + */ +public class TestJsonIterator { + + @Test + public void testIterator() { + Model model = ModelFactory.createDefaultModel(); + { + Resource r = model.createResource(AnonId.create("first")); + Property p = model.getProperty(""); + RDFNode node = ResourceFactory.createTypedLiteral("123", XSDDatatype.XSDdecimal); + model.add(r, p, node); + r = model.createResource(AnonId.create("second")); + p = model.getProperty(""); + node = ResourceFactory.createTypedLiteral("abc", XSDDatatype.XSDstring); + model.add(r, p, node); + r = model.createResource(AnonId.create("third")); + p = model.getProperty(""); + node = ResourceFactory.createLangLiteral("def", "en"); + model.add(r, p, node); + } + Query query = QueryFactory.create("JSON { \"s\": ?s , \"p\": ?p , \"o\" : ?o } " + + "WHERE { ?s ?p ?o }", Syntax.syntaxARQ); + try ( QueryExecution qexec = QueryExecutionFactory.create(query, model) ) { + JsonIterator execJsonItems = (JsonIterator) qexec.execJsonItems(); + assertTrue(execJsonItems.hasNext()); + assertNotNull(execJsonItems.next()); + } + } + + @Test(expected = NoSuchElementException.class) + public void testInitialStates() { + JsonIterator iterator = new JsonIterator(null, Collections.emptyList()); + assertFalse(iterator.hasNext()); + iterator.next(); + } + + @Test(expected = UnsupportedOperationException.class) + public void testRemoveNotImplemented() { + JsonIterator iterator = new JsonIterator(null, Collections.emptyList()); + iterator.remove(); + } +} diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java index 624c56ec105..dc4e2fc7bff 100644 --- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java +++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java @@ -24,12 +24,18 @@ import static org.apache.jena.fuseki.ServerTest.model1 ; import static org.apache.jena.fuseki.ServerTest.model2 ; +import java.io.BufferedInputStream; +import java.io.BufferedReader; import java.io.IOException ; +import java.io.InputStream; +import java.io.InputStreamReader; import java.net.HttpURLConnection ; import java.net.URL ; import java.util.Iterator ; +import org.apache.commons.lang3.NotImplementedException; import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.jena.atlas.json.JsonArray; import org.apache.jena.atlas.web.AcceptList ; import org.apache.jena.atlas.web.MediaType; import org.apache.jena.graph.Node ; @@ -264,6 +270,44 @@ public void query_describe_conneg() throws IOException { } } + @Test(expected = NotImplementedException.class) + public void query_json_01() throws IOException { + Query query = QueryFactory.create("JSON { \"s\": ?s , \"p\": ?p , \"o\" : ?o } " + + "WHERE { ?s ?p ?o }", Syntax.syntaxARQ); + query.toString(); + try ( QueryExecution qExec = QueryExecutionFactory.sparqlService(serviceQuery(), query) ) { + JsonArray result = qExec.execJson(); + assertEquals(1, result.size()); + } + } + + @Test + public void query_json_02() throws IOException { + String qs = Convert.encWWWForm("JSON { \"s\": ?s , \"p\": ?p , \"o\" : ?o } " + + "WHERE { ?s ?p ?o }") ; + URL u = new URL(serviceQuery() + "?query=" + qs) ; + HttpURLConnection conn = (HttpURLConnection)u.openConnection() ; + String result = null; + StringBuffer sb = new StringBuffer(); + InputStream is = null; + try { + is = new BufferedInputStream(conn.getInputStream()); + BufferedReader br = new BufferedReader(new InputStreamReader(is)); + String inputLine = ""; + while ((inputLine = br.readLine()) != null) { + sb.append(inputLine); + } + result = sb.toString(); + } + finally { + if (is != null) { + is.close(); + } + } + Assert.assertNotNull(result); + Assert.assertTrue(result.contains("http://example/x")); + } + private static void execQuery(String queryString, int exceptedRowCount) { try ( QueryExecution qExec = QueryExecutionFactory.sparqlService(serviceQuery(), queryString) ) { ResultSet rs = qExec.execSelect() ; From bd6458b12b4c0969386ced6c600bee57ca29a5f1 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Tue, 20 Mar 2018 21:04:12 +1300 Subject: [PATCH 10/18] JENA-632: rename outputAsJSON to rename, and avoid converting to strings with JSWriter --- .../apache/jena/query/ResultSetFormatter.java | 72 ++++++++----------- .../jena/query/TestResultSetFormatter.java | 9 ++- .../jena/fuseki/servlets/ResponseJson.java | 2 +- 3 files changed, 37 insertions(+), 46 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java index c891d6448d0..359de9111c6 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java +++ b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java @@ -30,11 +30,9 @@ import java.util.ArrayList ; import java.util.Iterator ; import java.util.List ; -import java.util.Map.Entry; +import org.apache.jena.atlas.io.IndentedWriter; import org.apache.jena.atlas.json.JsonObject; -import org.apache.jena.atlas.json.JsonValue; -import org.apache.jena.atlas.json.io.JSWriter; import org.apache.jena.atlas.logging.Log ; import org.apache.jena.rdf.model.RDFNode ; import org.apache.jena.riot.Lang; @@ -326,18 +324,43 @@ public static void output(OutputStream outStream, ResultSet resultSet, Lang resu public static void output(boolean result, Lang resultFormat) { output(System.out, result, resultFormat); } - // ---- General Output public static void output(OutputStream outStream, boolean result, Lang resultFormat) { ResultsWriter.create().lang(resultFormat).build().write(outStream, result); } + + /** Output an iterator of JSON values. + * + * @param outStream output stream + * @param jsonItems The JSON values + */ + public static void output(OutputStream outStream, Iterator jsonItems) + { + IndentedWriter out = new IndentedWriter(outStream) ; + out.println("[") ; + out.incIndent() ; + while (jsonItems.hasNext()) + { + JsonObject jsonItem = jsonItems.next() ; + jsonItem.output(out) ; + if ( jsonItems.hasNext() ) + out.println(" ,"); + else + out.println(); + } + out.decIndent(); + out.println("]"); + out.flush(); + } + + // ---- General Output + + // ---- XML Output + /** Output a result set in the XML format * * @param qresults result set */ - - // ---- XML Output - static public void outputAsXML(ResultSet qresults) { outputAsXML(System.out, qresults) ; } @@ -521,41 +544,6 @@ static public void outputAsJSON(boolean booleanResult) static public void outputAsJSON(OutputStream outStream, boolean booleanResult) { output(outStream, booleanResult, SPARQLResultSetJSON) ; } - - /** Output an iterator of JSON values. - * - * @param outStream output stream - * @param jsonItems The JSON values - */ - public static void outputAsJSON(OutputStream outStream, Iterator jsonItems) - { - JSWriter jWriter = new JSWriter(outStream) ; - jWriter.startArray() ; - jWriter.startOutput() ; - while (jsonItems.hasNext()) - { - jWriter.startObject() ; - JsonObject jsonItem = jsonItems.next() ; - for (Entry entry: jsonItem.entrySet()) - { - JsonValue value = entry.getValue() ; - String val = ""; - if (value.isString()) { - val = value.getAsString().value() ; - } else if (value.isNull()) { - val = value.getAsString().value() ; - } else if (value.isBoolean()) { - val = Boolean.toString(value.getAsBoolean().value()) ; - } else if (value.isNumber()) { - val = value.toString() ; - } - jWriter.pair(entry.getKey(), val) ; - } - jWriter.finishObject() ; - } - jWriter.finishArray() ; - jWriter.finishOutput() ; - } // ---- SSE diff --git a/jena-arq/src/test/java/org/apache/jena/query/TestResultSetFormatter.java b/jena-arq/src/test/java/org/apache/jena/query/TestResultSetFormatter.java index 507ef57a369..0d9519aa40e 100644 --- a/jena-arq/src/test/java/org/apache/jena/query/TestResultSetFormatter.java +++ b/jena-arq/src/test/java/org/apache/jena/query/TestResultSetFormatter.java @@ -17,6 +17,7 @@ */ package org.apache.jena.query; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.IOException; @@ -65,14 +66,16 @@ public void testIterator() throws IOException { try ( QueryExecution qexec = QueryExecutionFactory.create(query, model) ) { JsonIterator execJsonItems = (JsonIterator) qexec.execJsonItems(); try (final ByteArrayOutputStream baos = new ByteArrayOutputStream()) { - ResultSetFormatter.outputAsJSON(baos, execJsonItems); + ResultSetFormatter.output(baos, execJsonItems); String output = baos.toString(Charset.forName("UTF-8")); assertTrue(output.contains("\"_:first\"")); assertTrue(output.contains("\"_:second\"")); assertTrue(output.contains("\"_:third\"")); assertTrue(output.contains("\"_:fourth\"")); - assertTrue(output.contains("\"true\"")); - assertTrue(output.contains("\"123\"")); + assertFalse(output.contains("\"true\"")); + assertTrue(output.contains("true")); + assertTrue(output.contains("123")); + assertFalse(output.contains("\"123\"")); assertTrue(output.contains("\"abc\"")); } } diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseJson.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseJson.java index ec1becf65cd..c0be5dbd6c1 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseJson.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseJson.java @@ -72,7 +72,7 @@ private static void jsonOutput(HttpAction action, final Iterator jso public void output(ServletOutputStream out) { if (jsonItems != null) - ResultSetFormatter.outputAsJSON(out, jsonItems) ; + ResultSetFormatter.output(out, jsonItems) ; } } ; From 8b5e828a34f364c2b17a9d355a024f349cb1ddce Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Wed, 21 Mar 2018 20:24:58 +1300 Subject: [PATCH 11/18] Remove main metohd and do not expose map directly --- jena-arq/Grammar/master.jj | 37 +------------------ .../java/org/apache/jena/query/Query.java | 6 ++- .../sparql/engine/http/QueryEngineHTTP.java | 6 +-- .../sparql/serializer/QuerySerializer.java | 2 +- 4 files changed, 10 insertions(+), 41 deletions(-) diff --git a/jena-arq/Grammar/master.jj b/jena-arq/Grammar/master.jj index 05c65e5b0c7..16b2ba4fe4a 100644 --- a/jena-arq/Grammar/master.jj +++ b/jena-arq/Grammar/master.jj @@ -99,42 +99,7 @@ import org.apache.jena.sparql.core.Quad ; #endif public class CLASS extends PARSERBASE -{ - boolean allowAggregatesInExpressions = false ; -#ifdef ARQ - public static void main(String args[]) { - while (true) { - StringBuilder queryString = new StringBuilder() ; - java.util.Scanner scanner = new java.util.Scanner(System.in) ; - boolean firstEmptyLine = false ; - System.out.print("Enter input: ") ; - while (true) { - String line = scanner.nextLine() ; - if ("".equals(line) || line == null) { - if (firstEmptyLine) break ; - firstEmptyLine = true ; - } else { - queryString.append(line + System.lineSeparator()) ; - firstEmptyLine = false ; - } - } - try { - Query query = QueryFactory.create(queryString.toString(), - "http://example/query-base", Syntax.syntaxARQ) ; - java.io.Reader in = new java.io.StringReader(queryString.toString()) ; - CLASS parser = new CLASS(in) ; - parser.setQuery(query) ; - parser.QueryUnit() ; - System.out.println("Parsed query successfully!") ; - System.out.println("---" + System.lineSeparator()) ; - } catch (Exception e) { - System.out.println("Parser error: " + e.getMessage()) ; - e.printStackTrace(System.err) ; - } - } - } -#endif -} +{} PARSER_END(CLASS) // // Common top for single entry point. diff --git a/jena-arq/src/main/java/org/apache/jena/query/Query.java b/jena-arq/src/main/java/org/apache/jena/query/Query.java index 8e0e98455c2..15a4d48aa62 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/Query.java +++ b/jena-arq/src/main/java/org/apache/jena/query/Query.java @@ -521,12 +521,16 @@ public void addHavingCondition(Expr expr) // SELECT JSON - public Map jsonMapping = new LinkedHashMap<>(); + private Map jsonMapping = new LinkedHashMap<>(); public void addJsonMapping(String key, Object value) { jsonMapping.put(key, value); } + public Map getJsonMapping() { + return Collections.unmodifiableMap(jsonMapping); + } + // ---- Aggregates // Record allocated aggregations. diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java index 30703216e24..91c3ed56683 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java @@ -26,7 +26,6 @@ import java.util.Map ; import java.util.concurrent.TimeUnit ; -import org.apache.commons.lang3.NotImplementedException; import org.apache.http.client.HttpClient ; import org.apache.http.client.protocol.HttpClientContext; import org.apache.http.protocol.HttpContext ; @@ -34,6 +33,7 @@ import org.apache.jena.atlas.io.IO ; import org.apache.jena.atlas.json.JsonArray; import org.apache.jena.atlas.json.JsonObject; +import org.apache.jena.atlas.lib.NotImplemented; import org.apache.jena.atlas.lib.Pair ; import org.apache.jena.graph.Triple ; import org.apache.jena.query.* ; @@ -538,13 +538,13 @@ else if ( actualContentType.equals(WebContent.contentTypeJSON)) @Override public JsonArray execJson() { - throw new NotImplementedException("JSON queries not implemented for remote calls") ; + throw new NotImplemented("JSON queries not implemented for remote calls") ; } @Override public Iterator execJsonItems() { - throw new NotImplementedException("JSON queries not implemented for remote calls") ; + throw new NotImplemented("JSON queries not implemented for remote calls") ; } private void checkNotClosed() { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java b/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java index 459c59971de..baeed8964e7 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java @@ -149,7 +149,7 @@ public void visitAskResultForm(Query query) public void visitJsonResultForm(Query query) { out.print("JSON {"); List terms = new ArrayList<>(); - for (Map.Entry entry : query.jsonMapping.entrySet()) { + for (Map.Entry entry : query.getJsonMapping().entrySet()) { terms.add(String.format("\"%s\" : %s ", entry.getKey(), entry.getValue())); } out.print(String.join(",", terms)); From 1c58e5710cb3d8bf7e3489a2eaa66fee8d440243 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Wed, 21 Mar 2018 20:40:20 +1300 Subject: [PATCH 12/18] Fix tests, update grammar to support DOUBLE, and re-generate grammars --- jena-arq/Grammar/arq.jj | 36 +-- jena-arq/Grammar/master.jj | 1 + jena-arq/Grammar/sparql_11.jj | 4 +- .../jena/sparql/lang/arq/ARQParser.java | 244 ++++++++---------- .../sparql/lang/sparql_11/SPARQLParser11.java | 3 +- .../org/apache/jena/fuseki/TestQuery.java | 4 +- 6 files changed, 116 insertions(+), 176 deletions(-) diff --git a/jena-arq/Grammar/arq.jj b/jena-arq/Grammar/arq.jj index ffd881f8b92..4ae8c0ffe00 100644 --- a/jena-arq/Grammar/arq.jj +++ b/jena-arq/Grammar/arq.jj @@ -36,40 +36,7 @@ import org.apache.jena.update.* ; import org.apache.jena.sparql.modify.request.* ; import org.apache.jena.sparql.core.Quad ; public class ARQParser extends ARQParserBase -{ - boolean allowAggregatesInExpressions = false ; - public static void main(String args[]) { - while (true) { - StringBuilder queryString = new StringBuilder() ; - java.util.Scanner scanner = new java.util.Scanner(System.in) ; - boolean firstEmptyLine = false ; - System.out.print("Enter input: ") ; - while (true) { - String line = scanner.nextLine() ; - if ("".equals(line) || line == null) { - if (firstEmptyLine) break ; - firstEmptyLine = true ; - } else { - queryString.append(line + System.lineSeparator()) ; - firstEmptyLine = false ; - } - } - try { - Query query = QueryFactory.create(queryString.toString(), - "http://example/query-base", Syntax.syntaxARQ) ; - java.io.Reader in = new java.io.StringReader(queryString.toString()) ; - ARQParser parser = new ARQParser(in) ; - parser.setQuery(query) ; - parser.QueryUnit() ; - System.out.println("Parsed query successfully!") ; - System.out.println("---" + System.lineSeparator()) ; - } catch (Exception e) { - System.out.println("Parser error: " + e.getMessage()) ; - e.printStackTrace(System.err) ; - } - } - } -} +{} PARSER_END(ARQParser) void QueryUnit(): { } { @@ -1637,6 +1604,7 @@ Number Number() : { Token t ; Number number ; } ( t = < INTEGER > { number = integerValue(t.image) ; } | t = < DECIMAL > { number = doubleValue(t.image) ; } + | t = < DOUBLE > { number = doubleValue(t.image) ; } ) { return number ; diff --git a/jena-arq/Grammar/master.jj b/jena-arq/Grammar/master.jj index 16b2ba4fe4a..6b46b855d06 100644 --- a/jena-arq/Grammar/master.jj +++ b/jena-arq/Grammar/master.jj @@ -2222,6 +2222,7 @@ Number Number() : { Token t ; Number number ; } ( t = < INTEGER > { number = integerValue(t.image) ; } | t = < DECIMAL > { number = doubleValue(t.image) ; } + | t = < DOUBLE > { number = doubleValue(t.image) ; } ) { return number ; diff --git a/jena-arq/Grammar/sparql_11.jj b/jena-arq/Grammar/sparql_11.jj index 5e373417db2..0da06d9bf63 100644 --- a/jena-arq/Grammar/sparql_11.jj +++ b/jena-arq/Grammar/sparql_11.jj @@ -35,9 +35,7 @@ import org.apache.jena.sparql.expr.aggregate.lib.* ; import org.apache.jena.update.* ; import org.apache.jena.sparql.modify.request.* ; public class SPARQLParser11 extends SPARQLParser11Base -{ - boolean allowAggregatesInExpressions = false ; -} +{} PARSER_END(SPARQLParser11) void QueryUnit(): { } { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java index 24cf2cb6e7c..bc72e479aaf 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java @@ -14,38 +14,6 @@ @SuppressWarnings("all") public class ARQParser extends ARQParserBase implements ARQParserConstants { - boolean allowAggregatesInExpressions = false ; - public static void main(String args[]) { - while (true) { - StringBuilder queryString = new StringBuilder() ; - java.util.Scanner scanner = new java.util.Scanner(System.in) ; - boolean firstEmptyLine = false ; - System.out.print("Enter input: ") ; - while (true) { - String line = scanner.nextLine() ; - if ("".equals(line) || line == null) { - if (firstEmptyLine) break ; - firstEmptyLine = true ; - } else { - queryString.append(line + System.lineSeparator()) ; - firstEmptyLine = false ; - } - } - try { - Query query = QueryFactory.create(queryString.toString(), - "http://example/query-base", Syntax.syntaxARQ) ; - java.io.Reader in = new java.io.StringReader(queryString.toString()) ; - ARQParser parser = new ARQParser(in) ; - parser.setQuery(query) ; - parser.QueryUnit() ; - System.out.println("Parsed query successfully!") ; - System.out.println("---" + System.lineSeparator()) ; - } catch (Exception e) { - System.out.println("Parser error: " + e.getMessage()) ; - e.printStackTrace(System.err) ; - } - } - } final public void QueryUnit() throws ParseException { ByteOrderMark(); @@ -737,6 +705,7 @@ final public void JsonClause() throws ParseException { break; case INTEGER: case DECIMAL: + case DOUBLE: o = Number(); getQuery().addJsonMapping(s, o) ; break; @@ -775,6 +744,7 @@ final public void JsonClause() throws ParseException { break; case INTEGER: case DECIMAL: + case DOUBLE: o = Number(); getQuery().addJsonMapping(s, o) ; break; @@ -5745,6 +5715,10 @@ final public Number Number() throws ParseException { t = jj_consume_token(DECIMAL); number = doubleValue(t.image) ; break; + case DOUBLE: + t = jj_consume_token(DOUBLE); + number = doubleValue(t.image) ; + break; default: jj_la1[183] = jj_gen; jj_consume_token(-1); @@ -5854,6 +5828,102 @@ private boolean jj_2_5(int xla) { finally { jj_save(4, xla); } } + private boolean jj_3R_132() { + if (jj_scan_token(AGG)) return true; + if (jj_3R_141()) return true; + return false; + } + + private boolean jj_3R_131() { + if (jj_scan_token(VAR_POP)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_130() { + if (jj_scan_token(VAR_SAMP)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_129() { + if (jj_scan_token(VARIANCE)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_128() { + if (jj_scan_token(STDEV_POP)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_127() { + if (jj_scan_token(STDEV_SAMP)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_2() { + if (jj_scan_token(SEMICOLON)) return true; + if (jj_3R_44()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_scan_token(136)) { + jj_scanpos = xsp; + if (jj_scan_token(137)) { + jj_scanpos = xsp; + if (jj_scan_token(144)) { + jj_scanpos = xsp; + if (jj_scan_token(139)) { + jj_scanpos = xsp; + if (jj_scan_token(140)) { + jj_scanpos = xsp; + if (jj_scan_token(141)) { + jj_scanpos = xsp; + if (jj_scan_token(138)) { + jj_scanpos = xsp; + if (jj_scan_token(149)) { + jj_scanpos = xsp; + if (jj_scan_token(132)) { + jj_scanpos = xsp; + if (jj_scan_token(131)) { + jj_scanpos = xsp; + if (jj_scan_token(150)) { + jj_scanpos = xsp; + if (jj_scan_token(133)) { + jj_scanpos = xsp; + if (jj_scan_token(134)) { + jj_scanpos = xsp; + if (jj_scan_token(135)) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3R_126() { + if (jj_scan_token(STDEV)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_5() { + if (jj_scan_token(SEMICOLON)) return true; + if (jj_scan_token(SEPARATOR)) return true; + return false; + } + private boolean jj_3R_145() { if (jj_scan_token(LPAREN)) return true; return false; @@ -6574,6 +6644,11 @@ private boolean jj_3R_105() { return false; } + private boolean jj_3R_161() { + if (jj_scan_token(PNAME_NS)) return true; + return false; + } + private boolean jj_3R_104() { if (jj_3R_117()) return true; return false; @@ -6589,11 +6664,6 @@ private boolean jj_3R_45() { return false; } - private boolean jj_3R_161() { - if (jj_scan_token(PNAME_NS)) return true; - return false; - } - private boolean jj_3_4() { if (jj_scan_token(DOT)) return true; if (jj_3R_45()) return true; @@ -6947,102 +7017,6 @@ private boolean jj_3R_156() { return false; } - private boolean jj_3R_132() { - if (jj_scan_token(AGG)) return true; - if (jj_3R_141()) return true; - return false; - } - - private boolean jj_3R_131() { - if (jj_scan_token(VAR_POP)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_130() { - if (jj_scan_token(VAR_SAMP)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_129() { - if (jj_scan_token(VARIANCE)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_128() { - if (jj_scan_token(STDEV_POP)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_127() { - if (jj_scan_token(STDEV_SAMP)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_2() { - if (jj_scan_token(SEMICOLON)) return true; - if (jj_3R_44()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_scan_token(136)) { - jj_scanpos = xsp; - if (jj_scan_token(137)) { - jj_scanpos = xsp; - if (jj_scan_token(144)) { - jj_scanpos = xsp; - if (jj_scan_token(139)) { - jj_scanpos = xsp; - if (jj_scan_token(140)) { - jj_scanpos = xsp; - if (jj_scan_token(141)) { - jj_scanpos = xsp; - if (jj_scan_token(138)) { - jj_scanpos = xsp; - if (jj_scan_token(149)) { - jj_scanpos = xsp; - if (jj_scan_token(132)) { - jj_scanpos = xsp; - if (jj_scan_token(131)) { - jj_scanpos = xsp; - if (jj_scan_token(150)) { - jj_scanpos = xsp; - if (jj_scan_token(133)) { - jj_scanpos = xsp; - if (jj_scan_token(134)) { - jj_scanpos = xsp; - if (jj_scan_token(135)) return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3R_126() { - if (jj_scan_token(STDEV)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_5() { - if (jj_scan_token(SEMICOLON)) return true; - if (jj_scan_token(SEPARATOR)) return true; - return false; - } - /** Generated Token Manager. */ public ARQParserTokenManager token_source; JavaCharStream jj_input_stream; @@ -7084,7 +7058,7 @@ private static void jj_la1_init_3() { jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0xefffffff,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0x0,0xefffffff,0xefffffff,0xefffffff,0x0,0xefffffff,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0xefffffff,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_4() { - jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3000000,0x0,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x213ff8,0x213ff8,0x8000,0x20000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x200000,0x8,0x18,0x400000,0x0,0x0,0x80000,0x180000,0xff000003,0x0,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0xff000003,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x8000,0x0,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0xff000003,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0xf8000000,0xf8000000,0x0,0x0,0xf8000000,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000000,0x7000000,0x38000000,0xc0000000,0x3,0x0,0x3000000,0x0,0x0,0x0,}; + jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7000000,0x0,0x7000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x213ff8,0x213ff8,0x8000,0x20000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x200000,0x8,0x18,0x400000,0x0,0x0,0x80000,0x180000,0xff000003,0x0,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0xff000003,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x8000,0x0,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0xff000003,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0xf8000000,0xf8000000,0x0,0x0,0xf8000000,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000000,0x7000000,0x38000000,0xc0000000,0x3,0x0,0x7000000,0x0,0x0,0x0,}; } private static void jj_la1_init_5() { jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e1,0x0,0x3e1,0x3e1,0x3e1,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x1e0,0x40000,0x1e0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x200,0x200,0x0,0x200,0x200,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14be1,0x0,0x80000,0x14be1,0x14be1,0x14be1,0x1000,0x80000,0x14be1,0x0,0x14be1,0x80000,0x0,0x14be1,0x1000,0x80000,0x14be1,0x14be1,0x80000,0x1000,0x0,0xa00,0x101e1,0x0,0xa00,0xa00,0x101e1,0xa00,0x101e1,0x0,0x200,0x0,0x40000,0xa00,0x40000,0xa00,0x80000,0x14be1,0x0,0x20000,0x0,0x0,0x40000,0x14be1,0x4000200,0x4000200,0x20000,0x4000200,0x4000200,0x40000,0x0,0x0,0x0,0x80001000,0x4000200,0x2000,0x42000,0x80040000,0x80001000,0x4000200,0x0,0x0,0x200,0x0,0x0,0x4200,0x4200,0x14be1,0x14be1,0x14be1,0x14be1,0x109e1,0x0,0x10000,0x0,0x109e1,0x20000000,0x40000000,0x3f00000,0x3f00000,0x80000001,0x1,0x0,0x0,0x80000001,0x0,0x0,0x840003e1,0x3e1,0xa00,0x40000,0x0,0x40000,0x40000,0x40000,0x0,0x840003e1,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa00,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x1e0,0x0,0x0,0x0,0x10000,}; @@ -7375,4 +7349,4 @@ static final class JJCalls { JJCalls next; } -} + } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java index e4222f2a917..c3d04b4f29b 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java @@ -13,7 +13,6 @@ @SuppressWarnings("all") public class SPARQLParser11 extends SPARQLParser11Base implements SPARQLParser11Constants { - boolean allowAggregatesInExpressions = false ; final public void QueryUnit() throws ParseException { ByteOrderMark(); @@ -5111,4 +5110,4 @@ final public void enable_tracing() { final public void disable_tracing() { } -} + } diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java index dc4e2fc7bff..a06bc35b06d 100644 --- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java +++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java @@ -33,9 +33,9 @@ import java.net.URL ; import java.util.Iterator ; -import org.apache.commons.lang3.NotImplementedException; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.jena.atlas.json.JsonArray; +import org.apache.jena.atlas.lib.NotImplemented; import org.apache.jena.atlas.web.AcceptList ; import org.apache.jena.atlas.web.MediaType; import org.apache.jena.graph.Node ; @@ -270,7 +270,7 @@ public void query_describe_conneg() throws IOException { } } - @Test(expected = NotImplementedException.class) + @Test(expected = NotImplemented.class) public void query_json_01() throws IOException { Query query = QueryFactory.create("JSON { \"s\": ?s , \"p\": ?p , \"o\" : ?o } " + "WHERE { ?s ?p ?o }", Syntax.syntaxARQ); From d0ceabbbcee1cdebbc6e1a6cbcb0dd34907c4c13 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Wed, 18 Apr 2018 23:15:10 +1200 Subject: [PATCH 13/18] JENA-632: add projected variables in JSON grammar and basic tests --- jena-arq/Grammar/arq.jj | 17 +++-- jena-arq/Grammar/master.jj | 19 ++--- .../jena/sparql/lang/arq/ARQParser.java | 69 ++++++++++++------- .../apache/jena/sparql/engine/TS_Engine.java | 1 + .../jena/sparql/engine/TestJsonEval.java | 67 ++++++++++++++++++ 5 files changed, 135 insertions(+), 38 deletions(-) create mode 100644 jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonEval.java diff --git a/jena-arq/Grammar/arq.jj b/jena-arq/Grammar/arq.jj index 4ae8c0ffe00..284ffd3513d 100644 --- a/jena-arq/Grammar/arq.jj +++ b/jena-arq/Grammar/arq.jj @@ -184,7 +184,7 @@ void JsonQuery() : {} WhereClause() SolutionModifier() } -void JsonClause() : { Object o ; String s ; Token t; } +void JsonClause() : { Node o ; String s ; Token t; Var v; } { { getQuery().setQueryJsonType() ; } @@ -194,9 +194,10 @@ void JsonClause() : { Object o ; String s ; Token t; } throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; } ( - o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } - | o = String() { getQuery().addJsonMapping(s, o) ; } - | o = Number() { getQuery().addJsonMapping(s, o) ; } + o = Var() { getQuery().addResultVar((Var)o) ; getQuery().addJsonMapping(s, o) ; } + | o = RDFLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } + | o = NumericLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } + | o = BooleanLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } ) ( s = String() @@ -205,12 +206,14 @@ void JsonClause() : { Object o ; String s ; Token t; } throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; } ( - o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } - | o = String() { getQuery().addJsonMapping(s, o) ; } - | o = Number() { getQuery().addJsonMapping(s, o) ; } + o = Var() { getQuery().addResultVar((Var)o) ; getQuery().addJsonMapping(s, o) ; } + | o = RDFLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } + | o = NumericLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } + | o = BooleanLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } ) )* + { v = null ; } } void DatasetClause() : {} { diff --git a/jena-arq/Grammar/master.jj b/jena-arq/Grammar/master.jj index 6b46b855d06..eb8b8515e3d 100644 --- a/jena-arq/Grammar/master.jj +++ b/jena-arq/Grammar/master.jj @@ -335,7 +335,7 @@ void JsonQuery() : {} SolutionModifier() } -void JsonClause() : { Object o ; String s ; Token t; } +void JsonClause() : { Node o ; String s ; Token t; Var v; } { { getQuery().setQueryJsonType() ; } @@ -346,9 +346,10 @@ void JsonClause() : { Object o ; String s ; Token t; } throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; } ( - o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } - | o = String() { getQuery().addJsonMapping(s, o) ; } - | o = Number() { getQuery().addJsonMapping(s, o) ; } + o = Var() { getQuery().addResultVar((Var)o) ; getQuery().addJsonMapping(s, o) ; } + | o = RDFLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } + | o = NumericLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } + | o = BooleanLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } ) ( s = String() @@ -357,12 +358,14 @@ void JsonClause() : { Object o ; String s ; Token t; } throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; } ( - o = Var() { getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; } - | o = String() { getQuery().addJsonMapping(s, o) ; } - | o = Number() { getQuery().addJsonMapping(s, o) ; } + o = Var() { getQuery().addResultVar((Var)o) ; getQuery().addJsonMapping(s, o) ; } + | o = RDFLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } + | o = NumericLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } + | o = BooleanLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } ) )* - + + { v = null ; } } #endif diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java index bc72e479aaf..254ae406a77 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java @@ -682,7 +682,7 @@ final public void JsonQuery() throws ParseException { } final public void JsonClause() throws ParseException { - Object o ; String s ; Token t; + Node o ; String s ; Token t; Var v; jj_consume_token(JSON); getQuery().setQueryJsonType() ; jj_consume_token(LBRACE); @@ -694,20 +694,31 @@ final public void JsonClause() throws ParseException { case VAR1: case VAR2: o = Var(); - getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; + getQuery().addResultVar((Var)o) ; getQuery().addJsonMapping(s, o) ; break; case STRING_LITERAL1: case STRING_LITERAL2: case STRING_LITERAL_LONG1: case STRING_LITERAL_LONG2: - o = String(); - getQuery().addJsonMapping(s, o) ; + o = RDFLiteral(); + getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; break; case INTEGER: case DECIMAL: case DOUBLE: - o = Number(); - getQuery().addJsonMapping(s, o) ; + case INTEGER_POSITIVE: + case DECIMAL_POSITIVE: + case DOUBLE_POSITIVE: + case INTEGER_NEGATIVE: + case DECIMAL_NEGATIVE: + case DOUBLE_NEGATIVE: + o = NumericLiteral(); + getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; + break; + case TRUE: + case FALSE: + o = BooleanLiteral(); + getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; break; default: jj_la1[21] = jj_gen; @@ -733,20 +744,31 @@ final public void JsonClause() throws ParseException { case VAR1: case VAR2: o = Var(); - getQuery().addResultVar((Var) o) ; getQuery().addJsonMapping(s, o) ; + getQuery().addResultVar((Var)o) ; getQuery().addJsonMapping(s, o) ; break; case STRING_LITERAL1: case STRING_LITERAL2: case STRING_LITERAL_LONG1: case STRING_LITERAL_LONG2: - o = String(); - getQuery().addJsonMapping(s, o) ; + o = RDFLiteral(); + getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; break; case INTEGER: case DECIMAL: case DOUBLE: - o = Number(); - getQuery().addJsonMapping(s, o) ; + case INTEGER_POSITIVE: + case DECIMAL_POSITIVE: + case DOUBLE_POSITIVE: + case INTEGER_NEGATIVE: + case DECIMAL_NEGATIVE: + case DOUBLE_NEGATIVE: + o = NumericLiteral(); + getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; + break; + case TRUE: + case FALSE: + o = BooleanLiteral(); + getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; break; default: jj_la1[23] = jj_gen; @@ -755,6 +777,7 @@ final public void JsonClause() throws ParseException { } } jj_consume_token(RBRACE); + v = null ; } final public void DatasetClause() throws ParseException { @@ -6685,11 +6708,6 @@ private boolean jj_3R_155() { return false; } - private boolean jj_3R_116() { - if (jj_3R_136()) return true; - return false; - } - private boolean jj_3R_148() { if (jj_3R_155()) return true; return false; @@ -6710,6 +6728,11 @@ private boolean jj_3R_147() { return false; } + private boolean jj_3R_116() { + if (jj_3R_136()) return true; + return false; + } + private boolean jj_3R_136() { if (jj_scan_token(PREFIX)) return true; if (jj_scan_token(PNAME_NS)) return true; @@ -6723,6 +6746,11 @@ private boolean jj_3R_135() { return false; } + private boolean jj_3R_133() { + if (jj_scan_token(LPAREN)) return true; + return false; + } + private boolean jj_3R_103() { Token xsp; xsp = jj_scanpos; @@ -6747,11 +6775,6 @@ private boolean jj_3R_44() { return false; } - private boolean jj_3R_133() { - if (jj_scan_token(LPAREN)) return true; - return false; - } - private boolean jj_3R_109() { Token xsp; xsp = jj_scanpos; @@ -7058,10 +7081,10 @@ private static void jj_la1_init_3() { jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0xefffffff,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0x0,0xefffffff,0xefffffff,0xefffffff,0x0,0xefffffff,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0xefffffff,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_4() { - jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7000000,0x0,0x7000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x213ff8,0x213ff8,0x8000,0x20000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x200000,0x8,0x18,0x400000,0x0,0x0,0x80000,0x180000,0xff000003,0x0,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0xff000003,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x8000,0x0,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0xff000003,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0xf8000000,0xf8000000,0x0,0x0,0xf8000000,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000000,0x7000000,0x38000000,0xc0000000,0x3,0x0,0x7000000,0x0,0x0,0x0,}; + jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x213ff8,0x213ff8,0x8000,0x20000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x200000,0x8,0x18,0x400000,0x0,0x0,0x80000,0x180000,0xff000003,0x0,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0xff000003,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x8000,0x0,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0xff000003,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0xf8000000,0xf8000000,0x0,0x0,0xf8000000,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000000,0x7000000,0x38000000,0xc0000000,0x3,0x0,0x7000000,0x0,0x0,0x0,}; } private static void jj_la1_init_5() { - jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e1,0x0,0x3e1,0x3e1,0x3e1,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x1e0,0x40000,0x1e0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x200,0x200,0x0,0x200,0x200,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14be1,0x0,0x80000,0x14be1,0x14be1,0x14be1,0x1000,0x80000,0x14be1,0x0,0x14be1,0x80000,0x0,0x14be1,0x1000,0x80000,0x14be1,0x14be1,0x80000,0x1000,0x0,0xa00,0x101e1,0x0,0xa00,0xa00,0x101e1,0xa00,0x101e1,0x0,0x200,0x0,0x40000,0xa00,0x40000,0xa00,0x80000,0x14be1,0x0,0x20000,0x0,0x0,0x40000,0x14be1,0x4000200,0x4000200,0x20000,0x4000200,0x4000200,0x40000,0x0,0x0,0x0,0x80001000,0x4000200,0x2000,0x42000,0x80040000,0x80001000,0x4000200,0x0,0x0,0x200,0x0,0x0,0x4200,0x4200,0x14be1,0x14be1,0x14be1,0x14be1,0x109e1,0x0,0x10000,0x0,0x109e1,0x20000000,0x40000000,0x3f00000,0x3f00000,0x80000001,0x1,0x0,0x0,0x80000001,0x0,0x0,0x840003e1,0x3e1,0xa00,0x40000,0x0,0x40000,0x40000,0x40000,0x0,0x840003e1,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa00,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x1e0,0x0,0x0,0x0,0x10000,}; + jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e1,0x0,0x3e1,0x3e1,0x3e1,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x1e1,0x40000,0x1e1,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x200,0x200,0x0,0x200,0x200,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14be1,0x0,0x80000,0x14be1,0x14be1,0x14be1,0x1000,0x80000,0x14be1,0x0,0x14be1,0x80000,0x0,0x14be1,0x1000,0x80000,0x14be1,0x14be1,0x80000,0x1000,0x0,0xa00,0x101e1,0x0,0xa00,0xa00,0x101e1,0xa00,0x101e1,0x0,0x200,0x0,0x40000,0xa00,0x40000,0xa00,0x80000,0x14be1,0x0,0x20000,0x0,0x0,0x40000,0x14be1,0x4000200,0x4000200,0x20000,0x4000200,0x4000200,0x40000,0x0,0x0,0x0,0x80001000,0x4000200,0x2000,0x42000,0x80040000,0x80001000,0x4000200,0x0,0x0,0x200,0x0,0x0,0x4200,0x4200,0x14be1,0x14be1,0x14be1,0x14be1,0x109e1,0x0,0x10000,0x0,0x109e1,0x20000000,0x40000000,0x3f00000,0x3f00000,0x80000001,0x1,0x0,0x0,0x80000001,0x0,0x0,0x840003e1,0x3e1,0xa00,0x40000,0x0,0x40000,0x40000,0x40000,0x0,0x840003e1,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa00,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x1e0,0x0,0x0,0x0,0x10000,}; } private static void jj_la1_init_6() { jj_la1_6 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x0,0x80,0x80,0x0,0x40,0x84,0x84,0x402,0x80,0x0,0x0,0x2,0x402,0x0,0x40,0x80,0x80,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x6,0x6,0x1,0x6,0x6,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/engine/TS_Engine.java b/jena-arq/src/test/java/org/apache/jena/sparql/engine/TS_Engine.java index 06c91a1eef4..c1ff26f722a 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/engine/TS_Engine.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/engine/TS_Engine.java @@ -35,6 +35,7 @@ , TestQueryEngineHTTP.class , TestQueryEngineMultiThreaded.class , TestJsonIterator.class + , TestJsonEval.class }) public class TS_Engine {} diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonEval.java b/jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonEval.java new file mode 100644 index 00000000000..38caf4085ac --- /dev/null +++ b/jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonEval.java @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.sparql.engine; + +import static org.junit.Assert.assertEquals; + +import org.apache.jena.atlas.json.JSON; +import org.apache.jena.atlas.json.JsonValue; +import org.apache.jena.query.*; +import org.apache.jena.sparql.core.DatasetGraph; +import org.apache.jena.sparql.core.DatasetGraphZero; +import org.junit.Test; + +public class TestJsonEval { + + @Test public void json_eval_01() { + test("JSON { 'x' : ?x } WHERE { VALUES ?x { 'X' } }", + "[ { 'x' : 'X' } ]"); + } + + @Test public void json_eval_02() { + test("JSON { 'x' : ?x } WHERE { VALUES ?x { 'X' 'Y' } }", + "[ { 'x' : 'X' } , {'x' : 'Y' }]"); + } + + @Test public void json_eval_03() { + test("JSON { 's' : 'FOO' } WHERE { }", + "[ { 's' : 'FOO' } ]"); + } + + @Test public void json_eval_04() { + test("JSON { 'F' : 'string' } WHERE { }", + "[ { 'F' : 'string' } ]"); + } + + @Test public void json_eval_05() { + test("JSON { 'x' : 123 } WHERE { }", + "[ { 'x' : 123 }]"); + } + + private void test(String queryString, String jsonExpected) { + Query query = QueryFactory.create(queryString, Syntax.syntaxARQ); + DatasetGraph dsg = new DatasetGraphZero(); + Dataset ds = DatasetFactory.wrap(dsg); + try ( QueryExecution qExec = QueryExecutionFactory.create(query, ds) ) { + JsonValue jvGot = qExec.execJson() ; + JsonValue jvExpected = JSON.parseAny(jsonExpected) ; + assertEquals(jvExpected, jvGot); + } + } +} \ No newline at end of file From 6a28c5dec579a27e6e9dec0bd2e6473a8415d5d2 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Wed, 18 Apr 2018 23:23:58 +1200 Subject: [PATCH 14/18] JENA-632: Add more tests with double and negative value --- .../org/apache/jena/sparql/engine/TestJsonEval.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonEval.java b/jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonEval.java index 38caf4085ac..47c8548da7e 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonEval.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/engine/TestJsonEval.java @@ -54,6 +54,16 @@ public class TestJsonEval { "[ { 'x' : 123 }]"); } + @Test public void json_eval_06() { + test("JSON { 'x' : 123.5 } WHERE { }", + "[ { 'x' : 123.5 }]"); + } + + @Test public void json_eval_07() { + test("JSON { 'x' : -10 } WHERE { }", + "[ { 'x' : -10 }]"); + } + private void test(String queryString, String jsonExpected) { Query query = QueryFactory.create(queryString, Syntax.syntaxARQ); DatasetGraph dsg = new DatasetGraphZero(); From 470e08391f07dd2c4df40e520192b997bd16833f Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Wed, 25 Apr 2018 20:11:32 +1200 Subject: [PATCH 15/18] JENA-632: avoid code duplication by creating a function in the grammar for JsonObjectMember --- jena-arq/Grammar/arq.jj | 22 +- jena-arq/Grammar/master.jj | 24 +- .../jena/sparql/lang/arq/ARQParser.java | 465 ++++++++---------- 3 files changed, 229 insertions(+), 282 deletions(-) diff --git a/jena-arq/Grammar/arq.jj b/jena-arq/Grammar/arq.jj index 284ffd3513d..d43d40c36a3 100644 --- a/jena-arq/Grammar/arq.jj +++ b/jena-arq/Grammar/arq.jj @@ -184,10 +184,15 @@ void JsonQuery() : {} WhereClause() SolutionModifier() } -void JsonClause() : { Node o ; String s ; Token t; Var v; } +void JsonClause() : {} { { getQuery().setQueryJsonType() ; } + JsonObjectMember() ( JsonObjectMember() ) * + +} +void JsonObjectMember() : { Node o ; String s ; Token t; } +{ s = String() t = < PNAME_NS > { if ( ! t.image.equals(":") ) @@ -199,21 +204,6 @@ void JsonClause() : { Node o ; String s ; Token t; Var v; } | o = NumericLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } | o = BooleanLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } ) - ( - s = String() - t = < PNAME_NS > { - if ( ! t.image.equals(":") ) - throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; - } - ( - o = Var() { getQuery().addResultVar((Var)o) ; getQuery().addJsonMapping(s, o) ; } - | o = RDFLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } - | o = NumericLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } - | o = BooleanLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } - ) - )* - - { v = null ; } } void DatasetClause() : {} { diff --git a/jena-arq/Grammar/master.jj b/jena-arq/Grammar/master.jj index eb8b8515e3d..4ea906e7746 100644 --- a/jena-arq/Grammar/master.jj +++ b/jena-arq/Grammar/master.jj @@ -335,10 +335,16 @@ void JsonQuery() : {} SolutionModifier() } -void JsonClause() : { Node o ; String s ; Token t; Var v; } +void JsonClause() : {} { { getQuery().setQueryJsonType() ; } + JsonObjectMember() ( JsonObjectMember() ) * + +} + +void JsonObjectMember() : { Node o ; String s ; Token t; } +{ s = String() // PNAME_NS would eval true before COLON (default namescape) so we make sure we got what we were expecting t = < PNAME_NS > { @@ -351,22 +357,8 @@ void JsonClause() : { Node o ; String s ; Token t; Var v; } | o = NumericLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } | o = BooleanLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } ) - ( - s = String() - t = < PNAME_NS > { - if ( ! t.image.equals(":") ) - throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; - } - ( - o = Var() { getQuery().addResultVar((Var)o) ; getQuery().addJsonMapping(s, o) ; } - | o = RDFLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } - | o = NumericLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } - | o = BooleanLiteral() { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; } - ) - )* - - { v = null ; } } + #endif // ---- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java index 254ae406a77..c798218ef01 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParser.java @@ -682,10 +682,28 @@ final public void JsonQuery() throws ParseException { } final public void JsonClause() throws ParseException { - Node o ; String s ; Token t; Var v; jj_consume_token(JSON); getQuery().setQueryJsonType() ; jj_consume_token(LBRACE); + JsonObjectMember(); + label_10: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[21] = jj_gen; + break label_10; + } + jj_consume_token(COMMA); + JsonObjectMember(); + } + jj_consume_token(RBRACE); + } + + final public void JsonObjectMember() throws ParseException { + Node o ; String s ; Token t; s = String(); t = jj_consume_token(PNAME_NS); if ( ! t.image.equals(":") ) @@ -721,63 +739,10 @@ final public void JsonClause() throws ParseException { getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; break; default: - jj_la1[21] = jj_gen; + jj_la1[22] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_10: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case COMMA: - ; - break; - default: - jj_la1[22] = jj_gen; - break label_10; - } - jj_consume_token(COMMA); - s = String(); - t = jj_consume_token(PNAME_NS); - if ( ! t.image.equals(":") ) - throwParseException("Prefix name expression not legal at this point : "+t.image, t.beginLine, t.beginColumn) ; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case VAR1: - case VAR2: - o = Var(); - getQuery().addResultVar((Var)o) ; getQuery().addJsonMapping(s, o) ; - break; - case STRING_LITERAL1: - case STRING_LITERAL2: - case STRING_LITERAL_LONG1: - case STRING_LITERAL_LONG2: - o = RDFLiteral(); - getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; - break; - case INTEGER: - case DECIMAL: - case DOUBLE: - case INTEGER_POSITIVE: - case DECIMAL_POSITIVE: - case DOUBLE_POSITIVE: - case INTEGER_NEGATIVE: - case DECIMAL_NEGATIVE: - case DOUBLE_NEGATIVE: - o = NumericLiteral(); - getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; - break; - case TRUE: - case FALSE: - o = BooleanLiteral(); - getQuery().addResultVar(s, NodeValue.makeNode(o)) ; getQuery().addJsonMapping(s, o) ; - break; - default: - jj_la1[23] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - jj_consume_token(RBRACE); - v = null ; } final public void DatasetClause() throws ParseException { @@ -792,7 +757,7 @@ final public void DatasetClause() throws ParseException { NamedGraphClause(); break; default: - jj_la1[24] = jj_gen; + jj_la1[23] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -825,7 +790,7 @@ final public void WhereClause() throws ParseException { jj_consume_token(WHERE); break; default: - jj_la1[25] = jj_gen; + jj_la1[24] = jj_gen; ; } startWherePattern() ; @@ -840,7 +805,7 @@ final public void SolutionModifier() throws ParseException { GroupClause(); break; default: - jj_la1[26] = jj_gen; + jj_la1[25] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -848,7 +813,7 @@ final public void SolutionModifier() throws ParseException { HavingClause(); break; default: - jj_la1[27] = jj_gen; + jj_la1[26] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -856,7 +821,7 @@ final public void SolutionModifier() throws ParseException { OrderClause(); break; default: - jj_la1[28] = jj_gen; + jj_la1[27] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -865,7 +830,7 @@ final public void SolutionModifier() throws ParseException { LimitOffsetClauses(); break; default: - jj_la1[29] = jj_gen; + jj_la1[28] = jj_gen; ; } } @@ -956,7 +921,7 @@ final public void GroupClause() throws ParseException { ; break; default: - jj_la1[30] = jj_gen; + jj_la1[29] = jj_gen; break label_11; } } @@ -1053,7 +1018,7 @@ final public void GroupCondition() throws ParseException { v = Var(); break; default: - jj_la1[31] = jj_gen; + jj_la1[30] = jj_gen; ; } jj_consume_token(RPAREN); @@ -1065,7 +1030,7 @@ final public void GroupCondition() throws ParseException { getQuery().addGroupBy(v) ; break; default: - jj_la1[32] = jj_gen; + jj_la1[31] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1155,7 +1120,7 @@ final public void HavingClause() throws ParseException { ; break; default: - jj_la1[33] = jj_gen; + jj_la1[32] = jj_gen; break label_12; } } @@ -1257,7 +1222,7 @@ final public void OrderClause() throws ParseException { ; break; default: - jj_la1[34] = jj_gen; + jj_la1[33] = jj_gen; break label_13; } } @@ -1280,7 +1245,7 @@ final public void OrderCondition() throws ParseException { direction = Query.ORDER_DESCENDING ; break; default: - jj_la1[35] = jj_gen; + jj_la1[34] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1444,13 +1409,13 @@ final public void OrderCondition() throws ParseException { v = Var(); break; default: - jj_la1[36] = jj_gen; + jj_la1[35] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[37] = jj_gen; + jj_la1[36] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1469,7 +1434,7 @@ final public void LimitOffsetClauses() throws ParseException { OffsetClause(); break; default: - jj_la1[38] = jj_gen; + jj_la1[37] = jj_gen; ; } break; @@ -1480,12 +1445,12 @@ final public void LimitOffsetClauses() throws ParseException { LimitClause(); break; default: - jj_la1[39] = jj_gen; + jj_la1[38] = jj_gen; ; } break; default: - jj_la1[40] = jj_gen; + jj_la1[39] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1515,7 +1480,7 @@ final public void ValuesClause() throws ParseException { finishValuesClause(t.beginLine, t.beginColumn) ; break; default: - jj_la1[41] = jj_gen; + jj_la1[40] = jj_gen; ; } } @@ -1554,12 +1519,12 @@ final public void Update() throws ParseException { Prologue(); break; default: - jj_la1[42] = jj_gen; + jj_la1[41] = jj_gen; ; } break; default: - jj_la1[43] = jj_gen; + jj_la1[42] = jj_gen; ; } } @@ -1604,7 +1569,7 @@ final public void Update1() throws ParseException { DeleteData(); break; default: - jj_la1[44] = jj_gen; + jj_la1[43] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1621,7 +1586,7 @@ final public Update Load() throws ParseException { silent = true ; break; default: - jj_la1[45] = jj_gen; + jj_la1[44] = jj_gen; ; } url = iri(); @@ -1631,7 +1596,7 @@ final public Update Load() throws ParseException { dest = GraphRef(); break; default: - jj_la1[46] = jj_gen; + jj_la1[45] = jj_gen; ; } {if (true) return new UpdateLoad(url, dest, silent) ;} @@ -1647,7 +1612,7 @@ final public Update Clear() throws ParseException { silent = true ; break; default: - jj_la1[47] = jj_gen; + jj_la1[46] = jj_gen; ; } target = GraphRefAll(); @@ -1664,7 +1629,7 @@ final public Update Drop() throws ParseException { silent = true ; break; default: - jj_la1[48] = jj_gen; + jj_la1[47] = jj_gen; ; } target = GraphRefAll(); @@ -1681,7 +1646,7 @@ final public Update Create() throws ParseException { silent=true ; break; default: - jj_la1[49] = jj_gen; + jj_la1[48] = jj_gen; ; } iri = GraphRef(); @@ -1698,7 +1663,7 @@ final public Update Add() throws ParseException { silent=true ; break; default: - jj_la1[50] = jj_gen; + jj_la1[49] = jj_gen; ; } src = GraphOrDefault(); @@ -1717,7 +1682,7 @@ final public Update Move() throws ParseException { silent=true ; break; default: - jj_la1[51] = jj_gen; + jj_la1[50] = jj_gen; ; } src = GraphOrDefault(); @@ -1736,7 +1701,7 @@ final public Update Copy() throws ParseException { silent=true ; break; default: - jj_la1[52] = jj_gen; + jj_la1[51] = jj_gen; ; } src = GraphOrDefault(); @@ -1788,7 +1753,7 @@ final public Update Modify() throws ParseException { Node n = createNode(iri) ; up.setWithIRI(n) ; break; default: - jj_la1[53] = jj_gen; + jj_la1[52] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1799,7 +1764,7 @@ final public Update Modify() throws ParseException { InsertClause(up); break; default: - jj_la1[54] = jj_gen; + jj_la1[53] = jj_gen; ; } break; @@ -1807,7 +1772,7 @@ final public Update Modify() throws ParseException { InsertClause(up); break; default: - jj_la1[55] = jj_gen; + jj_la1[54] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1818,7 +1783,7 @@ final public Update Modify() throws ParseException { ; break; default: - jj_la1[56] = jj_gen; + jj_la1[55] = jj_gen; break label_15; } UsingClause(up); @@ -1869,7 +1834,7 @@ final public void UsingClause(UpdateWithUsing update) throws ParseException { n = createNode(iri) ; update.addUsingNamed(n) ; break; default: - jj_la1[57] = jj_gen; + jj_la1[56] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1891,14 +1856,14 @@ final public Target GraphOrDefault() throws ParseException { jj_consume_token(GRAPH); break; default: - jj_la1[58] = jj_gen; + jj_la1[57] = jj_gen; ; } iri = iri(); {if (true) return Target.create(createNode(iri)) ;} break; default: - jj_la1[59] = jj_gen; + jj_la1[58] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1933,7 +1898,7 @@ final public Target GraphRefAll() throws ParseException { {if (true) return Target.ALL ;} break; default: - jj_la1[60] = jj_gen; + jj_la1[59] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1982,7 +1947,7 @@ final public void Quads(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[61] = jj_gen; + jj_la1[60] = jj_gen; ; } label_16: @@ -1992,7 +1957,7 @@ final public void Quads(QuadAccSink acc) throws ParseException { ; break; default: - jj_la1[62] = jj_gen; + jj_la1[61] = jj_gen; break label_16; } QuadsNotTriples(acc); @@ -2001,7 +1966,7 @@ final public void Quads(QuadAccSink acc) throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[63] = jj_gen; + jj_la1[62] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2033,7 +1998,7 @@ final public void Quads(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[64] = jj_gen; + jj_la1[63] = jj_gen; ; } } @@ -2074,7 +2039,7 @@ final public void QuadsNotTriples(QuadAccSink acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[65] = jj_gen; + jj_la1[64] = jj_gen; ; } jj_consume_token(RBRACE); @@ -2111,7 +2076,7 @@ final public void ConstructQuads(QuadAcc acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[66] = jj_gen; + jj_la1[65] = jj_gen; ; } label_17: @@ -2122,7 +2087,7 @@ final public void ConstructQuads(QuadAcc acc) throws ParseException { ; break; default: - jj_la1[67] = jj_gen; + jj_la1[66] = jj_gen; break label_17; } ConstructQuadsNotTriples(acc); @@ -2131,7 +2096,7 @@ final public void ConstructQuads(QuadAcc acc) throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[68] = jj_gen; + jj_la1[67] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2163,7 +2128,7 @@ final public void ConstructQuads(QuadAcc acc) throws ParseException { TriplesTemplate(acc); break; default: - jj_la1[69] = jj_gen; + jj_la1[68] = jj_gen; ; } } @@ -2178,7 +2143,7 @@ final public void ConstructQuadsNotTriples(QuadAccSink acc) throws ParseExceptio gn = VarOrBlankNodeOrIri(); break; default: - jj_la1[70] = jj_gen; + jj_la1[69] = jj_gen; ; } setAccGraph(acc, gn) ; @@ -2212,7 +2177,7 @@ final public void ConstructQuadsNotTriples(QuadAccSink acc) throws ParseExceptio TriplesTemplate(acc); break; default: - jj_la1[71] = jj_gen; + jj_la1[70] = jj_gen; ; } jj_consume_token(RBRACE); @@ -2236,7 +2201,7 @@ final public void TriplesTemplate(TripleCollector acc) throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[72] = jj_gen; + jj_la1[71] = jj_gen; ; } } @@ -2253,7 +2218,7 @@ final public Element GroupGraphPattern() throws ParseException { el = new ElementSubQuery(q) ; break; default: - jj_la1[73] = jj_gen; + jj_la1[72] = jj_gen; el = GroupGraphPatternSub(); } jj_consume_token(RBRACE); @@ -2297,7 +2262,7 @@ final public Element GroupGraphPatternSub() throws ParseException { elg.addElement(el) ; break; default: - jj_la1[74] = jj_gen; + jj_la1[73] = jj_gen; ; } label_19: @@ -2317,7 +2282,7 @@ final public Element GroupGraphPatternSub() throws ParseException { ; break; default: - jj_la1[75] = jj_gen; + jj_la1[74] = jj_gen; break label_19; } el = GraphPatternNotTriples(); @@ -2327,7 +2292,7 @@ final public Element GroupGraphPatternSub() throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[76] = jj_gen; + jj_la1[75] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2362,7 +2327,7 @@ final public Element GroupGraphPatternSub() throws ParseException { elg.addElement(el) ; break; default: - jj_la1[77] = jj_gen; + jj_la1[76] = jj_gen; ; } } @@ -2407,12 +2372,12 @@ final public Element TriplesBlock(ElementPathBlock acc) throws ParseException { TriplesBlock(acc); break; default: - jj_la1[78] = jj_gen; + jj_la1[77] = jj_gen; ; } break; default: - jj_la1[79] = jj_gen; + jj_la1[78] = jj_gen; ; } {if (true) return acc ;} @@ -2456,7 +2421,7 @@ final public Element GraphPatternNotTriples() throws ParseException { el = NotExistsElt(); break; default: - jj_la1[80] = jj_gen; + jj_la1[79] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2490,7 +2455,7 @@ final public Element ServiceGraphPattern() throws ParseException { silent=true; break; default: - jj_la1[81] = jj_gen; + jj_la1[80] = jj_gen; ; } n = VarOrIri(); @@ -2534,7 +2499,7 @@ final public void DataBlock() throws ParseException { InlineDataFull(); break; default: - jj_la1[82] = jj_gen; + jj_la1[81] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2572,7 +2537,7 @@ final public void InlineDataOneVar() throws ParseException { ; break; default: - jj_la1[83] = jj_gen; + jj_la1[82] = jj_gen; break label_20; } n = DataBlockValue(); @@ -2599,7 +2564,7 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[84] = jj_gen; + jj_la1[83] = jj_gen; break label_21; } v = Var(); @@ -2608,7 +2573,7 @@ final public void InlineDataFull() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[85] = jj_gen; + jj_la1[84] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2621,7 +2586,7 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[86] = jj_gen; + jj_la1[85] = jj_gen; break label_22; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2656,7 +2621,7 @@ final public void InlineDataFull() throws ParseException { ; break; default: - jj_la1[87] = jj_gen; + jj_la1[86] = jj_gen; break label_23; } n = DataBlockValue(); @@ -2673,7 +2638,7 @@ final public void InlineDataFull() throws ParseException { finishDataBlockValueRow(beginLine, beginColumn) ; break; default: - jj_la1[88] = jj_gen; + jj_la1[87] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2724,7 +2689,7 @@ final public Node DataBlockValue() throws ParseException { {if (true) return null ;} break; default: - jj_la1[89] = jj_gen; + jj_la1[88] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2778,7 +2743,7 @@ final public Element GroupOrUnionGraphPattern() throws ParseException { ; break; default: - jj_la1[90] = jj_gen; + jj_la1[89] = jj_gen; break label_24; } jj_consume_token(UNION); @@ -2886,7 +2851,7 @@ final public Expr Constraint() throws ParseException { c = FunctionCall(); break; default: - jj_la1[91] = jj_gen; + jj_la1[90] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2927,7 +2892,7 @@ final public Args ArgList() throws ParseException { beginLine, beginColumn) ; break; default: - jj_la1[92] = jj_gen; + jj_la1[91] = jj_gen; ; } expr = Expression(); @@ -2939,7 +2904,7 @@ final public Args ArgList() throws ParseException { ; break; default: - jj_la1[93] = jj_gen; + jj_la1[92] = jj_gen; break label_25; } jj_consume_token(COMMA); @@ -2949,7 +2914,7 @@ final public Args ArgList() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[94] = jj_gen; + jj_la1[93] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2974,7 +2939,7 @@ final public ExprList ExpressionList() throws ParseException { ; break; default: - jj_la1[95] = jj_gen; + jj_la1[94] = jj_gen; break label_26; } jj_consume_token(COMMA); @@ -2984,7 +2949,7 @@ final public ExprList ExpressionList() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[96] = jj_gen; + jj_la1[95] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3021,7 +2986,7 @@ final public void ConstructTriples(TripleCollector acc) throws ParseException { jj_consume_token(DOT); break; default: - jj_la1[97] = jj_gen; + jj_la1[96] = jj_gen; ; } } @@ -3063,7 +3028,7 @@ final public void TriplesSameSubject(TripleCollector acc) throws ParseException insert(acc, tempAcc) ; break; default: - jj_la1[98] = jj_gen; + jj_la1[97] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3080,7 +3045,7 @@ final public void PropertyList(Node s, TripleCollector acc) throws ParseExceptio PropertyListNotEmpty(s, acc); break; default: - jj_la1[99] = jj_gen; + jj_la1[98] = jj_gen; ; } } @@ -3096,7 +3061,7 @@ final public void PropertyListNotEmpty(Node s, TripleCollector acc) throws Parse ; break; default: - jj_la1[100] = jj_gen; + jj_la1[99] = jj_gen; break label_28; } jj_consume_token(SEMICOLON); @@ -3111,7 +3076,7 @@ final public void PropertyListNotEmpty(Node s, TripleCollector acc) throws Parse ObjectList(s, p, null, acc); break; default: - jj_la1[101] = jj_gen; + jj_la1[100] = jj_gen; ; } } @@ -3132,7 +3097,7 @@ final public Node Verb() throws ParseException { p = nRDFtype ; break; default: - jj_la1[102] = jj_gen; + jj_la1[101] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3150,7 +3115,7 @@ final public void ObjectList(Node s, Node p, Path path, TripleCollector acc) thr ; break; default: - jj_la1[103] = jj_gen; + jj_la1[102] = jj_gen; break label_29; } jj_consume_token(COMMA); @@ -3202,7 +3167,7 @@ final public void TriplesSameSubjectPath(TripleCollector acc) throws ParseExcept insert(acc, tempAcc) ; break; default: - jj_la1[104] = jj_gen; + jj_la1[103] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3225,7 +3190,7 @@ final public void PropertyListPath(Node s, TripleCollector acc) throws ParseExce PropertyListPathNotEmpty(s, acc); break; default: - jj_la1[105] = jj_gen; + jj_la1[104] = jj_gen; ; } } @@ -3250,7 +3215,7 @@ final public void PropertyListPathNotEmpty(Node s, TripleCollector acc) throws P p = VerbSimple(); break; default: - jj_la1[106] = jj_gen; + jj_la1[105] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3262,7 +3227,7 @@ final public void PropertyListPathNotEmpty(Node s, TripleCollector acc) throws P ; break; default: - jj_la1[107] = jj_gen; + jj_la1[106] = jj_gen; break label_30; } jj_consume_token(SEMICOLON); @@ -3298,14 +3263,14 @@ final public void PropertyListPathNotEmpty(Node s, TripleCollector acc) throws P p = VerbSimple(); break; default: - jj_la1[108] = jj_gen; + jj_la1[107] = jj_gen; jj_consume_token(-1); throw new ParseException(); } ObjectListPath(s, p, path, acc); break; default: - jj_la1[109] = jj_gen; + jj_la1[108] = jj_gen; ; } } @@ -3335,7 +3300,7 @@ final public void ObjectListPath(Node s, Node p, Path path, TripleCollector acc) ; break; default: - jj_la1[110] = jj_gen; + jj_la1[109] = jj_gen; break label_31; } jj_consume_token(COMMA); @@ -3376,7 +3341,7 @@ final public Path PathAlternative() throws ParseException { ; break; default: - jj_la1[111] = jj_gen; + jj_la1[110] = jj_gen; break label_32; } jj_consume_token(VBAR); @@ -3398,7 +3363,7 @@ final public Path PathSequence() throws ParseException { ; break; default: - jj_la1[112] = jj_gen; + jj_la1[111] = jj_gen; break label_33; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -3413,7 +3378,7 @@ final public Path PathSequence() throws ParseException { p1 = PathFactory.pathSeq(p1, new P_Inverse(p2)) ; break; default: - jj_la1[113] = jj_gen; + jj_la1[112] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3433,7 +3398,7 @@ final public Path PathElt() throws ParseException { p = PathMod(p); break; default: - jj_la1[114] = jj_gen; + jj_la1[113] = jj_gen; ; } {if (true) return p ;} @@ -3460,7 +3425,7 @@ final public Path PathEltOrInverse() throws ParseException { p = PathFactory.pathInverse(p) ; break; default: - jj_la1[115] = jj_gen; + jj_la1[114] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3512,7 +3477,7 @@ final public Path PathMod(Path p) throws ParseException { {if (true) return PathFactory.pathMod(p, i1, i2) ;} break; default: - jj_la1[116] = jj_gen; + jj_la1[115] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3522,7 +3487,7 @@ final public Path PathMod(Path p) throws ParseException { {if (true) return PathFactory.pathFixedLength(p, i1) ;} break; default: - jj_la1[117] = jj_gen; + jj_la1[116] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3534,13 +3499,13 @@ final public Path PathMod(Path p) throws ParseException { {if (true) return PathFactory.pathMod(p, PathFactory.UNSET, i2) ;} break; default: - jj_la1[118] = jj_gen; + jj_la1[117] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[119] = jj_gen; + jj_la1[118] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3591,7 +3556,7 @@ final public Path PathPrimary() throws ParseException { jj_consume_token(RPAREN); break; default: - jj_la1[120] = jj_gen; + jj_la1[119] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3628,7 +3593,7 @@ final public Path PathNegatedPropertySet() throws ParseException { ; break; default: - jj_la1[121] = jj_gen; + jj_la1[120] = jj_gen; break label_34; } jj_consume_token(VBAR); @@ -3637,13 +3602,13 @@ final public Path PathNegatedPropertySet() throws ParseException { } break; default: - jj_la1[122] = jj_gen; + jj_la1[121] = jj_gen; ; } jj_consume_token(RPAREN); break; default: - jj_la1[123] = jj_gen; + jj_la1[122] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3678,13 +3643,13 @@ final public P_Path0 PathOneInPropertySet() throws ParseException { {if (true) return new P_ReverseLink(nRDFtype) ;} break; default: - jj_la1[124] = jj_gen; + jj_la1[123] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[125] = jj_gen; + jj_la1[124] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3710,7 +3675,7 @@ final public Node TriplesNode(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[126] = jj_gen; + jj_la1[125] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3739,7 +3704,7 @@ final public Node TriplesNodePath(TripleCollectorMark acc) throws ParseException {if (true) return n ;} break; default: - jj_la1[127] = jj_gen; + jj_la1[126] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3800,7 +3765,7 @@ final public Node Collection(TripleCollectorMark acc) throws ParseException { ; break; default: - jj_la1[128] = jj_gen; + jj_la1[127] = jj_gen; break label_35; } } @@ -3855,7 +3820,7 @@ final public Node CollectionPath(TripleCollectorMark acc) throws ParseException ; break; default: - jj_la1[129] = jj_gen; + jj_la1[128] = jj_gen; break label_36; } } @@ -3901,7 +3866,7 @@ final public Node GraphNode(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[130] = jj_gen; + jj_la1[129] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3943,7 +3908,7 @@ final public Node GraphNodePath(TripleCollectorMark acc) throws ParseException { {if (true) return n ;} break; default: - jj_la1[131] = jj_gen; + jj_la1[130] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3981,7 +3946,7 @@ final public Node VarOrTerm() throws ParseException { n = GraphTerm(); break; default: - jj_la1[132] = jj_gen; + jj_la1[131] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4003,7 +3968,7 @@ final public Node VarOrIri() throws ParseException { n = createNode(iri) ; break; default: - jj_la1[133] = jj_gen; + jj_la1[132] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4029,7 +3994,7 @@ final public Node VarOrBlankNodeOrIri() throws ParseException { n = createNode(iri) ; break; default: - jj_la1[134] = jj_gen; + jj_la1[133] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4047,7 +4012,7 @@ final public Var Var() throws ParseException { t = jj_consume_token(VAR2); break; default: - jj_la1[135] = jj_gen; + jj_la1[134] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4098,7 +4063,7 @@ final public Node GraphTerm() throws ParseException { {if (true) return nRDFnil ;} break; default: - jj_la1[136] = jj_gen; + jj_la1[135] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4122,7 +4087,7 @@ final public Expr ConditionalOrExpression() throws ParseException { ; break; default: - jj_la1[137] = jj_gen; + jj_la1[136] = jj_gen; break label_37; } jj_consume_token(SC_OR); @@ -4143,7 +4108,7 @@ final public Expr ConditionalAndExpression() throws ParseException { ; break; default: - jj_la1[138] = jj_gen; + jj_la1[137] = jj_gen; break label_38; } jj_consume_token(SC_AND); @@ -4216,13 +4181,13 @@ final public Expr RelationalExpression() throws ParseException { expr1 = new E_NotOneOf(expr1, a) ; break; default: - jj_la1[139] = jj_gen; + jj_la1[138] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[140] = jj_gen; + jj_la1[139] = jj_gen; ; } {if (true) return expr1 ;} @@ -4253,7 +4218,7 @@ final public Expr AdditiveExpression() throws ParseException { ; break; default: - jj_la1[141] = jj_gen; + jj_la1[140] = jj_gen; break label_39; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -4291,7 +4256,7 @@ final public Expr AdditiveExpression() throws ParseException { addition = false ; break; default: - jj_la1[142] = jj_gen; + jj_la1[141] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4303,7 +4268,7 @@ final public Expr AdditiveExpression() throws ParseException { ; break; default: - jj_la1[143] = jj_gen; + jj_la1[142] = jj_gen; break label_40; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -4318,7 +4283,7 @@ final public Expr AdditiveExpression() throws ParseException { expr2 = new E_Divide(expr2, expr3) ; break; default: - jj_la1[144] = jj_gen; + jj_la1[143] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4329,7 +4294,7 @@ final public Expr AdditiveExpression() throws ParseException { expr1 = new E_Subtract(expr1, expr2) ; break; default: - jj_la1[145] = jj_gen; + jj_la1[144] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4349,7 +4314,7 @@ final public Expr MultiplicativeExpression() throws ParseException { ; break; default: - jj_la1[146] = jj_gen; + jj_la1[145] = jj_gen; break label_41; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -4364,7 +4329,7 @@ final public Expr MultiplicativeExpression() throws ParseException { expr1 = new E_Divide(expr1, expr2) ; break; default: - jj_la1[147] = jj_gen; + jj_la1[146] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4486,7 +4451,7 @@ final public Expr UnaryExpression() throws ParseException { {if (true) return expr ;} break; default: - jj_la1[148] = jj_gen; + jj_la1[147] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4609,7 +4574,7 @@ final public Expr PrimaryExpression() throws ParseException { {if (true) return asExpr(gn) ;} break; default: - jj_la1[149] = jj_gen; + jj_la1[148] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4711,7 +4676,7 @@ final public Expr BuiltInCall() throws ParseException { {if (true) return new E_BNode() ;} break; default: - jj_la1[150] = jj_gen; + jj_la1[149] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4964,7 +4929,7 @@ final public Expr BuiltInCall() throws ParseException { ; break; default: - jj_la1[151] = jj_gen; + jj_la1[150] = jj_gen; break label_42; } jj_consume_token(COMMA); @@ -5060,7 +5025,7 @@ final public Expr BuiltInCall() throws ParseException { {if (true) return expr ;} break; default: - jj_la1[152] = jj_gen; + jj_la1[151] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5080,7 +5045,7 @@ final public Expr RegexExpression() throws ParseException { flagsExpr = Expression(); break; default: - jj_la1[153] = jj_gen; + jj_la1[152] = jj_gen; ; } jj_consume_token(RPAREN); @@ -5101,7 +5066,7 @@ final public Expr SubstringExpression() throws ParseException { expr3 = Expression(); break; default: - jj_la1[154] = jj_gen; + jj_la1[153] = jj_gen; ; } jj_consume_token(RPAREN); @@ -5124,7 +5089,7 @@ final public Expr StrReplaceExpression() throws ParseException { expr4 = Expression(); break; default: - jj_la1[155] = jj_gen; + jj_la1[154] = jj_gen; ; } jj_consume_token(RPAREN); @@ -5165,7 +5130,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[156] = jj_gen; + jj_la1[155] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -5269,7 +5234,7 @@ final public Expr Aggregate() throws ParseException { expr = Expression(); break; default: - jj_la1[157] = jj_gen; + jj_la1[156] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5286,7 +5251,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[158] = jj_gen; + jj_la1[157] = jj_gen; ; } expr = Expression(); @@ -5302,7 +5267,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[159] = jj_gen; + jj_la1[158] = jj_gen; ; } expr = Expression(); @@ -5318,7 +5283,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[160] = jj_gen; + jj_la1[159] = jj_gen; ; } expr = Expression(); @@ -5334,7 +5299,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[161] = jj_gen; + jj_la1[160] = jj_gen; ; } expr = Expression(); @@ -5350,7 +5315,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[162] = jj_gen; + jj_la1[161] = jj_gen; ; } expr = Expression(); @@ -5366,7 +5331,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[163] = jj_gen; + jj_la1[162] = jj_gen; ; } expr = Expression(); @@ -5386,7 +5351,7 @@ final public Expr Aggregate() throws ParseException { ordered.add(expr2) ; break; default: - jj_la1[164] = jj_gen; + jj_la1[163] = jj_gen; ; } } else { @@ -5399,14 +5364,14 @@ final public Expr Aggregate() throws ParseException { ordered.add(expr2) ; break; default: - jj_la1[165] = jj_gen; + jj_la1[164] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } break; default: - jj_la1[166] = jj_gen; + jj_la1[165] = jj_gen; ; } jj_consume_token(RPAREN); @@ -5421,7 +5386,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[167] = jj_gen; + jj_la1[166] = jj_gen; ; } expr = Expression(); @@ -5437,7 +5402,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[168] = jj_gen; + jj_la1[167] = jj_gen; ; } expr = Expression(); @@ -5453,7 +5418,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[169] = jj_gen; + jj_la1[168] = jj_gen; ; } expr = Expression(); @@ -5469,7 +5434,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[170] = jj_gen; + jj_la1[169] = jj_gen; ; } expr = Expression(); @@ -5485,7 +5450,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[171] = jj_gen; + jj_la1[170] = jj_gen; ; } expr = Expression(); @@ -5501,7 +5466,7 @@ final public Expr Aggregate() throws ParseException { distinct = true ; break; default: - jj_la1[172] = jj_gen; + jj_la1[171] = jj_gen; ; } expr = Expression(); @@ -5517,7 +5482,7 @@ final public Expr Aggregate() throws ParseException { agg = AggregatorFactory.createCustom(iri, a) ; break; default: - jj_la1[173] = jj_gen; + jj_la1[172] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5538,7 +5503,7 @@ final public Expr iriOrFunction() throws ParseException { a = ArgList(); break; default: - jj_la1[174] = jj_gen; + jj_la1[173] = jj_gen; ; } if ( a == null ) @@ -5571,13 +5536,13 @@ final public Node RDFLiteral() throws ParseException { uri = iri(); break; default: - jj_la1[175] = jj_gen; + jj_la1[174] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[176] = jj_gen; + jj_la1[175] = jj_gen; ; } {if (true) return createLiteral(lex, lang, uri) ;} @@ -5603,7 +5568,7 @@ final public Node NumericLiteral() throws ParseException { n = NumericLiteralNegative(); break; default: - jj_la1[177] = jj_gen; + jj_la1[176] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5627,7 +5592,7 @@ final public Node NumericLiteralUnsigned() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[178] = jj_gen; + jj_la1[177] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5650,7 +5615,7 @@ final public Node NumericLiteralPositive() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[179] = jj_gen; + jj_la1[178] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5673,7 +5638,7 @@ final public Node NumericLiteralNegative() throws ParseException { {if (true) return createLiteralDouble(t.image) ;} break; default: - jj_la1[180] = jj_gen; + jj_la1[179] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5691,7 +5656,7 @@ final public Node BooleanLiteral() throws ParseException { {if (true) return XSD_FALSE ;} break; default: - jj_la1[181] = jj_gen; + jj_la1[180] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5718,7 +5683,7 @@ final public String String() throws ParseException { lex = stripQuotes3(t.image) ; break; default: - jj_la1[182] = jj_gen; + jj_la1[181] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5743,7 +5708,7 @@ final public Number Number() throws ParseException { number = doubleValue(t.image) ; break; default: - jj_la1[183] = jj_gen; + jj_la1[182] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5764,7 +5729,7 @@ final public String iri() throws ParseException { {if (true) return iri ;} break; default: - jj_la1[184] = jj_gen; + jj_la1[183] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5783,7 +5748,7 @@ final public String PrefixedName() throws ParseException { {if (true) return resolvePName(t.image, t.beginLine, t.beginColumn) ;} break; default: - jj_la1[185] = jj_gen; + jj_la1[184] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5802,7 +5767,7 @@ final public Node BlankNode() throws ParseException { {if (true) return createBNode(t.beginLine, t.beginColumn) ;} break; default: - jj_la1[186] = jj_gen; + jj_la1[185] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -6687,6 +6652,11 @@ private boolean jj_3R_45() { return false; } + private boolean jj_3R_116() { + if (jj_3R_136()) return true; + return false; + } + private boolean jj_3_4() { if (jj_scan_token(DOT)) return true; if (jj_3R_45()) return true; @@ -6708,6 +6678,13 @@ private boolean jj_3R_155() { return false; } + private boolean jj_3R_136() { + if (jj_scan_token(PREFIX)) return true; + if (jj_scan_token(PNAME_NS)) return true; + if (jj_3R_142()) return true; + return false; + } + private boolean jj_3R_148() { if (jj_3R_155()) return true; return false; @@ -6728,29 +6705,12 @@ private boolean jj_3R_147() { return false; } - private boolean jj_3R_116() { - if (jj_3R_136()) return true; - return false; - } - - private boolean jj_3R_136() { - if (jj_scan_token(PREFIX)) return true; - if (jj_scan_token(PNAME_NS)) return true; - if (jj_3R_142()) return true; - return false; - } - private boolean jj_3R_135() { if (jj_scan_token(BASE)) return true; if (jj_3R_142()) return true; return false; } - private boolean jj_3R_133() { - if (jj_scan_token(LPAREN)) return true; - return false; - } - private boolean jj_3R_103() { Token xsp; xsp = jj_scanpos; @@ -6775,6 +6735,11 @@ private boolean jj_3R_44() { return false; } + private boolean jj_3R_133() { + if (jj_scan_token(LPAREN)) return true; + return false; + } + private boolean jj_3R_109() { Token xsp; xsp = jj_scanpos; @@ -7051,7 +7016,7 @@ private boolean jj_3R_156() { private Token jj_scanpos, jj_lastpos; private int jj_la; private int jj_gen; - final private int[] jj_la1 = new int[187]; + final private int[] jj_la1 = new int[186]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -7069,25 +7034,25 @@ private boolean jj_3R_156() { jj_la1_init_6(); } private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0x1e400000,0x200,0x300000,0x300000,0x0,0x1800000,0x1800000,0x1c00,0x0,0xdc00,0xdc00,0xdc00,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0xc000,0x0,0xc000,0x1c00,0x0,0x0,0x0,0x80000000,0x60000000,0xdc00,0x0,0xdc00,0x1c00,0xdc00,0x0,0xdc00,0xdc00,0x40000000,0x20000000,0x60000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0xfc00,0x0,0x0,0xfc00,0xfc00,0xfc00,0x0,0x0,0xfc00,0x0,0xfc00,0x0,0x400000,0xfc00,0x0,0x0,0xfc00,0xfc00,0x0,0x0,0x0,0xc000,0x3c00,0xc000,0x0,0x0,0x3c00,0x0,0x3c00,0x0,0x1c00,0x800000,0x0,0x0,0x0,0x0,0x0,0xfc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0xfc00,0x88dc00,0x88dc00,0x0,0x88dc00,0x88dc00,0x0,0x0,0x0,0x0,0x0,0x881c00,0x0,0x0,0x0,0x0,0x881c00,0x0,0x81c00,0x81c00,0x81c00,0x81c00,0x0,0x0,0xfc00,0xfc00,0xfc00,0xfc00,0xfc00,0xdc00,0xfc00,0xc000,0x3c00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0xdc00,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x0,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x1800,0x2000,}; + jj_la1_0 = new int[] {0x1e400000,0x200,0x300000,0x300000,0x0,0x1800000,0x1800000,0x1c00,0x0,0xdc00,0xdc00,0xdc00,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0x0,0xc000,0x1c00,0x0,0x0,0x0,0x80000000,0x60000000,0xdc00,0x0,0xdc00,0x1c00,0xdc00,0x0,0xdc00,0xdc00,0x40000000,0x20000000,0x60000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x0,0x1c00,0x0,0xfc00,0x0,0x0,0xfc00,0xfc00,0xfc00,0x0,0x0,0xfc00,0x0,0xfc00,0x0,0x400000,0xfc00,0x0,0x0,0xfc00,0xfc00,0x0,0x0,0x0,0xc000,0x3c00,0xc000,0x0,0x0,0x3c00,0x0,0x3c00,0x0,0x1c00,0x800000,0x0,0x0,0x0,0x0,0x0,0xfc00,0x8dc00,0x0,0x8dc00,0x8dc00,0x0,0xfc00,0x88dc00,0x88dc00,0x0,0x88dc00,0x88dc00,0x0,0x0,0x0,0x0,0x0,0x881c00,0x0,0x0,0x0,0x0,0x881c00,0x0,0x81c00,0x81c00,0x81c00,0x81c00,0x0,0x0,0xfc00,0xfc00,0xfc00,0xfc00,0xfc00,0xdc00,0xfc00,0xc000,0x3c00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xdc00,0xdc00,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0xdc00,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x0,0x800000,0x800000,0x800000,0x800000,0x800000,0x800000,0x0,0x0,0x10000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00,0x1800,0x2000,}; } private static void jj_la1_init_1() { - jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x40000,0xffc30000,0xffc30000,0xffc30000,0x40,0x40,0xc0,0x0,0x0,0x40,0x80,0x40,0x40,0x0,0x0,0x0,0x20,0x80,0x80000,0x100000,0x0,0x0,0xffc30000,0x40000,0xffc30000,0xffc30000,0xffc30018,0x18,0xffc30000,0xffc30018,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x200,0x200,0x220,0x0,0x200,0x0,0x0,0x0,0x0,0x200,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x3f602,0x0,0x0,0x0,0x0,0x3f602,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x4,0x800,0xffc30000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc30000,0xffc30000,0x0,0x0,0xffc30000,0x0,0x0,0x0,0x0,0xffc30000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x40000,0xffc30000,0xffc30000,0xffc30000,0x40,0x40,0xc0,0x0,0x0,0x40,0x80,0x40,0x40,0x0,0x0,0x20,0x80,0x80000,0x100000,0x0,0x0,0xffc30000,0x40000,0xffc30000,0xffc30000,0xffc30018,0x18,0xffc30000,0xffc30018,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x200,0x200,0x220,0x0,0x200,0x0,0x0,0x0,0x0,0x200,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x3f602,0x0,0x0,0x0,0x0,0x3f602,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x4,0x800,0xffc30000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc30000,0xffc30000,0x0,0x0,0xffc30000,0x0,0x0,0x0,0x0,0xffc30000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_2() { - jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0xffff2f6f,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0x0,0xffff2f6f,0xffff2f6f,0xffff2f6f,0x0,0xffff2f6f,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000,0xc000,0x0,0xc000,0xc000,0x0,0x0,0x0,0x0,0x0,0xc000,0x0,0x0,0x0,0x0,0xc000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0xffff2f6f,0x0,0x0,0xffff2f6f,0x0,0x0,0x0,0x0,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0xffff2f6f,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0x0,0xffff2f6f,0xffff2f6f,0xffff2f6f,0x0,0xffff2f6f,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000,0xc000,0x0,0xc000,0xc000,0x0,0x0,0x0,0x0,0x0,0xc000,0x0,0x0,0x0,0x0,0xc000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff2f6f,0xffff2f6f,0x0,0x0,0xffff2f6f,0x0,0x0,0x0,0x0,0xffff2f6f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_3() { - jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0xefffffff,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0x0,0xefffffff,0xefffffff,0xefffffff,0x0,0xefffffff,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0xefffffff,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0xefffffff,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0x0,0xefffffff,0xefffffff,0xefffffff,0x0,0xefffffff,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffff,0xefffffff,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0xefffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_4() { - jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x213ff8,0x213ff8,0x8000,0x20000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x200000,0x8,0x18,0x400000,0x0,0x0,0x80000,0x180000,0xff000003,0x0,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0xff000003,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x8000,0x0,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0xff000003,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0xf8000000,0xf8000000,0x0,0x0,0xf8000000,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000000,0x7000000,0x38000000,0xc0000000,0x3,0x0,0x7000000,0x0,0x0,0x0,}; + jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x213ff8,0x213ff8,0x8000,0x20000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x200000,0x8,0x18,0x400000,0x0,0x0,0x80000,0x180000,0xff000003,0x0,0x0,0xff000003,0xff000003,0xff000003,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0xff000003,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x8000,0x0,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0xff000003,0xff000003,0xff000003,0xff000003,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0xf8000000,0xf8000000,0x0,0x0,0xf8000000,0x0,0x0,0xff000003,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000000,0x7000000,0x38000000,0xc0000000,0x3,0x0,0x7000000,0x0,0x0,0x0,}; } private static void jj_la1_init_5() { - jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e1,0x0,0x3e1,0x3e1,0x3e1,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x1e1,0x40000,0x1e1,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x200,0x200,0x0,0x200,0x200,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14be1,0x0,0x80000,0x14be1,0x14be1,0x14be1,0x1000,0x80000,0x14be1,0x0,0x14be1,0x80000,0x0,0x14be1,0x1000,0x80000,0x14be1,0x14be1,0x80000,0x1000,0x0,0xa00,0x101e1,0x0,0xa00,0xa00,0x101e1,0xa00,0x101e1,0x0,0x200,0x0,0x40000,0xa00,0x40000,0xa00,0x80000,0x14be1,0x0,0x20000,0x0,0x0,0x40000,0x14be1,0x4000200,0x4000200,0x20000,0x4000200,0x4000200,0x40000,0x0,0x0,0x0,0x80001000,0x4000200,0x2000,0x42000,0x80040000,0x80001000,0x4000200,0x0,0x0,0x200,0x0,0x0,0x4200,0x4200,0x14be1,0x14be1,0x14be1,0x14be1,0x109e1,0x0,0x10000,0x0,0x109e1,0x20000000,0x40000000,0x3f00000,0x3f00000,0x80000001,0x1,0x0,0x0,0x80000001,0x0,0x0,0x840003e1,0x3e1,0xa00,0x40000,0x0,0x40000,0x40000,0x40000,0x0,0x840003e1,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa00,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x1e0,0x0,0x0,0x0,0x10000,}; + jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e1,0x0,0x3e1,0x3e1,0x3e1,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x40000,0x1e1,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x200,0x200,0x0,0x200,0x200,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14be1,0x0,0x80000,0x14be1,0x14be1,0x14be1,0x1000,0x80000,0x14be1,0x0,0x14be1,0x80000,0x0,0x14be1,0x1000,0x80000,0x14be1,0x14be1,0x80000,0x1000,0x0,0xa00,0x101e1,0x0,0xa00,0xa00,0x101e1,0xa00,0x101e1,0x0,0x200,0x0,0x40000,0xa00,0x40000,0xa00,0x80000,0x14be1,0x0,0x20000,0x0,0x0,0x40000,0x14be1,0x4000200,0x4000200,0x20000,0x4000200,0x4000200,0x40000,0x0,0x0,0x0,0x80001000,0x4000200,0x2000,0x42000,0x80040000,0x80001000,0x4000200,0x0,0x0,0x200,0x0,0x0,0x4200,0x4200,0x14be1,0x14be1,0x14be1,0x14be1,0x109e1,0x0,0x10000,0x0,0x109e1,0x20000000,0x40000000,0x3f00000,0x3f00000,0x80000001,0x1,0x0,0x0,0x80000001,0x0,0x0,0x840003e1,0x3e1,0xa00,0x40000,0x0,0x40000,0x40000,0x40000,0x0,0x840003e1,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa00,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x1e0,0x0,0x0,0x0,0x10000,}; } private static void jj_la1_init_6() { - jj_la1_6 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x0,0x80,0x80,0x0,0x40,0x84,0x84,0x402,0x80,0x0,0x0,0x2,0x402,0x0,0x40,0x80,0x80,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x6,0x6,0x1,0x6,0x6,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_6 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x0,0x80,0x80,0x0,0x40,0x84,0x84,0x402,0x80,0x0,0x0,0x2,0x402,0x0,0x40,0x80,0x80,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x6,0x6,0x1,0x6,0x6,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } final private JJCalls[] jj_2_rtns = new JJCalls[5]; private boolean jj_rescan = false; @@ -7104,7 +7069,7 @@ public ARQParser(java.io.InputStream stream, String encoding) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 187; i++) jj_la1[i] = -1; + for (int i = 0; i < 186; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7119,7 +7084,7 @@ public void ReInit(java.io.InputStream stream, String encoding) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 187; i++) jj_la1[i] = -1; + for (int i = 0; i < 186; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7130,7 +7095,7 @@ public ARQParser(java.io.Reader stream) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 187; i++) jj_la1[i] = -1; + for (int i = 0; i < 186; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7141,7 +7106,7 @@ public void ReInit(java.io.Reader stream) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 187; i++) jj_la1[i] = -1; + for (int i = 0; i < 186; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7151,7 +7116,7 @@ public ARQParser(ARQParserTokenManager tm) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 187; i++) jj_la1[i] = -1; + for (int i = 0; i < 186; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7161,7 +7126,7 @@ public void ReInit(ARQParserTokenManager tm) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 187; i++) jj_la1[i] = -1; + for (int i = 0; i < 186; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7281,7 +7246,7 @@ public ParseException generateParseException() { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 187; i++) { + for (int i = 0; i < 186; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1< Date: Wed, 25 Apr 2018 20:36:14 +1200 Subject: [PATCH 16/18] JENA-632: remove unused Number() clause from master grammar --- jena-arq/Grammar/master.jj | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/jena-arq/Grammar/master.jj b/jena-arq/Grammar/master.jj index 4ea906e7746..5c7af35dc07 100644 --- a/jena-arq/Grammar/master.jj +++ b/jena-arq/Grammar/master.jj @@ -2211,20 +2211,6 @@ String String() : { Token t ; String lex ; } } } -#ifdef ARQ -Number Number() : { Token t ; Number number ; } -{ - ( - t = < INTEGER > { number = integerValue(t.image) ; } - | t = < DECIMAL > { number = doubleValue(t.image) ; } - | t = < DOUBLE > { number = doubleValue(t.image) ; } - ) - { - return number ; - } -} -#endif - String iri() : { String iri ; } { iri = IRIREF() { return iri ; } From d153a4ba904f39b1b359099c20499fb601b1b847 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Fri, 27 Apr 2018 07:45:54 +1200 Subject: [PATCH 17/18] Use Node instead of Object, and format JSON vertically --- .../java/org/apache/jena/query/Query.java | 6 ++--- .../sparql/serializer/QuerySerializer.java | 22 ++++++++++++++----- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/query/Query.java b/jena-arq/src/main/java/org/apache/jena/query/Query.java index 15a4d48aa62..bf50817aa8d 100644 --- a/jena-arq/src/main/java/org/apache/jena/query/Query.java +++ b/jena-arq/src/main/java/org/apache/jena/query/Query.java @@ -521,13 +521,13 @@ public void addHavingCondition(Expr expr) // SELECT JSON - private Map jsonMapping = new LinkedHashMap<>(); + private Map jsonMapping = new LinkedHashMap<>(); - public void addJsonMapping(String key, Object value) { + public void addJsonMapping(String key, Node value) { jsonMapping.put(key, value); } - public Map getJsonMapping() { + public Map getJsonMapping() { return Collections.unmodifiableMap(jsonMapping); } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java b/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java index baeed8964e7..6c135fff9c6 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java @@ -19,7 +19,6 @@ package org.apache.jena.sparql.serializer; import java.io.OutputStream ; -import java.util.ArrayList; import java.util.List ; import java.util.Map; @@ -47,6 +46,7 @@ public class QuerySerializer implements QueryVisitor protected FormatterElement fmtElement ; protected FmtExprSPARQL fmtExpr ; protected IndentedWriter out = null ; + protected Prologue prologue = null ; QuerySerializer(OutputStream _out, FormatterElement formatterElement, @@ -77,6 +77,7 @@ public void visitResultForm(Query query) {} @Override public void visitPrologue(Prologue prologue) { + this.prologue = prologue ; int row1 = out.getRow() ; PrologueSerializer.output(out, prologue) ; int row2 = out.getRow() ; @@ -147,12 +148,21 @@ public void visitAskResultForm(Query query) @Override public void visitJsonResultForm(Query query) { - out.print("JSON {"); - List terms = new ArrayList<>(); - for (Map.Entry entry : query.getJsonMapping().entrySet()) { - terms.add(String.format("\"%s\" : %s ", entry.getKey(), entry.getValue())); + out.println("JSON {"); + out.incIndent(4); + boolean first = true; + for (Map.Entry entry : query.getJsonMapping().entrySet()) { + String field = entry.getKey(); + Node value = entry.getValue(); + if ( ! first ) + out.println(" ,"); + first = false; + out.print('"'); out.print(field); out.print('"'); + out.print(" : "); + out.pad(15); + out.print(FmtUtils.stringForNode(value, prologue)); } - out.print(String.join(",", terms)); + out.decIndent(4); out.print(" }"); out.newline(); } From e0037075d6332ee04b7edcd3e32776d81e8407ab Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Fri, 27 Apr 2018 21:39:49 +1200 Subject: [PATCH 18/18] Use BLOCK_INDENT constant for JSON --- .../org/apache/jena/sparql/serializer/QuerySerializer.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java b/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java index 6c135fff9c6..4429b82f002 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/serializer/QuerySerializer.java @@ -149,7 +149,8 @@ public void visitAskResultForm(Query query) @Override public void visitJsonResultForm(Query query) { out.println("JSON {"); - out.incIndent(4); + out.incIndent(BLOCK_INDENT); + out.incIndent(BLOCK_INDENT); boolean first = true; for (Map.Entry entry : query.getJsonMapping().entrySet()) { String field = entry.getKey(); @@ -162,7 +163,8 @@ public void visitJsonResultForm(Query query) { out.pad(15); out.print(FmtUtils.stringForNode(value, prologue)); } - out.decIndent(4); + out.decIndent(BLOCK_INDENT); + out.decIndent(BLOCK_INDENT); out.print(" }"); out.newline(); }