@traqula/rules-sparql-1-1 0.0.1-alpha.176 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/lib/RoundTripTypes.d.ts +379 -0
  2. package/lib/RoundTripTypes.js +2 -0
  3. package/lib/RoundTripTypes.js.map +1 -0
  4. package/lib/Sparql11types.d.ts +18 -245
  5. package/lib/Sparql11types.js.map +1 -1
  6. package/lib/SparqlParser.d.ts +13 -4
  7. package/lib/SparqlParser.js +7 -4
  8. package/lib/SparqlParser.js.map +1 -1
  9. package/lib/expressionHelpers.d.ts +8 -19
  10. package/lib/expressionHelpers.js +40 -103
  11. package/lib/expressionHelpers.js.map +1 -1
  12. package/lib/factory.d.ts +447 -0
  13. package/lib/factory.js +105 -0
  14. package/lib/factory.js.map +1 -0
  15. package/lib/factoryMixins/ContextFactory.d.ts +38 -0
  16. package/lib/factoryMixins/ContextFactory.js +30 -0
  17. package/lib/factoryMixins/ContextFactory.js.map +1 -0
  18. package/lib/factoryMixins/ExpressionFactory.d.ts +60 -0
  19. package/lib/factoryMixins/ExpressionFactory.js +83 -0
  20. package/lib/factoryMixins/ExpressionFactory.js.map +1 -0
  21. package/lib/factoryMixins/GraphRefFactory.d.ts +43 -0
  22. package/lib/factoryMixins/GraphRefFactory.js +51 -0
  23. package/lib/factoryMixins/GraphRefFactory.js.map +1 -0
  24. package/lib/factoryMixins/PathFactory.d.ts +51 -0
  25. package/lib/factoryMixins/PathFactory.js +68 -0
  26. package/lib/factoryMixins/PathFactory.js.map +1 -0
  27. package/lib/factoryMixins/Patternfactory.d.ts +55 -0
  28. package/lib/factoryMixins/Patternfactory.js +98 -0
  29. package/lib/factoryMixins/Patternfactory.js.map +1 -0
  30. package/lib/factoryMixins/QueryFactory.d.ts +41 -0
  31. package/lib/factoryMixins/QueryFactory.js +43 -0
  32. package/lib/factoryMixins/QueryFactory.js.map +1 -0
  33. package/lib/factoryMixins/SolutionModifiersFactory.d.ts +43 -0
  34. package/lib/factoryMixins/SolutionModifiersFactory.js +55 -0
  35. package/lib/factoryMixins/SolutionModifiersFactory.js.map +1 -0
  36. package/lib/factoryMixins/TermFactory.d.ts +76 -0
  37. package/lib/factoryMixins/TermFactory.js +84 -0
  38. package/lib/factoryMixins/TermFactory.js.map +1 -0
  39. package/lib/factoryMixins/UpdateOperationFactory.d.ts +68 -0
  40. package/lib/factoryMixins/UpdateOperationFactory.js +126 -0
  41. package/lib/factoryMixins/UpdateOperationFactory.js.map +1 -0
  42. package/lib/factoryMixins/mixins.d.ts +14 -0
  43. package/lib/factoryMixins/mixins.js +20 -0
  44. package/lib/factoryMixins/mixins.js.map +1 -0
  45. package/lib/grammar/builtIn.d.ts +59 -59
  46. package/lib/grammar/builtIn.js +50 -57
  47. package/lib/grammar/builtIn.js.map +1 -1
  48. package/lib/grammar/dataSetClause.d.ts +22 -9
  49. package/lib/grammar/dataSetClause.js +57 -14
  50. package/lib/grammar/dataSetClause.js.map +1 -1
  51. package/lib/grammar/expression.d.ts +12 -16
  52. package/lib/grammar/expression.js +224 -296
  53. package/lib/grammar/expression.js.map +1 -1
  54. package/lib/grammar/general.d.ts +8 -8
  55. package/lib/grammar/general.js +59 -94
  56. package/lib/grammar/general.js.map +1 -1
  57. package/lib/grammar/literals.d.ts +16 -13
  58. package/lib/grammar/literals.js +161 -144
  59. package/lib/grammar/literals.js.map +1 -1
  60. package/lib/grammar/propertyPaths.d.ts +16 -12
  61. package/lib/grammar/propertyPaths.js +100 -129
  62. package/lib/grammar/propertyPaths.js.map +1 -1
  63. package/lib/grammar/queryUnit/queryUnit.d.ts +13 -17
  64. package/lib/grammar/queryUnit/queryUnit.js +195 -329
  65. package/lib/grammar/queryUnit/queryUnit.js.map +1 -1
  66. package/lib/grammar/solutionModifier.d.ts +12 -11
  67. package/lib/grammar/solutionModifier.js +125 -109
  68. package/lib/grammar/solutionModifier.js.map +1 -1
  69. package/lib/grammar/tripleBlock.d.ts +24 -33
  70. package/lib/grammar/tripleBlock.js +172 -126
  71. package/lib/grammar/tripleBlock.js.map +1 -1
  72. package/lib/grammar/updateUnit/updateUnit.d.ts +28 -33
  73. package/lib/grammar/updateUnit/updateUnit.js +282 -367
  74. package/lib/grammar/updateUnit/updateUnit.js.map +1 -1
  75. package/lib/grammar/whereClause.d.ts +20 -19
  76. package/lib/grammar/whereClause.js +232 -245
  77. package/lib/grammar/whereClause.js.map +1 -1
  78. package/lib/grammar-helpers/utils.d.ts +0 -4
  79. package/lib/grammar-helpers/utils.js +0 -37
  80. package/lib/grammar-helpers/utils.js.map +1 -1
  81. package/lib/index.cjs +3061 -2438
  82. package/lib/index.d.ts +4 -2
  83. package/lib/index.js +4 -2
  84. package/lib/index.js.map +1 -1
  85. package/lib/lexer/lexer.d.ts +4 -3
  86. package/lib/lexer/lexer.js +11 -7
  87. package/lib/lexer/lexer.js.map +1 -1
  88. package/lib/lexer/terminals.d.ts +0 -34
  89. package/lib/lexer/terminals.js +35 -37
  90. package/lib/lexer/terminals.js.map +1 -1
  91. package/lib/utils.d.ts +0 -3
  92. package/lib/utils.js +0 -6
  93. package/lib/utils.js.map +1 -1
  94. package/lib/validation/validators.d.ts +14 -0
  95. package/lib/validation/validators.js +235 -0
  96. package/lib/validation/validators.js.map +1 -0
  97. package/package.json +6 -8
  98. package/lib/Wildcard.d.ts +0 -9
  99. package/lib/Wildcard.js +0 -19
  100. package/lib/Wildcard.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"updateUnit.js","sourceRoot":"","sources":["updateUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RuleDefReturn } from '@traqula/core';\nimport { unCapitalize } from '@traqula/core';\nimport type { TokenType } from 'chevrotain';\nimport * as l from '../../lexer';\nimport type {\n ClearDropOperation,\n CopyMoveAddOperation,\n CreateOperation,\n DeleteOperation,\n DeleteWhereOperation,\n GraphOrDefault,\n GraphQuads,\n GraphReference,\n InsertOperation,\n IriTerm,\n LoadOperation,\n ModifyOperation,\n Quads,\n SparqlGrammarRule,\n SparqlRule,\n Update,\n UpdateOperation,\n} from '../../Sparql11types';\nimport { prologue, varOrIri, varOrTerm } from '../general';\nimport { iri } from '../literals';\nimport { triplesBlock, triplesTemplate } from '../tripleBlock';\nimport { groupGraphPattern } from '../whereClause';\n\n/**\n * [[3]](https://www.w3.org/TR/sparql11-query/#rUpdateUnit)\n */\nexport const updateUnit: SparqlGrammarRule<'updateUnit', Update> = <const> {\n name: 'updateUnit',\n impl: ({ ACTION, SUBRULE }) => () => {\n const data = SUBRULE(update, undefined);\n\n ACTION(() => data.updates.reverse());\n return data;\n },\n};\n\n/**\n * [[29]](https://www.w3.org/TR/sparql11-query/#rUpdate)\n */\nexport const update: SparqlRule<'update', Update> = <const> {\n name: 'update',\n impl: ({ ACTION, SUBRULE, SUBRULE1, SUBRULE2, CONSUME, OPTION1, MANY }) => () => {\n const prologueValues = SUBRULE1(prologue, undefined);\n const result: Update = {\n type: 'update',\n base: prologueValues.base,\n prefixes: prologueValues.prefixes,\n updates: [],\n };\n\n let parsedSemi = true;\n MANY({\n GATE: () => parsedSemi,\n DEF: () => {\n const updateOperation = SUBRULE(update1, undefined);\n result.updates.push(updateOperation);\n\n OPTION1(() => {\n CONSUME(l.symbols.semi);\n parsedSemi = true;\n SUBRULE2(prologue, undefined);\n\n ACTION(() => {\n result.base = prologueValues.base ?? result.base;\n result.prefixes = prologueValues.prefixes ?\n { ...result.prefixes, ...prologueValues.prefixes } :\n result.prefixes;\n });\n });\n },\n });\n return result;\n },\n gImpl: ({ SUBRULE }) => (ast) => {\n const prologueString = SUBRULE(prologue, ast, undefined);\n const updates = ast.updates.map(update => SUBRULE(update1, update, undefined)).join(' ;\\n');\n return `${prologueString} ${updates}`;\n },\n};\n\n/**\n * [[30]](https://www.w3.org/TR/sparql11-query/#rUpdate1)\n */\nexport const update1: SparqlRule<'update1', UpdateOperation> = <const> {\n name: 'update1',\n impl: ({ SUBRULE, OR }) => () => OR<UpdateOperation>([\n { ALT: () => SUBRULE(load, undefined) },\n { ALT: () => SUBRULE(clear, undefined) },\n { ALT: () => SUBRULE(drop, undefined) },\n { ALT: () => SUBRULE(add, undefined) },\n { ALT: () => SUBRULE(move, undefined) },\n { ALT: () => SUBRULE(copy, undefined) },\n { ALT: () => SUBRULE(create, undefined) },\n { ALT: () => SUBRULE(insertData, undefined) },\n { ALT: () => SUBRULE(deleteData, undefined) },\n { ALT: () => SUBRULE(deleteWhere, undefined) },\n { ALT: () => SUBRULE(modify, undefined) },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n if ('type' in ast) {\n // ManagementOperation\n switch (ast.type) {\n case 'load':\n return SUBRULE(load, ast, undefined);\n case 'clear':\n return SUBRULE(clear, ast, undefined);\n case 'drop':\n return SUBRULE(drop, ast, undefined);\n case 'add':\n return SUBRULE(add, ast, undefined);\n case 'move':\n return SUBRULE(move, ast, undefined);\n case 'copy':\n return SUBRULE(copy, ast, undefined);\n case 'create':\n return SUBRULE(create, ast, undefined);\n }\n }\n // InsertDeleteOperation\n switch (ast.updateType) {\n case 'insert':\n return SUBRULE(insertData, ast, undefined);\n case 'delete':\n return SUBRULE(deleteData, ast, undefined);\n case 'deletewhere':\n return SUBRULE(deleteWhere, ast, undefined);\n case 'insertdelete':\n return SUBRULE(modify, ast, undefined);\n }\n },\n};\n\n/**\n * [[31]](https://www.w3.org/TR/sparql11-query/#rLoad)\n */\nexport const load: SparqlRule<'load', LoadOperation> = <const> {\n name: 'load',\n impl: ({ SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {\n CONSUME(l.load);\n const silent = Boolean(OPTION1(() => CONSUME(l.silent)));\n const source = SUBRULE(iri, undefined);\n const destination = OPTION2(() => {\n CONSUME(l.loadInto);\n return SUBRULE(graphRef, undefined);\n });\n return {\n type: 'load',\n silent,\n source,\n ...(destination && { destination }),\n };\n },\n gImpl: ({ SUBRULE }) => (ast) => {\n const builder = [ 'LOAD' ];\n if (ast.silent) {\n builder.push('SILENT');\n }\n builder.push(SUBRULE(iri, ast.source, undefined));\n if (ast.destination) {\n builder.push('INTO', SUBRULE(graphRef, ast.destination, undefined));\n }\n return builder.join(' ');\n },\n};\n\n/**\n * [[32]](https://www.w3.org/TR/sparql11-query/#rClear)\n */\nexport const clear: SparqlRule<'clear', ClearDropOperation> = <const> {\n name: 'clear',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.clear);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRefAll, undefined);\n return {\n type: 'clear',\n silent,\n graph,\n };\n },\n gImpl: ({ SUBRULE }) => (ast) => {\n const builder = [ 'CLEAR' ];\n if (ast.silent) {\n builder.push('SILENT');\n }\n builder.push(SUBRULE(graphRefAll, ast.graph, undefined));\n return builder.join(' ');\n },\n};\n\n/**\n * [[33]](https://www.w3.org/TR/sparql11-query/#rDrop)\n */\nexport const drop: SparqlRule<'drop', ClearDropOperation> = <const> {\n name: 'drop',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.drop);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRefAll, undefined);\n return {\n type: 'drop',\n silent,\n graph,\n };\n },\n gImpl: ({ SUBRULE }) => (ast) => {\n const builder = [ 'DROP' ];\n if (ast.silent) {\n builder.push('SILENT');\n }\n builder.push(SUBRULE(graphRefAll, ast.graph, undefined));\n return builder.join(' ');\n },\n};\n\n/**\n * [[34]](https://www.w3.org/TR/sparql11-query/#rCreate)\n */\nexport const create: SparqlRule<'create', CreateOperation> = <const> {\n name: 'create',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.create);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRef, undefined);\n return {\n type: 'create',\n silent,\n graph: {\n type: 'graph',\n name: graph,\n },\n };\n },\n gImpl: ({ SUBRULE }) => (ast) => {\n const builder = [ 'CREATE' ];\n if (ast.silent) {\n builder.push('SILENT');\n }\n builder.push(SUBRULE(graphRef, <IriTerm> ast.graph.name, undefined));\n return builder.join(' ');\n },\n};\n\nfunction copyMoveAddOperation<T extends 'Copy' | 'Move' | 'Add'>(operation: TokenType & { name: T }):\nSparqlRule<Uncapitalize<T>, CopyMoveAddOperation> {\n return {\n name: unCapitalize(operation.name),\n impl: ({ CONSUME, SUBRULE1, SUBRULE2, OPTION }) => () => {\n CONSUME(operation);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const source = SUBRULE1(graphOrDefault, undefined);\n CONSUME(l.to);\n const destination = SUBRULE2(graphOrDefault, undefined);\n return {\n type: unCapitalize(operation.name),\n silent,\n source,\n destination,\n };\n },\n gImpl: ({ SUBRULE }) => (ast) => {\n const builder = [ operation.name.toUpperCase() ];\n if (ast.silent) {\n builder.push('SILENT');\n }\n builder.push(SUBRULE(graphOrDefault, ast.source, undefined));\n builder.push('TO', SUBRULE(graphOrDefault, ast.destination, undefined));\n return builder.join(' ');\n },\n };\n}\n\n/**\n * [[35]](https://www.w3.org/TR/sparql11-query/#rAdd)\n */\nexport const add = copyMoveAddOperation(l.add);\n\n/**\n * [[36]](https://www.w3.org/TR/sparql11-query/#rMove)\n */\nexport const move = copyMoveAddOperation(l.move);\n\n/**\n * [[37]](https://www.w3.org/TR/sparql11-query/#rCopy)\n */\nexport const copy = copyMoveAddOperation(l.copy);\n\n/**\n * [[38]](https://www.w3.org/TR/sparql11-query/#rInsertData)\n */\nexport const insertData: SparqlRule<'insertData', InsertOperation> = <const> {\n name: 'insertData',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.insertClause);\n CONSUME(l.dataClause);\n const insert = SUBRULE(quadData, undefined);\n return {\n updateType: 'insert',\n insert,\n };\n },\n gImpl: ({ SUBRULE }) => ast =>\n `INSERT DATA ${SUBRULE(quadData, ast.insert, undefined)}`,\n};\n\n/**\n * [[39]](https://www.w3.org/TR/sparql11-query/#rDeleteData)\n */\nexport const deleteData: SparqlRule<'deleteData', DeleteOperation> = <const> {\n name: 'deleteData',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n CONSUME(l.deleteClause);\n CONSUME(l.dataClause);\n\n const couldCreateBlankNodes = ACTION(() => C.parseMode.delete('canCreateBlankNodes'));\n const del = SUBRULE(quadData, undefined);\n ACTION(() => couldCreateBlankNodes && C.parseMode.add('canCreateBlankNodes'));\n\n return {\n updateType: 'delete',\n delete: del,\n };\n },\n gImpl: ({ SUBRULE }) => ast =>\n `DELETE DATA ${SUBRULE(quadData, ast.delete, undefined)}`,\n};\n\n/**\n * [[40]](https://www.w3.org/TR/sparql11-query/#rDeleteWhere)\n */\nexport const deleteWhere: SparqlRule<'deleteWhere', DeleteWhereOperation> = <const> {\n name: 'deleteWhere',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n CONSUME(l.deleteClause);\n CONSUME(l.where);\n\n const couldCreateBlankNodes = ACTION(() => C.parseMode.delete('canCreateBlankNodes'));\n const del = SUBRULE(quadPattern, undefined);\n ACTION(() => couldCreateBlankNodes && C.parseMode.add('canCreateBlankNodes'));\n\n return {\n updateType: 'deletewhere',\n delete: del,\n };\n },\n gImpl: ({ SUBRULE }) => ast =>\n `DELETE WHERE ${SUBRULE(quadData, ast.delete, undefined)}`,\n};\n\n/**\n * [[41]](https://www.w3.org/TR/sparql11-query/#rModify)\n */\nexport const modify: SparqlRule<'modify', ModifyOperation> = <const> {\n name: 'modify',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => () => {\n const graph = OPTION1(() => {\n CONSUME(l.modifyWith);\n return SUBRULE(iri, undefined);\n });\n const { insert, delete: del } = OR([\n {\n ALT: () => {\n const del = SUBRULE(deleteClause, undefined);\n const insert = OPTION2(() => SUBRULE1(insertClause, undefined)) ?? [];\n return { delete: del, insert };\n },\n },\n { ALT: () => {\n const insert = SUBRULE2(insertClause, undefined);\n return { insert, delete: []};\n } },\n ]);\n const usingArr: RuleDefReturn<typeof usingClause>[] = [];\n MANY(() => {\n usingArr.push(SUBRULE(usingClause, undefined));\n });\n CONSUME(l.where);\n const where = SUBRULE(groupGraphPattern, undefined);\n\n return ACTION(() => {\n const def: IriTerm[] = [];\n const named: IriTerm[] = [];\n for (const { value, type } of usingArr) {\n if (type === 'default') {\n def.push(value);\n } else {\n named.push(value);\n }\n }\n return {\n updateType: 'insertdelete',\n graph,\n insert,\n delete: del,\n using: usingArr.length > 0 ? { default: def, named } : undefined,\n where: where.patterns,\n };\n });\n },\n gImpl: ({ SUBRULE }) => (ast) => {\n const builder: string[] = [];\n if (ast.graph) {\n builder.push(`WITH ${SUBRULE(iri, ast.graph, undefined)}`);\n }\n if (ast.delete.length > 0) {\n builder.push(`DELETE ${SUBRULE(quadData, ast.delete, undefined)}`);\n }\n if (ast.insert.length > 0) {\n builder.push(`INSERT ${SUBRULE(quadData, ast.insert, undefined)}`);\n }\n if (ast.using) {\n builder.push(...ast.using.default.map(val => `USING ${SUBRULE(iri, val, undefined)}`));\n builder.push(...ast.using.named.map(val => `USING NAMED ${SUBRULE(iri, val, undefined)}`));\n }\n builder.push('WHERE', SUBRULE(groupGraphPattern, { type: 'group', patterns: ast.where }, undefined));\n return builder.join(' ');\n },\n};\n\n/**\n * [[42]](https://www.w3.org/TR/sparql11-query/#rDeleteClause)\n */\nexport const deleteClause: SparqlGrammarRule<'deleteClause', Quads[]> = <const> {\n name: 'deleteClause',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n CONSUME(l.deleteClause);\n\n const couldCreateBlankNodes = ACTION(() => C.parseMode.delete('canCreateBlankNodes'));\n const del = SUBRULE(quadPattern, undefined);\n ACTION(() => couldCreateBlankNodes && C.parseMode.add('canCreateBlankNodes'));\n\n return del;\n },\n};\n\n/**\n * [[43]](https://www.w3.org/TR/sparql11-query/#rInsertClause)\n */\nexport const insertClause: SparqlGrammarRule<'insertClause', Quads[]> = <const> {\n name: 'insertClause',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.insertClause);\n return SUBRULE(quadPattern, undefined);\n },\n};\n\n/**\n * [[44]](https://www.w3.org/TR/sparql11-query/#rUsingClause)\n */\nexport const usingClause: SparqlGrammarRule<'usingClause', { value: IriTerm; type: 'default' | 'named' }> = <const> {\n name: 'usingClause',\n impl: ({ CONSUME, SUBRULE1, SUBRULE2, OR }) => () => {\n CONSUME(l.usingClause);\n return OR<RuleDefReturn<typeof usingClause>>([\n { ALT: () => {\n const value = SUBRULE1(iri, undefined);\n return { value, type: 'default' };\n } },\n {\n ALT: () => {\n CONSUME(l.graph.named);\n const value = SUBRULE2(iri, undefined);\n return { value, type: 'named' };\n },\n },\n ]);\n },\n};\n\n/**\n * [[45]](https://www.w3.org/TR/sparql11-query/#rGraphOrDefault)\n */\nexport const graphOrDefault: SparqlRule<'graphOrDefault', GraphOrDefault> = <const> {\n name: 'graphOrDefault',\n impl: ({ SUBRULE, CONSUME, OPTION, OR }) => () => OR<GraphOrDefault>([\n { ALT: () => {\n CONSUME(l.graph.default_);\n return { type: 'graph', default: true };\n } },\n {\n ALT: () => {\n OPTION(() => CONSUME(l.graph.graph));\n const name = SUBRULE(iri, undefined);\n return {\n type: 'graph',\n name,\n };\n },\n },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n if (ast.default) {\n return 'DEFAULT';\n }\n return SUBRULE(iri, <IriTerm> ast.name, undefined);\n },\n};\n\n/**\n * [[46]](https://www.w3.org/TR/sparql11-query/#rGraphRef)\n */\nexport const graphRef: SparqlRule<'graphRef', IriTerm> = <const> {\n name: 'graphRef',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.graph.graph);\n return SUBRULE(iri, undefined);\n },\n gImpl: ({ SUBRULE }) => ast =>\n `GRAPH ${SUBRULE(iri, ast, undefined)}`,\n};\n\n/**\n * [[47]](https://www.w3.org/TR/sparql11-query/#rGraphRefAll)\n */\nexport const graphRefAll: SparqlRule<'graphRefAll', GraphReference> = <const> {\n name: 'graphRefAll',\n impl: ({ SUBRULE, CONSUME, OR }) => () => OR<GraphReference>([\n { ALT: () => {\n const name = SUBRULE(graphRef, undefined);\n return { type: 'graph', name };\n } },\n { ALT: () => {\n CONSUME(l.graph.default_);\n return { default: true };\n } },\n { ALT: () => {\n CONSUME(l.graph.named);\n return { named: true };\n } },\n { ALT: () => {\n CONSUME(l.graph.graphAll);\n return { all: true };\n } },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n if (ast.all) {\n return 'ALL';\n }\n if (ast.default) {\n return 'DEFAULT';\n }\n if (ast.named) {\n return 'NAMED';\n }\n return SUBRULE(graphRef, <IriTerm> ast.name, undefined);\n },\n};\n\n/**\n * [[48]](https://www.w3.org/TR/sparql11-query/#rQuadPattern)\n */\nexport const quadPattern: SparqlGrammarRule<'quadPattern', Quads[]> = <const> {\n name: 'quadPattern',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.symbols.LCurly);\n const val = SUBRULE(quads, undefined);\n CONSUME(l.symbols.RCurly);\n return val;\n },\n};\n\n/**\n * [[49]](https://www.w3.org/TR/sparql11-query/#rQuadData)\n */\nexport const quadData: SparqlRule<'quadData', Quads[]> = <const> {\n name: 'quadData',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n CONSUME(l.symbols.LCurly);\n\n const couldParseVars = ACTION(() => C.parseMode.delete('canParseVars'));\n const val = SUBRULE(quads, undefined);\n ACTION(() => couldParseVars && C.parseMode.add('canParseVars'));\n\n CONSUME(l.symbols.RCurly);\n return val;\n },\n gImpl: ({ SUBRULE }) => ast =>\n `{ ${SUBRULE(quads, ast, undefined)} }`,\n};\n\n/**\n * [[50]](https://www.w3.org/TR/sparql11-query/#rQuads)\n */\nexport const quads: SparqlRule<'quads', Quads[]> = <const> {\n name: 'quads',\n impl: ({ SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {\n const quads: Quads[] = [];\n\n OPTION1(() => {\n const triples = SUBRULE1(triplesTemplate, undefined);\n quads.push({\n type: 'bgp',\n triples,\n });\n });\n\n MANY(() => {\n quads.push(SUBRULE(quadsNotTriples, undefined));\n OPTION2(() => CONSUME(l.symbols.dot));\n OPTION3(() => {\n const triples = SUBRULE2(triplesTemplate, undefined);\n quads.push({\n type: 'bgp',\n triples,\n });\n });\n });\n\n return quads;\n },\n gImpl: ({ SUBRULE }) => ast =>\n ast.map((quad) => {\n if (quad.type === 'bgp') {\n return SUBRULE(triplesBlock, quad, undefined);\n }\n return SUBRULE(quadsNotTriples, quad, undefined);\n }).join(' '),\n};\n\n/**\n * [[51]](https://www.w3.org/TR/sparql11-query/#rQuadsNotTriples)\n */\nexport const quadsNotTriples: SparqlRule<'quadsNotTriples', GraphQuads> = <const> {\n name: 'quadsNotTriples',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.graph.graph);\n const name = SUBRULE(varOrIri, undefined);\n CONSUME(l.symbols.LCurly);\n const triples = OPTION(() => SUBRULE(triplesTemplate, undefined)) ?? [];\n CONSUME(l.symbols.RCurly);\n\n return {\n type: 'graph',\n name,\n triples,\n };\n },\n gImpl: ({ SUBRULE }) => ast =>\n `GRAPH ${SUBRULE(varOrTerm, ast.name, undefined)} {\n${SUBRULE(triplesBlock, { ...ast, type: 'bgp' }, undefined)}\n}`,\n};\n"]}
