Search in sources :

Example 6 with ARQParser

use of org.apache.jena.sparql.lang.arq.ARQParser in project jena by apache.

the class ParserARQ method perform.

// All throwable handling.
private static void perform(Query query, String string, Action action) {
    Reader in = new StringReader(string);
    ARQParser parser = new ARQParser(in);
    try {
        query.setStrict(true);
        parser.setQuery(query);
        action.exec(parser);
    } catch (org.apache.jena.sparql.lang.arq.ParseException ex) {
        throw new QueryParseException(ex.getMessage(), ex.currentToken.beginLine, ex.currentToken.beginColumn);
    } catch (org.apache.jena.sparql.lang.arq.TokenMgrError tErr) {
        // Last valid token : not the same as token error message - but this should not happen
        int col = parser.token.endColumn;
        int line = parser.token.endLine;
        throw new QueryParseException(tErr.getMessage(), line, col);
    } catch (QueryException ex) {
        throw ex;
    } catch (JenaException ex) {
        throw new QueryException(ex.getMessage(), ex);
    } catch (Error err) {
        // The token stream can throw errors.
        throw new QueryParseException(err.getMessage(), err, -1, -1);
    } catch (Throwable th) {
        Log.warn(ParserSPARQL11.class, "Unexpected throwable: ", th);
        throw new QueryException(th.getMessage(), th);
    }
}
Also used : StringReader(java.io.StringReader) Reader(java.io.Reader) QueryParseException(org.apache.jena.query.QueryParseException) JenaException(org.apache.jena.shared.JenaException) QueryException(org.apache.jena.query.QueryException) ARQParser(org.apache.jena.sparql.lang.arq.ARQParser) StringReader(java.io.StringReader)

Example 7 with ARQParser

use of org.apache.jena.sparql.lang.arq.ARQParser in project jena by apache.

the class SelectHandler method parseExpr.

/**
 * Parse an expression string into an expression.
 *
 * This must be able to be parsed as though it were written "SELECT "+s
 *
 * @param s the select string to parse.
 * @return the expression
 * @throws QueryParseException on error
 */
private Expr parseExpr(String s) throws QueryParseException {
    try {
        ARQParser parser = new ARQParser(new StringReader("SELECT " + s));
        parser.setQuery(new Query());
        parser.getQuery().setPrefixMapping(query.getPrefixMapping());
        parser.SelectClause();
        Query q = parser.getQuery();
        VarExprList vel = q.getProject();
        return vel.getExprs().values().iterator().next();
    } catch (ParseException ex) {
        throw new QueryParseException(ex.getMessage(), ex.currentToken.beginLine, ex.currentToken.beginLine);
    } catch (TokenMgrError tErr) {
        throw new QueryParseException(tErr.getMessage(), -1, -1);
    } catch (Error err) {
        // The token stream can throw java.lang.Error's
        String tmp = err.getMessage();
        if (tmp == null)
            throw new QueryParseException(err, -1, -1);
        throw new QueryParseException(tmp, -1, -1);
    }
}
Also used : Query(org.apache.jena.query.Query) ARQParser(org.apache.jena.sparql.lang.arq.ARQParser) StringReader(java.io.StringReader) TokenMgrError(org.apache.jena.sparql.lang.arq.TokenMgrError) TokenMgrError(org.apache.jena.sparql.lang.arq.TokenMgrError) ParseException(org.apache.jena.sparql.lang.arq.ParseException) QueryParseException(org.apache.jena.query.QueryParseException) VarExprList(org.apache.jena.sparql.core.VarExprList) QueryParseException(org.apache.jena.query.QueryParseException)

Aggregations

ARQParser (org.apache.jena.sparql.lang.arq.ARQParser)7 QueryParseException (org.apache.jena.query.QueryParseException)5 Query (org.apache.jena.query.Query)4 QueryException (org.apache.jena.query.QueryException)4 JenaException (org.apache.jena.shared.JenaException)4 StringReader (java.io.StringReader)3 Reader (java.io.Reader)2 VarExprList (org.apache.jena.sparql.core.VarExprList)1 ParseException (org.apache.jena.sparql.lang.arq.ParseException)1 TokenMgrError (org.apache.jena.sparql.lang.arq.TokenMgrError)1 Element (org.apache.jena.sparql.syntax.Element)1 Template (org.apache.jena.sparql.syntax.Template)1