Skip to content

Commit 9d5910e

Browse files
committed
more php code
1 parent ac55fa7 commit 9d5910e

File tree

2 files changed

+60
-60
lines changed

2 files changed

+60
-60
lines changed

SparqlPHPParserMain.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class SparqlPHPParserMain {
77
public $error = null;
88

99
function parse($object) {
10-
//check type/catch potential errors
10+
//catch parse errors, if error -> throw it out as message (error is used to break the parsing function)
1111
//call subfunction
1212
//set $error back to 0
1313
}
@@ -19,4 +19,4 @@ function parseString($string) {
1919
function parseFile($file) {
2020

2121
}
22-
}
22+
}

resource/sparql.y

Lines changed: 58 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* !!!!!!!!!!!!!!!!!SCOPING NOTES !!!!!!!!!!!!!!!!!!!
22
* might need to throw A->ssVars = B->ssVars; to everyting containing "expression" rules
3-
*
3+
* need to rework catching errors (use throw error)
44
*
55
*/
66

@@ -284,75 +284,75 @@ orderCondition(A) ::= var(B).
284284

285285
limitOffsetClauses(A) ::= limitClause(B) offsetClause(C).
286286
limitOffsetClauses(A) ::= offsetClause(B) limitClause(C).
287-
limitOffsetClauses(A) ::= limitClause(B).
288-
limitOffsetClauses(A) ::= offsetClause(B).
287+
limitOffsetClauses(A) ::= limitClause(B). { A = B; }
288+
limitOffsetClauses(A) ::= offsetClause(B). { A = B; }
289289

290-
limitClause(A) ::= LIMIT INTEGER.
290+
limitClause(A) ::= LIMIT INTEGER(B). { A = new NTToken(); A->query = 'LIMIT ' . B->value; }
291291

292-
offsetClause(A) ::= OFFSET INTEGER.
292+
offsetClause(A) ::= OFFSET INTEGER(B). { A = new NTToken(); A->query = 'OFFSET ' . B->value; }
293293

294-
valuesClause(A) ::= VALUES dataBlock(B).
294+
valuesClause(A) ::= VALUES dataBlock(B). { A = B; A->query = 'VALUES ' . B->query;}
295295

296-
update(A) ::= prologue(B) update1(C) SEMICOLON update(D).
297-
update(A) ::= update1(B) SEMICOLON update(C).
298-
update(A) ::= prologue(B) update1(C).
299-
update(A) ::= update1(B).
296+
update(A) ::= prologue(B) update1(C) SEMICOLON update(D). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars + D->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes; A->query = B->query . PHP_EOL . C->query . ' ;' . PHP_EOL . D->query; }
297+
update(A) ::= update1(B) SEMICOLON update(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = B->query . ' ;' . PHP_EOL . C->query; }
298+
update(A) ::= prologue(B) update1(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = B->query . PHP_EOL . C->query; }
299+
update(A) ::= update1(B). { A = B; }
300300

301-
update1(A) ::= load(B).
302-
update1(A) ::= clear(B).
303-
update1(A) ::= drop(B).
304-
update1(A) ::= add(B).
305-
update1(A) ::= move(B).
306-
update1(A) ::= copy(B).
307-
update1(A) ::= create(B).
308-
update1(A) ::= insertData(B).
309-
update1(A) ::= deleteData(B).
310-
update1(A) ::= deletewhere(B).
311-
update1(A) ::= modify(B).
301+
update1(A) ::= load(B). { A = B; }
302+
update1(A) ::= clear(B). { A = B; }
303+
update1(A) ::= drop(B). { A = B; }
304+
update1(A) ::= add(B). { A = B; }
305+
update1(A) ::= move(B). { A = B; }
306+
update1(A) ::= copy(B). { A = B; }
307+
update1(A) ::= create(B). { A = B; }
308+
update1(A) ::= insertData(B). { A = B; }
309+
update1(A) ::= deleteData(B). { A = B; }
310+
update1(A) ::= deletewhere(B). { A = B; }
311+
update1(A) ::= modify(B). { A = B; }
312312

313-
load(A) ::= LOAD SILENT iri(B) INTO graphRef(C).
314-
load(A) ::= LOAD iri(B) INTO graphRef(C).
315-
load(A) ::= LOAD SILENT iri(B).
316-
load(A) ::= LOAD iri(B).
313+
load(A) ::= LOAD SILENT iri(B) INTO graphRef(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = 'LOAD SILENT ' B->query . ' INTO ' . C->query; }
314+
load(A) ::= LOAD iri(B) INTO graphRef(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = 'LOAD ' B->query . ' INTO ' . C->query; }
315+
load(A) ::= LOAD SILENT iri(B). { A = B; A->query = 'LOAD SILENT ' . B->query; }
316+
load(A) ::= LOAD iri(B). { A = B; A->query = 'LOAD ' . B->query; }
317317