1
+ {"version":3,"file":"updateUnit.js","sourceRoot":"","sources":["updateUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Localized, RuleDefReturn, Wrap } from '@traqula/core';\nimport { unCapitalize } from '@traqula/core';\nimport type { IToken, TokenType } from 'chevrotain';\nimport * as l from '../../lexer';\nimport type {\n GraphQuads,\n GraphRef,\n GraphRefDefault,\n GraphRefSpecific,\n Quads,\n Update,\n UpdateOperation,\n UpdateOperationAdd,\n UpdateOperationClear,\n UpdateOperationCopy,\n UpdateOperationCreate,\n UpdateOperationDeleteData,\n UpdateOperationDeleteWhere,\n UpdateOperationDrop,\n UpdateOperationInsertData,\n UpdateOperationLoad,\n UpdateOperationModify,\n UpdateOperationMove,\n} from '../../RoundTripTypes';\nimport type {\n SparqlGrammarRule,\n SparqlRule,\n} from '../../Sparql11types';\nimport { updateNoReuseBlankNodeLabels } from '../../validation/validators';\nimport { usingClauseStar } from '../dataSetClause';\nimport { prologue, varOrIri, varOrTerm } from '../general';\nimport { iri } from '../literals';\nimport { triplesBlock, triplesTemplate } from '../tripleBlock';\nimport { groupGraphPattern } from '../whereClause';\n\n/**\n * [[3]](https://www.w3.org/TR/sparql11-query/#rUpdateUnit)\n */\nexport const updateUnit: SparqlGrammarRule<'updateUnit', Update> = <const> {\n name: 'updateUnit',\n impl: ({ SUBRULE }) => () => SUBRULE(update, undefined),\n};\n\n/**\n * [[29]](https://www.w3.org/TR/sparql11-query/#rUpdate)\n */\nexport const update: SparqlRule<'update', Update> = <const> {\n name: 'update',\n impl: ({ ACTION, SUBRULE, SUBRULE1, SUBRULE2, CONSUME, OPTION1, MANY }) => (C) => {\n // Override prologueValues on new reads of prologue and sink them into updates later\n const updates: Update['updates'] = [];\n const prologueValues = SUBRULE1(prologue, undefined);\n updates.push({ context: prologueValues });\n\n let parsedSemi = true;\n MANY({\n GATE: () => parsedSemi,\n DEF: () => {\n parsedSemi = false;\n updates.at(-1)!.operation = SUBRULE(update1, undefined);\n\n OPTION1(() => {\n CONSUME(l.symbols.semi);\n\n parsedSemi = true;\n const innerPrologue = SUBRULE2(prologue, undefined);\n updates.push({ context: innerPrologue });\n });\n },\n });\n return ACTION(() => {\n const update = {\n type: 'update',\n updates,\n loc: C.factory.sourceLocation(\n ...updates[0].context,\n updates[0].operation,\n ...updates.at(-1)!.context,\n updates.at(-1)?.operation,\n ),\n } satisfies Update;\n updateNoReuseBlankNodeLabels(update);\n return update;\n });\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n for (const update of ast.updates) {\n SUBRULE(prologue, update.context, undefined);\n if (update.operation) {\n SUBRULE(update1, update.operation, undefined);\n F.printFilter(ast, () => PRINT_WORD(' ;\\n'));\n }\n }\n },\n};\n\n/**\n * [[30]](https://www.w3.org/TR/sparql11-query/#rUpdate1)\n */\nexport const update1: SparqlRule<'update1', UpdateOperation> = <const> {\n name: 'update1',\n impl: ({ SUBRULE, OR }) => () => OR<UpdateOperation>([\n { ALT: () => SUBRULE(load, undefined) },\n { ALT: () => SUBRULE(clear, undefined) },\n { ALT: () => SUBRULE(drop, undefined) },\n { ALT: () => SUBRULE(add, undefined) },\n { ALT: () => SUBRULE(move, undefined) },\n { ALT: () => SUBRULE(copy, undefined) },\n { ALT: () => SUBRULE(create, undefined) },\n { ALT: () => SUBRULE(insertData, undefined) },\n { ALT: () => SUBRULE(deleteData, undefined) },\n { ALT: () => SUBRULE(deleteWhere, undefined) },\n { ALT: () => SUBRULE(modify, undefined) },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n switch (ast.subType) {\n case ('load'):\n SUBRULE(load, ast, undefined);\n break;\n case ('clear'):\n SUBRULE(clear, ast, undefined);\n break;\n case ('drop'):\n SUBRULE(drop, ast, undefined);\n break;\n case ('add'):\n SUBRULE(add, ast, undefined);\n break;\n case ('move'):\n SUBRULE(move, ast, undefined);\n break;\n case ('copy'):\n SUBRULE(copy, ast, undefined);\n break;\n case ('create'):\n SUBRULE(create, ast, undefined);\n break;\n case ('insertdata'):\n SUBRULE(insertData, ast, undefined);\n break;\n case ('deletedata'):\n SUBRULE(deleteData, ast, undefined);\n break;\n case ('deletewhere'):\n SUBRULE(deleteWhere, ast, undefined);\n break;\n case ('modify'):\n SUBRULE(modify, ast, undefined);\n break;\n }\n },\n};\n\n/**\n * [[31]](https://www.w3.org/TR/sparql11-query/#rLoad)\n */\nexport const load: SparqlRule<'load', UpdateOperationLoad> = <const> {\n name: 'load',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION1, OPTION2 }) => (C) => {\n const loadToken = CONSUME(l.load);\n const silent = OPTION1(() => CONSUME(l.silent));\n const source = SUBRULE1(iri, undefined);\n const destination = OPTION2(() => {\n CONSUME(l.loadInto);\n return SUBRULE1(graphRef, undefined);\n });\n return ACTION(() => C.factory.updateOperationLoad(\n C.factory.sourceLocation(loadToken, source, destination),\n source,\n Boolean(silent),\n destination,\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD('LOAD');\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(iri, ast.source, undefined);\n if (ast.destination) {\n F.printFilter(ast, () => PRINT_WORD('INTO'));\n SUBRULE(graphRefAll, ast.destination, undefined);\n }\n },\n};\n\nfunction clearOrDrop<T extends 'Clear' | 'Drop'>(operation: TokenType & { name: T }):\nSparqlRule<Uncapitalize<T>, UpdateOperationClear | UpdateOperationDrop> {\n return {\n name: unCapitalize(operation.name),\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {\n const opToken = CONSUME(operation);\n const silent = OPTION(() => CONSUME(l.silent));\n const destination = SUBRULE1(graphRefAll, undefined);\n return ACTION(() => C.factory.updateOperationClearDrop(\n unCapitalize(operation.name),\n Boolean(silent),\n destination,\n C.factory.sourceLocation(opToken, destination),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD(operation.name.toUpperCase());\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(graphRefAll, ast.destination, undefined);\n },\n };\n}\n\n/**\n * [[32]](https://www.w3.org/TR/sparql11-query/#rClear)\n */\nexport const clear = clearOrDrop(l.clear);\n\n/**\n * [[33]](https://www.w3.org/TR/sparql11-query/#rDrop)\n */\nexport const drop = clearOrDrop(l.drop);\n\n/**\n * [[34]](https://www.w3.org/TR/sparql11-query/#rCreate)\n */\nexport const create: SparqlRule<'create', UpdateOperationCreate> = <const> {\n name: 'create',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {\n const createToken = CONSUME(l.create);\n const silent = OPTION(() => CONSUME(l.silent));\n const destination = SUBRULE1(graphRef, undefined);\n\n return ACTION(() => C.factory.updateOperationCreate(\n destination,\n Boolean(silent),\n C.factory.sourceLocation(createToken, destination),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD('CREATE');\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(graphRefAll, ast.destination, undefined);\n },\n};\n\nfunction copyMoveAddOperation<T extends 'Copy' | 'Move' | 'Add'>(operation: TokenType & { name: T }):\nSparqlRule<Uncapitalize<T>, UpdateOperationAdd | UpdateOperationMove | UpdateOperationCopy> {\n return {\n name: unCapitalize(operation.name),\n impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION }) => (C) => {\n const op = CONSUME(operation);\n const silent = OPTION(() => CONSUME(l.silent));\n const source = SUBRULE1(graphOrDefault, undefined);\n CONSUME(l.to);\n const destination = SUBRULE2(graphOrDefault, undefined);\n\n return ACTION(() => C.factory.updateOperationAddMoveCopy(\n unCapitalize(operation.name),\n source,\n destination,\n Boolean(silent),\n C.factory.sourceLocation(op, destination),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD(operation.name.toUpperCase());\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(graphRefAll, ast.source, undefined);\n F.printFilter(ast, () => PRINT_WORD('TO'));\n SUBRULE(graphRefAll, ast.destination, undefined);\n },\n };\n}\n\n/**\n * [[35]](https://www.w3.org/TR/sparql11-query/#rAdd)\n */\nexport const add = copyMoveAddOperation(l.add);\n\n/**\n * [[36]](https://www.w3.org/TR/sparql11-query/#rMove)\n */\nexport const move = copyMoveAddOperation(l.move);\n\n/**\n * [[37]](https://www.w3.org/TR/sparql11-query/#rCopy)\n */\nexport const copy = copyMoveAddOperation(l.copy);\n\n/**\n * [[48]](https://www.w3.org/TR/sparql11-query/#rQuadPattern)\n */\nexport const quadPattern: SparqlGrammarRule<'quadPattern', Wrap<Quads[]>> = <const> {\n name: 'quadPattern',\n impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {\n const open = CONSUME(l.symbols.LCurly);\n const val = SUBRULE1(quads, undefined);\n const close = CONSUME(l.symbols.RCurly);\n return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));\n },\n};\n\n/**\n * [[49]](https://www.w3.org/TR/sparql11-query/#rQuadData)\n */\nexport const quadData: SparqlGrammarRule<'quadData', Wrap<Quads[]>> = <const> {\n name: 'quadData',\n impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {\n const open = CONSUME(l.symbols.LCurly);\n\n const couldParseVars = ACTION(() => C.parseMode.delete('canParseVars'));\n const val = SUBRULE1(quads, undefined);\n ACTION(() => couldParseVars && C.parseMode.add('canParseVars'));\n\n const close = CONSUME(l.symbols.RCurly);\n return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));\n },\n};\n\nfunction insertDeleteDelWhere<T extends string>(\n name: T,\n subType: 'insertdata' | 'deletedata' | 'deletewhere',\n cons1: TokenType,\n cons2: TokenType,\n dataRule: SparqlGrammarRule<any, Wrap<Quads[]>>,\n): SparqlRule<T, UpdateOperationInsertData | UpdateOperationDeleteData | UpdateOperationDeleteWhere> {\n return {\n name,\n impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {\n const insDelToken = CONSUME(cons1);\n CONSUME(cons2);\n\n let couldCreateBlankNodes = true;\n if (name !== 'insertData') {\n couldCreateBlankNodes = ACTION(() => C.parseMode.delete('canCreateBlankNodes'));\n }\n const data = SUBRULE1(dataRule, undefined);\n if (name !== 'insertData') {\n ACTION(() => couldCreateBlankNodes && C.parseMode.add('canCreateBlankNodes'));\n }\n\n return ACTION(() =>\n C.factory.updateOperationInsDelDataWhere(subType, data.val, C.factory.sourceLocation(insDelToken, data)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => PRINT_WORD(\n subType === 'insertdata' ?\n 'INSERT DATA' :\n (subType === 'deletedata' ? 'DELETE DATA' : 'DELETE WHERE'),\n '{',\n ));\n SUBRULE(quads, F.wrap(ast.data, ast.loc), undefined);\n F.printFilter(ast, () => PRINT_WORD('}'));\n },\n };\n}\n\n/**\n * [[38]](https://www.w3.org/TR/sparql11-query/#rInsertData)\n */\nexport const insertData = insertDeleteDelWhere('insertData', 'insertdata', l.insertClause, l.dataClause, quadData);\n\n/**\n * [[39]](https://www.w3.org/TR/sparql11-query/#rDeleteData)\n */\nexport const deleteData = insertDeleteDelWhere('deleteData', 'deletedata', l.deleteClause, l.dataClause, quadData);\n\n/**\n * [[40]](https://www.w3.org/TR/sparql11-query/#rDeleteWhere)\n */\nexport const deleteWhere = insertDeleteDelWhere('deleteWhere', 'deletewhere', l.deleteClause, l.where, quadPattern);\n\n/**\n * [[41]](https://www.w3.org/TR/sparql11-query/#rModify)\n */\nexport const modify: SparqlRule<'modify', UpdateOperationModify> = <const> {\n name: 'modify',\n impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => {\n const graph = OPTION1(() => {\n const withToken = CONSUME(l.modifyWith);\n const graph = SUBRULE1(iri, undefined);\n return { withToken, graph };\n });\n const { insert, del } = OR<{\n del: RuleDefReturn<typeof deleteClause> | undefined;\n insert: RuleDefReturn<typeof insertClause> | undefined;\n }>([\n { ALT: () => {\n const del = SUBRULE1(deleteClause, undefined);\n const insert = OPTION2(() => SUBRULE1(insertClause, undefined));\n return { del, insert };\n } },\n { ALT: () => {\n const insert = SUBRULE2(insertClause, undefined);\n return { insert, del: undefined };\n } },\n ]);\n const using = SUBRULE1(usingClauseStar, undefined);\n CONSUME(l.where);\n const where = SUBRULE1(groupGraphPattern, undefined);\n\n return ACTION(() => C.factory.updateOperationModify(\n C.factory.sourceLocation(graph?.withToken, del, insert, where),\n insert?.val ?? [],\n del?.val ?? [],\n where,\n using,\n graph?.graph,\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n if (ast.graph) {\n F.printFilter(ast, () => PRINT_WORD('WITH'));\n SUBRULE(iri, ast.graph, undefined);\n }\n if (ast.delete.length > 0) {\n F.printFilter(ast, () => PRINT_WORD('DELETE', '{'));\n SUBRULE(quads, F.wrap(ast.delete, ast.loc), undefined);\n F.printFilter(ast, () => PRINT_WORD('}'));\n }\n if (ast.insert.length > 0) {\n F.printFilter(ast, () => PRINT_WORD('INSERT', '{'));\n SUBRULE(quads, F.wrap(ast.insert, ast.loc), undefined);\n F.printFilter(ast, () => PRINT_WORD('}'));\n }\n SUBRULE(usingClauseStar, ast.from, undefined);\n F.printFilter(ast, () => PRINT_WORD('WHERE'));\n SUBRULE(groupGraphPattern, ast.where, undefined);\n },\n};\n\n/**\n * [[42]](https://www.w3.org/TR/sparql11-query/#rDeleteClause)\n */\nexport const deleteClause: SparqlGrammarRule<'deleteClause', Wrap<Quads[]>> = <const> {\n name: 'deleteClause',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const delToken = CONSUME(l.deleteClause);\n const couldCreateBlankNodes = ACTION(() => C.parseMode.delete('canCreateBlankNodes'));\n const del = SUBRULE(quadPattern, undefined);\n ACTION(() => couldCreateBlankNodes && C.parseMode.add('canCreateBlankNodes'));\n\n return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));\n },\n};\n\n/**\n * [[43]](https://www.w3.org/TR/sparql11-query/#rInsertClause)\n */\nexport const insertClause: SparqlGrammarRule<'insertClause', Wrap<Quads[]>> = <const> {\n name: 'insertClause',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const insertToken = CONSUME(l.insertClause);\n const insert = SUBRULE(quadPattern, undefined);\n\n return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));\n },\n};\n\n/**\n * [[45]](https://www.w3.org/TR/sparql11-query/#rGraphOrDefault)\n */\nexport const graphOrDefault: SparqlGrammarRule<'graphOrDefault', GraphRefDefault | GraphRefSpecific> = <const> {\n name: 'graphOrDefault',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => C => OR<GraphRefDefault | GraphRefSpecific>([\n { ALT: () => {\n const def = CONSUME(l.graph.default_);\n return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));\n } },\n { ALT: () => {\n const graph = OPTION(() => CONSUME(l.graph.graph));\n const name = SUBRULE1(iri, undefined);\n return ACTION(() =>\n C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph, name)));\n } },\n ]),\n};\n\n/**\n * [[46]](https://www.w3.org/TR/sparql11-query/#rGraphRef)\n */\nexport const graphRef: SparqlRule<'graphRef', GraphRefSpecific> = <const> {\n name: 'graphRef',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const graph = CONSUME(l.graph.graph);\n const val = SUBRULE(iri, undefined);\n return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph, val)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('GRAPH'));\n SUBRULE(iri, ast.graph, undefined);\n },\n};\n\n/**\n * [[47]](https://www.w3.org/TR/sparql11-query/#rGraphRefAll)\n */\nexport const graphRefAll: SparqlRule<'graphRefAll', GraphRef> = <const> {\n name: 'graphRefAll',\n impl: ({ ACTION, SUBRULE, CONSUME, OR }) => C => OR<GraphRef>([\n { ALT: () => SUBRULE(graphRef, undefined) },\n { ALT: () => {\n const def = CONSUME(l.graph.default_);\n return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));\n } },\n { ALT: () => {\n const named = CONSUME(l.graph.named);\n return ACTION(() => C.factory.graphRefNamed(C.factory.sourceLocation(named)));\n } },\n { ALT: () => {\n const graphAll = CONSUME(l.graph.graphAll);\n return ACTION(() => C.factory.graphRefAll(C.factory.sourceLocation(graphAll)));\n } },\n ]),\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n if (F.isGraphRefSpecific(ast)) {\n SUBRULE(graphRef, ast, undefined);\n } else if (F.isGraphRefDefault(ast)) {\n F.printFilter(ast, () => PRINT_WORD('DEFAULT'));\n } else if (F.isGraphRefNamed(ast)) {\n F.printFilter(ast, () => PRINT_WORD('NAMED'));\n } else if (F.isGraphRefAll(ast)) {\n F.printFilter(ast, () => PRINT_WORD('ALL'));\n }\n },\n};\n\n/**\n * [[50]](https://www.w3.org/TR/sparql11-query/#rQuads)\n */\nexport const quads: SparqlRule<'quads', Wrap<Quads[]>> = <const> {\n name: 'quads',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => (C) => {\n const quads: Quads[] = [];\n let last: IToken | Localized | undefined;\n\n OPTION1(() => {\n const triples = SUBRULE1(triplesTemplate, undefined);\n last = triples;\n ACTION(() => quads.push(triples));\n });\n\n MANY(() => {\n const notTriples = SUBRULE(quadsNotTriples, undefined);\n last = notTriples;\n quads.push(notTriples);\n OPTION2(() => {\n const dotToken = CONSUME(l.symbols.dot);\n last = dotToken;\n return dotToken;\n });\n OPTION3(() => {\n const triples = SUBRULE2(triplesTemplate, undefined);\n last = triples;\n ACTION(() => quads.push(triples));\n });\n });\n\n return ACTION(() => C.factory.wrap(quads, C.factory.sourceLocation(quads.at(0), last)));\n },\n gImpl: ({ SUBRULE }) => (ast, { factory: F }) => {\n for (const quad of ast.val) {\n if (F.isPattern(quad)) {\n SUBRULE(triplesBlock, quad, undefined);\n } else {\n SUBRULE(quadsNotTriples, quad, undefined);\n }\n }\n },\n};\n\n/**\n * [[51]](https://www.w3.org/TR/sparql11-query/#rQuadsNotTriples)\n */\nexport const quadsNotTriples: SparqlRule<'quadsNotTriples', GraphQuads> = <const> {\n name: 'quadsNotTriples',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {\n const graph = CONSUME(l.graph.graph);\n const name = SUBRULE1(varOrIri, undefined);\n CONSUME(l.symbols.LCurly);\n const triples = OPTION(() => SUBRULE1(triplesTemplate, undefined));\n const close = CONSUME(l.symbols.RCurly);\n\n return ACTION(() => C.factory.graphQuads(\n name,\n triples ?? C.factory.patternBgp([], C.factory.sourceLocationNoMaterialize()),\n C.factory.sourceLocation(graph, close),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('GRAPH'));\n SUBRULE(varOrTerm, ast.graph, undefined);\n F.printFilter(ast, () => PRINT_WORD('{'));\n SUBRULE(triplesBlock, ast.triples, undefined);\n F.printFilter(ast, () => PRINT_WORD('}'));\n },\n};\n"]}
@@ -1,12 +1,15 @@
1
- import type { BindPattern, BlankTerm, BlockPattern, Expression, FilterPattern, FunctionCallExpression, GraphPattern, GroupPattern, IriTerm, LiteralTerm, MinusPattern, OptionalPattern, Pattern, ServicePattern, SparqlGrammarRule, SparqlRule, UnionPattern, ValuePatternRow, ValuesPattern } from '../Sparql11types';
1
+ import type { Wrap } from '@traqula/core';
2
+ import type { Expression, ExpressionFunctionCall, PatternFilter, Pattern, PatternGroup, PatternUnion, PatternMinus, TermIri, TermLiteral, PatternBind, PatternService, PatternOptional, PatternGraph, PatternValues, ValuePatternRow, SubSelect, PatternBgp } from '../RoundTripTypes';
3
+ import type { SparqlGeneratorRule, SparqlGrammarRule, SparqlRule } from '../Sparql11types';
2
4
  /**
3
5
  * [[17]](https://www.w3.org/TR/sparql11-query/#rWhereClause)
4
6
  */
