public function testTokenizeFilter() { $this->markTestIncomplete('Issue #35 not yet fixed https://github.com/AKSW/Erfurt/issues/35'); $tokensA = array('WHERE', '{', '?a', 'p1:p', '?b', ',', '?c', '.', 'FILTER', "(", "xsd:dateTime", '(', '?a', ')', '=', 'xsd:dateTime', '(', '"', '1978-01-08T00:00:00Z', '"', ')', ')', '.', '}'); $tokensB = array('WHERE', '{', '?a', 'p1:p', '?b', ',', '?c', '.', 'FILTER', "(", "xsd:dateTime", '(', '?a', ')', '<=', 'xsd:dateTime', '(', '"', '1978-01-08T00:00:00Z', '"', ')', ')', '.', '}'); $queryStringA = ' WHERE { ?a p1:p ?b, ?c. FILTER (xsd:dateTime(?a) = xsd:dateTime("1978-01-08T00:00:00Z")). }'; $queryStringB = ' WHERE { ?a p1:p ?b, ?c. FILTER (xsd:dateTime(?a) <= xsd:dateTime("1978-01-08T00:00:00Z")). }'; $this->assertEquals($tokensA, Erfurt_Sparql_Parser::tokenize($queryStringA)); $this->assertEquals($tokensB, Erfurt_Sparql_Parser::tokenize($queryStringB)); }
public function parse() { $this->_tokens = Erfurt_Sparql_Parser::tokenize($this->_expression); $this->setOuterFilter(true); $this->setTree($this->_parseConstraintTree()); $this->_tokens = null; }