318-
clear(A) ::= CLEAR SILENT graphRefAll(B).
319-
clear(A) ::= CLEAR graphRefAll(B).
318+
clear(A) ::= CLEAR SILENT graphRefAll(B). { A = B; A->query = 'CLEAR SILENT ' . B->query; }
319+
clear(A) ::= CLEAR graphRefAll(B). { A = B; A->query = 'CLEAR ' . B->query; }
320320

321-
drop(A) ::= DROP SILENT graphRefAll(B).
322-
drop(A) ::= DROP graphRefAll(B).
321+
drop(A) ::= DROP SILENT graphRefAll(B). { A = B; A->query = 'DROP SILENT ' . B->query; }
322+
drop(A) ::= DROP graphRefAll(B). { A = B; A->query = 'DROP ' . B->query; }
323323

324-
create(A) ::= CREATE SILENT graphRef(B).
325-
create(A) ::= CREATE graphRef(B).
324+
create(A) ::= CREATE SILENT graphRef(B). { A = B; A->query = 'CREATE SILENT ' . B->query; }
325+
create(A) ::= CREATE graphRef(B). { A = B; A->query = 'CREATE ' . B->query; }
326326

327-
add(A) ::= ADD SILENT graphOrDefault(B) TO graphOrDefault(C).
328-
add(A) ::= ADD graphOrDefault(B) TO graphOrDefault(C).
327+
add(A) ::= ADD SILENT graphOrDefault(B) TO graphOrDefault(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = 'ADD TO ' B->query . ' TO ' . C->query; }
328+
add(A) ::= ADD graphOrDefault(B) TO graphOrDefault(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = 'ADD ' B->query . ' TO ' . C->query; }
329329

330-
move(A) ::= MOVE SILENT graphOrDefault(C) TO graphOrDefault(D).
331-
move(A) ::= MOVE graphOrDefault(B) TO graphOrDefault(D).
330+
move(A) ::= MOVE SILENT graphOrDefault(C) TO graphOrDefault(D). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = 'MOVE SILENT ' B->query . ' TO ' . C->query; }
331+
move(A) ::= MOVE graphOrDefault(B) TO graphOrDefault(D). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = 'MOVE ' B->query . ' TO ' . C->query; }
332332

333-
copy(A) ::= COPY SILENT graphOrDefault(B) TO graphOrDefault(C).
334-
copy(A) ::= COPY graphOrDefault(B) TO graphOrDefault(C).
333+
copy(A) ::= COPY SILENT graphOrDefault(B) TO graphOrDefault(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = 'COPY SILENT ' B->query . ' TO ' . C->query; }
334+
copy(A) ::= COPY graphOrDefault(B) TO graphOrDefault(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = 'COPY ' B->query . ' TO ' . C->query; }
335335

336-
insertData(A) ::= INSERTDATA quadData(B).
336+
insertData(A) ::= INSERTDATA quadData(B). { A = B; A->query = 'DELETE DATA ' . B->query; }
337337