5
- export declare const whereClause: SparqlGrammarRule<'whereClause', Pattern[]>;
7
+ export declare const whereClause: SparqlRule<'whereClause', Wrap<PatternGroup>>;
6
8
  /**
7
9
  * [[53]](https://www.w3.org/TR/sparql11-query/#rGroupGraphPattern)
8
10
  */
9
- export declare const groupGraphPattern: SparqlRule<'groupGraphPattern', GroupPattern>;
11
+ export declare const groupGraphPattern: SparqlRule<'groupGraphPattern', PatternGroup>;
12
+ export declare const generatePattern: SparqlGeneratorRule<'generatePattern', Pattern>;
10
13
  /**
11
14
  * [[54]](https://www.w3.org/TR/sparql11-query/#rGroupGraphPatternSub)
12
15
  */
@@ -14,56 +17,55 @@ export declare const groupGraphPatternSub: SparqlGrammarRule<'groupGraphPatternS
14
17
  /**
15
18
  * [[56]](https://www.w3.org/TR/sparql11-query/#rGraphPatternNotTriples)
16
19
  */
17
- type GraphPatternNotTriplesReturn = ValuesPattern | BindPattern | FilterPattern | BlockPattern;
18
- export declare const graphPatternNotTriples: SparqlRule<'graphPatternNotTriples', GraphPatternNotTriplesReturn>;
20
+ export declare const graphPatternNotTriples: SparqlRule<'graphPatternNotTriples', Exclude<Pattern, SubSelect | PatternBgp>>;
19
21
  /**
20
22
  * [[57]](https://www.w3.org/TR/sparql11-query/#rOptionalGraphPattern)
21
23
  */
22
- export declare const optionalGraphPattern: SparqlRule<'optionalGraphPattern', OptionalPattern>;
24
+ export declare const optionalGraphPattern: SparqlRule<'optionalGraphPattern', PatternOptional>;
23
25
  /**
24
26
  * [[58]](https://www.w3.org/TR/sparql11-query/#rGraphGraphPattern)
25
27
  */
26
- export declare const graphGraphPattern: SparqlRule<'graphGraphPattern', GraphPattern>;
28
+ export declare const graphGraphPattern: SparqlRule<'graphGraphPattern', PatternGraph>;
27
29
  /**
28
30
  * [[59]](https://www.w3.org/TR/sparql11-query/#rServiceGraphPattern)
29
31
  */
30
- export declare const serviceGraphPattern: SparqlRule<'serviceGraphPattern', ServicePattern>;
32
+ export declare const serviceGraphPattern: SparqlRule<'serviceGraphPattern', PatternService>;
31
33
  /**
32
34
  * [[60]](https://www.w3.org/TR/sparql11-query/#rBind)
33
35
  */
34
- export declare const bind: SparqlRule<'bind', BindPattern>;
36
+ export declare const bind: SparqlRule<'bind', PatternBind>;
35
37
  /**
36
38
  * [[61]](https://www.w3.org/TR/sparql11-query/#rInlineData)
37
39
  */