338-
deleteData(A) ::= DELETEDATA quadData(B).
338+
deleteData(A) ::= DELETEDATA quadData(B). { if(!empty(B->bNodes){$this->main->error = "A Deleteclause is not allowed to contain Blanknodesyntax: DELETE DATA" . B->query; yy_parse_failed();} A = B; A->query = 'DELETE DATA ' . B->query; }
339339

340-
deletewhere(A) ::= DELETEWHERE quadPattern(B).
340+
deletewhere(A) ::= DELETEWHERE quadPattern(B). { if(!empty(B->bNodes){$this->main->error = "A Deleteclause is not allowed to contain Blanknodesyntax: DELETE WHERE" . B->query; yy_parse_failed();} A = B; A->query = 'DELETE WHERE ' . B->query; }
341341

342-
modify(A) ::= WITH iri(B) deleteClause(C) insertClause(D) usingClauseX(E) WHERE groupGraphPattern(F).
343-
modify(A) ::= WITH iri(B) deleteClause(C) usingClauseX(D) WHERE groupGraphPattern(E).
344-
modify(A) ::= WITH iri(B) insertClause(C) usingClauseX(D) WHERE groupGraphPattern(E).
345-
modify(A) ::= WITH iri(B) deleteClause(C) insertClause(D) WHERE groupGraphPattern(E).
346-
modify(A) ::= WITH iri(B) deleteClause(C) WHERE groupGraphPattern(D).
347-
modify(A) ::= WITH iri(B) insertClause(C) WHERE groupGraphPattern(D).
348-
modify(A) ::= deleteClause(B) insertClause(C) usingClauseX(D) WHERE groupGraphPattern(E).
349-
modify(A) ::= deleteClause(B) usingClauseX(C) WHERE groupGraphPattern(D).
350-
modify(A) ::= insertClause(B) usingClauseX(C) WHERE groupGraphPattern(D).
351-
modify(A) ::= deleteClause(B) insertClause(C) WHERE groupGraphPattern(D).
352-
modify(A) ::= deleteClause(B) WHERE groupGraphPattern(C).
353-
modify(A) ::= insertClause(B) WHERE groupGraphPattern(C).
354-
usingClauseX(A) ::= usingClauseX(B) usingClause(C).
355-
usingClauseX(A) ::= usingClause(B).
342+
modify(A) ::= WITH iri(B) deleteClause(C) insertClause(D) usingClauseX(E) WHERE groupGraphPattern(F). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->copyBools(E); A->copyBools(F); A->ssVars = F->ssVars; A->vars = B->vars + C->vars + D->vars + E->vars + F->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes + E->bNodes + F->bNodes; A->query = 'WITH ' . B->query . PHP_EOL . C->query . PHP_EOL . D->query . PHP_EOL . E->query . PHP_EOL . 'WHERE' . PHP_EOL . F->query; }
343+
modify(A) ::= WITH iri(B) deleteClause(C) usingClauseX(D) WHERE groupGraphPattern(E).{ A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->copyBools(E); A->ssVars = E->ssVars; A->vars = B->vars + C->vars + D->vars + E->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes + E->bNodes; A->query = 'WITH ' . B->query . PHP_EOL . C->query . PHP_EOL . D->query . PHP_EOL . 'WHERE' . PHP_EOL . E->query; }
344+
modify(A) ::= WITH iri(B) insertClause(C) usingClauseX(D) WHERE groupGraphPattern(E).{ A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->copyBools(E); A->ssVars = E->ssVars; A->vars = B->vars + C->vars + D->vars + E->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes + E->bNodes; A->query = 'WITH ' . B->query . PHP_EOL . C->query . PHP_EOL . D->query . PHP_EOL . 'WHERE' . PHP_EOL . E->query; }
345+
modify(A) ::= WITH iri(B) deleteClause(C) insertClause(D) WHERE groupGraphPattern(E).{ A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->copyBools(E); A->ssVars = E->ssVars; A->vars = B->vars + C->vars + D->vars + E->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes + E->bNodes; A->query = 'WITH ' . B->query . PHP_EOL . C->query . PHP_EOL . D->query . PHP_EOL . 'WHERE' . PHP_EOL . E->query; }
346+
modify(A) ::= WITH iri(B) deleteClause(C) WHERE groupGraphPattern(D). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->ssVars = D->ssVars; A->vars = B->vars + C->vars + D->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes; A->query = 'WITH ' . B->query . PHP_EOL . C->query . PHP_EOL . 'WHERE' . PHP_EOL . D->query; }
347+
modify(A) ::= WITH iri(B) insertClause(C) WHERE groupGraphPattern(D). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->ssVars = D->ssVars; A->vars = B->vars + C->vars + D->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes; A->query = 'WITH ' . B->query . PHP_EOL . C->query . PHP_EOL . 'WHERE' . PHP_EOL . D->query; }
348+
modify(A) ::= deleteClause(B) insertClause(C) usingClauseX(D) WHERE groupGraphPattern(E). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->copyBools(E); A->ssVars = E->ssVars; A->vars = B->vars + C->vars + D->vars + E->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes + E->bNodes; A->query = B->query . PHP_EOL . C->query . PHP_EOL . D->query . PHP_EOL . 'WHERE' . PHP_EOL . E->query; }
349+
modify(A) ::= deleteClause(B) usingClauseX(C) WHERE groupGraphPattern(D). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->ssVars = D->ssVars; A->vars = B->vars + C->vars + D->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes; A->query = B->query . PHP_EOL . C->query . PHP_EOL . 'WHERE' . PHP_EOL . D->query; }
350+
modify(A) ::= insertClause(B) usingClauseX(C) WHERE groupGraphPattern(D). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->ssVars = D->ssVars; A->vars = B->vars + C->vars + D->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes; A->query = B->query . PHP_EOL . C->query . PHP_EOL . 'WHERE' . PHP_EOL . D->query; }
351+
modify(A) ::= deleteClause(B) insertClause(C) WHERE groupGraphPattern(D). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->ssVars = D->ssVars; A->vars = B->vars + C->vars + D->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes; A->query = B->query . PHP_EOL . C->query . PHP_EOL . 'WHERE' . PHP_EOL . D->query; }
352+
modify(A) ::= deleteClause(B) WHERE groupGraphPattern(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->ssVars = D->ssVars; A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = B->query . PHP_EOL . 'WHERE' . PHP_EOL . C->query; }
353+
modify(A) ::= insertClause(B) WHERE groupGraphPattern(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->ssVars = D->ssVars; A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = B->query . PHP_EOL . 'WHERE' . PHP_EOL . C->query; }
354+
usingClauseX(A) ::= usingClauseX(B) usingClause(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->query = B->query . PHP_EOL . C->query; }
355+
usingClauseX(A) ::= usingClause(B). {A = B;}
356356