38
- export declare const inlineData: SparqlGrammarRule<'inlineData', ValuesPattern>;
40
+ export declare const inlineData: SparqlRule<'inlineData', PatternValues>;
39
41
  /**
40
42
  * [[62]](https://www.w3.org/TR/sparql11-query/#rDataBlock)
41
43
  */
42
- export declare const dataBlock: SparqlGrammarRule<'dataBlock', ValuePatternRow[]>;
44
+ export declare const dataBlock: SparqlGrammarRule<'dataBlock', Wrap<ValuePatternRow[]>>;
43
45
  /**
44
46
  * [[63]](https://www.w3.org/TR/sparql11-query/#rInlineDataOneVar)
45
47
  */
46
- export declare const inlineDataOneVar: SparqlGrammarRule<'inlineDataOneVar', ValuePatternRow[]>;
48
+ export declare const inlineDataOneVar: SparqlGrammarRule<'inlineDataOneVar', Wrap<ValuePatternRow[]>>;
47
49
  /**
48
50
  * [[64]](https://www.w3.org/TR/sparql11-query/#rInlineDataFull)
49
51
  */
50
- export declare const inlineDataFull: SparqlRule<'inlineDataFull', ValuePatternRow[]>;
52
+ export declare const inlineDataFull: SparqlGrammarRule<'inlineDataFull', Wrap<ValuePatternRow[]>>;
51
53
  /**
52
54
  * [[65]](https://www.w3.org/TR/sparql11-query/#rDataBlockValue)
53
55
  */
54
- export declare const dataBlockValue: SparqlRule<'dataBlockValue', IriTerm | BlankTerm | LiteralTerm | undefined>;
56
+ export declare const dataBlockValue: SparqlGrammarRule<'dataBlockValue', TermIri | TermLiteral | undefined>;
55
57
  /**
56
58
  * [[66]](https://www.w3.org/TR/sparql11-query/#rMinusGraphPattern)
57
59
  */
58
- export declare const minusGraphPattern: SparqlRule<'minusGraphPattern', MinusPattern>;
60
+ export declare const minusGraphPattern: SparqlRule<'minusGraphPattern', PatternMinus>;
59
61
  /**
60
62
  * [[67]](https://www.w3.org/TR/sparql11-query/#rGroupOrUnionGraphPattern)
61
63
  */
62
- export declare const groupOrUnionGraphPattern: SparqlRule<'groupOrUnionGraphPattern', GroupPattern | UnionPattern>;
64
+ export declare const groupOrUnionGraphPattern: SparqlRule<'groupOrUnionGraphPattern', PatternGroup | PatternUnion>;
63
65
  /**
64
66
  * [[68]](https://www.w3.org/TR/sparql11-query/#rFilter)
65
67
  */
66
- export declare const filter: SparqlRule<'filter', FilterPattern>;
68
+ export declare const filter: SparqlRule<'filter', PatternFilter>;
67
69
  /**
68
70
  * [[69]](https://www.w3.org/TR/sparql11-query/#rConstraint)
69
71
  */
@@ -71,5 +73,4 @@ export declare const constraint: SparqlGrammarRule<'constraint', Expression>;
71
73
  /**
72
74
  * [[70]](https://www.w3.org/TR/sparql11-query/#rFunctionCall)
73
75
  */
74
- export declare const functionCall: SparqlGrammarRule<'functionCall', FunctionCallExpression>;
75
- export {};
76
+ export declare const functionCall: SparqlGrammarRule<'functionCall', ExpressionFunctionCall>;