357357
deleteClause(A) ::= DELETE quadPattern(B). { if(!empty(B->bNodes){$this->main->error = "A Deleteclause is not allowed to contain Blanknodesyntax: DELETE" . B->query; yy_parse_failed();} A = B; A->query = 'DELETE ' . B->query; }
358358

@@ -372,17 +372,17 @@ graphRefAll(A) ::= DEFAULT. { A = new NTToken(); A->query = 'DEFAULT';}
372372
graphRefAll(A) ::= NAMED. { A = new NTToken(); A->query = 'NAMED';}
373373
graphRefAll(A) ::= ALL. { A = new NTToken(); A->query = 'ALL';}
374374

375-
quadPattern(A) ::= LBRACE quads(B) RBRACE. '{ ' . PHP_EOL . B->query . PHP_EOL . ' }'; }
375+
quadPattern(A) ::= LBRACE quads(B) RBRACE. { A = B; A->query = '{ ' . PHP_EOL . B->query . PHP_EOL . ' }'; }
376376
quadPattern(A) ::= LBRACE RBRACE. {A = new NTToken(); A->query = '{ }'}
377377

378-
quadData(A) ::= LBRACE quads(B) RBRACE. '{ ' . PHP_EOL . B->query . PHP_EOL . ' }'; }
378+
quadData(A) ::= LBRACE quads(B) RBRACE. { if(!empty(B->vars)){$this->main->error = "QuadPattern arent allowed to contain variables: " . B->query; yy_parse_failed();} A = B; A->query = '{ ' . PHP_EOL . B->query . PHP_EOL . ' }'; }
379379
quadData(A) ::= LBRACE RBRACE. {A = new NTToken(); A->query = '{ }'}
380380

381381
quads(A) ::= triplesTemplate(B) quadsX(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = B->query . ' .' . PHP_EOL . C->query; }
382382
quads(A) ::= triplesTemplate(B). { A = B; }
383383
quads(A) ::= quadsX(B). { A = B; }
384-
quadsX(A) ::= quadsX(B) quadsNotTriples(C) DOT triplesTemplate(D).
385-
quadsX(A) ::= quadsX(B) quadsNotTriples(C) triplesTemplate(D).
384+
quadsX(A) ::= quadsX(B) quadsNotTriples(C) DOT triplesTemplate(D). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->vars = B->vars + C->vars + D->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes; A->query = B->query . ' .' . PHP_EOL . C->query . ' .' . PHP_EOL . D->query; }
385+
quadsX(A) ::= quadsX(B) quadsNotTriples(C) triplesTemplate(D). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->copyBools(D); A->vars = B->vars + C->vars + D->vars; A->bNodes = B->bNodes + C->bNodes + D->bNodes; A->query = B->query . ' .' . PHP_EOL . C->query . PHP_EOL . D->query; }
386386
quadsX(A) ::= quadsX(B) quadsNotTriples(C) DOT. { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = B->query . ' .' . PHP_EOL . C->query; }
387387
quadsX(A) ::= quadsX(B) quadsNotTriples(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = B->query . PHP_EOL . C->query; }
388388
quadsX(A) ::= quadsNotTriples(B) DOT triplesTemplate(C). { A = new NTToken(); A->copyBools(B); A->copyBools(C); A->vars = B->vars + C->vars; A->bNodes = B->bNodes + C->bNodes; A->query = B->query . ' .' . PHP_EOL . C->query; }

0 commit comments

Comments
 (0)