@traqula/parser-sparql-1-2 0.0.24 → 1.0.0
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.
- package/README.md +2 -0
- package/dist/cjs/lib/Parser.js +25 -6
- package/dist/cjs/lib/Parser.js.map +1 -1
- package/dist/esm/lib/Parser.d.ts +32 -14
- package/dist/esm/lib/Parser.js +26 -7
- package/dist/esm/lib/Parser.js.map +1 -1
- package/package.json +11 -10
package/README.md
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
# Traqula parser engine for SPARQL 1.2
|
|
10
10
|
|
|
11
|
+
[](https://www.npmjs.com/package/@traqula/parser-sparql-1-2)
|
|
12
|
+
|
|
11
13
|
Traqula Sparql 1.2 is a [SPARQL 1.2](https://www.w3.org/TR/sparql12-query/#grammar) query parser for TypeScript.
|
|
12
14
|
It is a grammar extension of [Traqula engine-sparql-1-1](https://github.com/comunica/traqula/tree/main/engines/engine-sparql-1-1)
|
|
13
15
|
|
package/dist/cjs/lib/Parser.js
CHANGED
|
@@ -25,28 +25,47 @@ exports.sparql12ParserBuilder = core_1.ParserBuilder.create(parser_sparql_1_1_1.
|
|
|
25
25
|
.patchRule(rules_sparql_1_2_1.gram.rdfLiteral)
|
|
26
26
|
.patchRule(rules_sparql_1_2_1.gram.unaryExpression)
|
|
27
27
|
.patchRule(rules_sparql_1_2_1.gram.prologue);
|
|
28
|
+
/**
|
|
29
|
+
* Generator that can generate a SPARQL 1.2 AST given a SPARQL 1.2 string.
|
|
30
|
+
*/
|
|
28
31
|
class Parser {
|
|
29
32
|
parser;
|
|
30
|
-
|
|
33
|
+
defaultContext;
|
|
31
34
|
constructor(args = {}) {
|
|
32
35
|
this.parser = exports.sparql12ParserBuilder.build({
|
|
33
36
|
...args,
|
|
34
37
|
queryPreProcessor: rules_sparql_1_1_1.sparqlCodepointEscape,
|
|
35
38
|
tokenVocabulary: rules_sparql_1_2_1.lex.sparql12LexerBuilder.tokenVocabulary,
|
|
36
39
|
});
|
|
40
|
+
this.defaultContext = (0, rules_sparql_1_2_1.completeParseContext)(args.defaultContext ?? {});
|
|
37
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse a query string starting from the
|
|
44
|
+
* [QueryUnit](https://www.w3.org/TR/sparql12-query/#rQueryUnit)
|
|
45
|
+
* or [QueryUpdate](https://www.w3.org/TR/sparql12-query/#rUpdateUnit) rules.
|
|
46
|
+
* @param query
|
|
47
|
+
* @param context
|
|
48
|
+
*/
|
|
38
49
|
parse(query, context = {}) {
|
|
39
|
-
|
|
50
|
+
const ast = this.parser.queryOrUpdate(query, (0, rules_sparql_1_2_1.copyParseContext)({ ...this.defaultContext, ...context }));
|
|
51
|
+
ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);
|
|
52
|
+
return ast;
|
|
40
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Parse a query string starting from the [Path](https://www.w3.org/TR/sparql12-query/#rPath) grammar rule.
|
|
56
|
+
* @param query
|
|
57
|
+
* @param context
|
|
58
|
+
*/
|
|
41
59
|
parsePath(query, context = {}) {
|
|
42
|
-
const
|
|
43
|
-
|
|
60
|
+
const ast = this.parser.path(query, (0, rules_sparql_1_2_1.copyParseContext)({ ...this.defaultContext, ...context }));
|
|
61
|
+
ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);
|
|
62
|
+
if (this.defaultContext.astFactory.isPathPure(ast)) {
|
|
44
63
|
return {
|
|
45
|
-
...
|
|
64
|
+
...ast,
|
|
46
65
|
prefixes: {},
|
|
47
66
|
};
|
|
48
67
|
}
|
|
49
|
-
return
|
|
68
|
+
return ast;
|
|
50
69
|
}
|
|
51
70
|
}
|
|
52
71
|
exports.Parser = Parser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../../lib/Parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ParserBuilder } from '@traqula/core';\nimport type { Patch, Wrap, ParserBuildArgs } from '@traqula/core';\nimport { sparql11ParserBuilder } from '@traqula/parser-sparql-1-1';\nimport {\n gram as g11,\n type TermIri,\n sparqlCodepointEscape,\n} from '@traqula/rules-sparql-1-1';\nimport { completeParseContext, AstFactory, gram as S12, lex as l12 } from '@traqula/rules-sparql-1-2';\nimport type * as T12 from '@traqula/rules-sparql-1-2';\n\nexport const sparql12ParserBuilder = ParserBuilder.create(sparql11ParserBuilder)\n .widenContext<T12.SparqlContext>()\n .typePatch<{\n /// GeneralFile\n queryOrUpdate: [ T12.SparqlQuery];\n /// Query Unit file\n [g11.selectQuery.name]: [Omit<T12.QuerySelect, g11.HandledByBase>];\n [g11.subSelect.name]: [ Omit<T12.SubSelect, 'prefixes'>];\n [g11.selectClause.name]: [Wrap<Pick<T12.QuerySelect, 'variables' | 'distinct' | 'reduced'>>];\n [g11.constructQuery.name]: [Omit<T12.QueryConstruct, g11.HandledByBase>];\n [g11.describeQuery.name]: [Omit<T12.QueryDescribe, g11.HandledByBase>];\n [g11.askQuery.name]: [Omit<T12.QueryAsk, g11.HandledByBase>];\n [g11.valuesClause.name]: [T12.PatternValues[] | undefined];\n [g11.constructTemplate.name]: [Wrap<T12.PatternBgp>];\n [g11.constructTriples.name]: [T12.PatternBgp];\n /// Update Unit file\n [g11.update1.name]: [T12.UpdateOperation];\n [g11.load.name]: [T12.UpdateOperationLoad];\n [g11.clear.name]: [T12.UpdateOperationClear];\n [g11.drop.name]: [T12.UpdateOperationDrop];\n [g11.create.name]: [T12.UpdateOperationCreate];\n [g11.add.name]: [T12.UpdateOperationAdd];\n [g11.move.name]: [T12.UpdateOperationMove];\n [g11.copy.name]: [T12.UpdateOperationCopy];\n [g11.quadPattern.name]: [Wrap<T12.Quads[]>];\n [g11.quadData.name]: [Wrap<T12.Quads[]>];\n [g11.insertData.name]: [T12.UpdateOperationInsertData];\n [g11.deleteData.name]: [T12.UpdateOperationDeleteData];\n [g11.deleteWhere.name]: [T12.UpdateOperationDeleteWhere];\n [g11.modify.name]: [T12.UpdateOperationModify];\n [g11.deleteClause.name]: [Wrap<T12.Quads[]>];\n [g11.insertClause.name]: [Wrap<T12.Quads[]>];\n [g11.graphOrDefault.name]: [T12.GraphRefDefault | T12.GraphRefSpecific];\n [g11.graphRef.name]: [T12.GraphRefSpecific];\n [g11.graphRefAll.name]: [T12.GraphRef];\n [g11.quads.name]: [Wrap<T12.Quads[]>];\n [g11.quadsNotTriples.name]: [T12.GraphQuads];\n /// Built-in functions\n [g11.builtInStr.name]: [T12.ExpressionOperation];\n [g11.builtInLang.name]: [T12.ExpressionOperation];\n [g11.builtInLangmatches.name]: [T12.ExpressionOperation];\n [g11.builtInDatatype.name]: [T12.ExpressionOperation];\n [g11.builtInBound.name]: [T12.ExpressionOperation];\n [g11.builtInIri.name]: [T12.ExpressionOperation];\n [g11.builtInUri.name]: [T12.ExpressionOperation];\n [g11.builtInBnodeSparqlJs.name]: [T12.ExpressionOperation];\n [g11.builtInRand.name]: [T12.ExpressionOperation];\n [g11.builtInAbs.name]: [T12.ExpressionOperation];\n [g11.builtInCeil.name]: [T12.ExpressionOperation];\n [g11.builtInFloor.name]: [T12.ExpressionOperation];\n [g11.builtInRound.name]: [T12.ExpressionOperation];\n [g11.builtInConcat.name]: [T12.ExpressionOperation];\n [g11.substringExpression.name]: [T12.ExpressionOperation];\n [g11.builtInStrlen.name]: [T12.ExpressionOperation];\n [g11.strReplaceExpression.name]: [T12.ExpressionOperation];\n [g11.builtInUcase.name]: [T12.ExpressionOperation];\n [g11.builtInLcase.name]: [T12.ExpressionOperation];\n [g11.builtInEncode_for_uri.name]: [T12.ExpressionOperation];\n [g11.builtInContains.name]: [T12.ExpressionOperation];\n [g11.builtInStrstarts.name]: [T12.ExpressionOperation];\n [g11.builtInStrends.name]: [T12.ExpressionOperation];\n [g11.builtInStrbefore.name]: [T12.ExpressionOperation];\n [g11.builtInStrafter.name]: [T12.ExpressionOperation];\n [g11.builtInYear.name]: [T12.ExpressionOperation];\n [g11.builtInMonth.name]: [T12.ExpressionOperation];\n [g11.builtInDay.name]: [T12.ExpressionOperation];\n [g11.builtInHours.name]: [T12.ExpressionOperation];\n [g11.builtInMinutes.name]: [T12.ExpressionOperation];\n [g11.builtInSeconds.name]: [T12.ExpressionOperation];\n [g11.builtInTimezone.name]: [T12.ExpressionOperation];\n [g11.builtInTz.name]: [T12.ExpressionOperation];\n [g11.builtInNow.name]: [T12.ExpressionOperation];\n [g11.builtInUuid.name]: [T12.ExpressionOperation];\n [g11.builtInStruuid.name]: [T12.ExpressionOperation];\n [g11.builtInMd5.name]: [T12.ExpressionOperation];\n [g11.builtInSha1.name]: [T12.ExpressionOperation];\n [g11.builtInSha256.name]: [T12.ExpressionOperation];\n [g11.builtInSha384.name]: [T12.ExpressionOperation];\n [g11.builtInSha512.name]: [T12.ExpressionOperation];\n [g11.builtInCoalesce.name]: [T12.ExpressionOperation];\n [g11.builtInIf.name]: [T12.ExpressionOperation];\n [g11.builtInStrlang.name]: [T12.ExpressionOperation];\n [g11.builtInStrdt.name]: [T12.ExpressionOperation];\n [g11.builtInSameterm.name]: [T12.ExpressionOperation];\n [g11.builtInIsiri.name]: [T12.ExpressionOperation];\n [g11.builtInIsuri.name]: [T12.ExpressionOperation];\n [g11.builtInIsblank.name]: [T12.ExpressionOperation];\n [g11.builtInIsliteral.name]: [T12.ExpressionOperation];\n [g11.builtInIsnumeric.name]: [T12.ExpressionOperation];\n [g11.existsFunc.name]: [T12.ExpressionPatternOperation];\n [g11.notExistsFunc.name]: [T12.ExpressionPatternOperation];\n [g11.aggregateCount.name]: [T12.ExpressionAggregateOnWildcard | T12.ExpressionAggregateDefault];\n [g11.aggregateSum.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateMin.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateMax.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateAvg.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateSample.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateGroup_concat.name]: [T12.ExpressionAggregateDefault | T12.ExpressionAggregateSeparator];\n [g11.aggregate.name]: [T12.ExpressionAggregate];\n [g11.builtInCall.name]: [T12.Expression];\n /// DatasetClause\n [g11.datasetClause.name]: [Wrap<T12.DatasetClauses['clauses'][0]>];\n [g11.defaultGraphClause.name]: [T12.TermIri];\n [g11.usingClause.name]: [Wrap<T12.DatasetClauses['clauses'][0]>];\n [g11.datasetClauseStar.name]: [T12.DatasetClauses];\n [g11.usingClauseStar.name]: [T12.DatasetClauses];\n [g11.namedGraphClause.name]: [Wrap<T12.TermIri>];\n [g11.sourceSelector.name]: [T12.TermIri];\n // Expression file\n [g11.argList.name]: [Wrap<Patch<g11.IArgList, { args: T12.Expression[] }>>];\n [g11.expressionList.name]: [Wrap<T12.Expression[]>];\n [g11.expression.name]: [T12.Expression];\n [g11.conditionalOrExpression.name]: [T12.ExpressionOperation | T12.Expression];\n [g11.conditionalAndExpression.name]: [T12.Expression];\n [g11.valueLogical.name]: [T12.Expression];\n [g11.relationalExpression.name]: [T12.ExpressionOperation | T12.Expression];\n [g11.numericExpression.name]: [T12.Expression];\n [g11.additiveExpression.name]: [T12.Expression];\n [g11.multiplicativeExpression.name]: [T12.Expression];\n [g11.unaryExpression.name]: [T12.Expression];\n [g11.primaryExpression.name]: [T12.Expression];\n [g11.brackettedExpression.name]: [T12.Expression];\n [g11.iriOrFunction.name]: [T12.TermIri | T12.ExpressionFunctionCall];\n /// General\n [g11.prologue.name]: [T12.ContextDefinition[]];\n [g11.baseDecl.name]: [T12.ContextDefinition];\n [g11.prefixDecl.name]: [T12.ContextDefinition];\n [g11.verb.name]: [T12.TermVariable | T12.TermIri];\n [g11.varOrTerm.name]: [T12.Term];\n [g11.varOrIri.name]: [T12.TermIri | T12.TermVariable];\n [g11.var_.name]: [T12.TermVariable];\n [g11.graphTerm.name]: [T12.GraphTerm];\n /// Literals\n [g11.rdfLiteral.name]: [T12.TermLiteral];\n [g11.numericLiteral.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralUnsigned.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralPositive.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralNegative.name]: [T12.TermLiteralTyped];\n [g11.booleanLiteral.name]: [T12.TermLiteralTyped];\n [g11.string.name]: [T12.TermLiteralStr];\n [g11.iri.name]: [T12.TermIri];\n [g11.iriFull.name]: [T12.TermIriFull];\n [g11.prefixedName.name]: [T12.TermIriPrefixed];\n [g11.blankNode.name]: [T12.TermBlank];\n [g11.verbA.name]: [T12.TermIriFull];\n /// / Paths: unchanged\n /// / SolutionModifiers\n [g11.solutionModifier.name]: [T12.SolutionModifiers];\n [g11.groupClause.name]: [T12.SolutionModifierGroup];\n [g11.groupCondition.name]: [T12.Expression | T12.SolutionModifierGroupBind];\n [g11.havingClause.name]: [T12.SolutionModifierHaving];\n [g11.havingCondition.name]: [T12.Expression];\n [g11.orderClause.name]: [T12.SolutionModifierOrder];\n [g11.orderCondition.name]: [T12.Ordering];\n [g11.limitOffsetClauses.name]: [T12.SolutionModifierLimitOffset];\n [g11.limitClause.name]: [Wrap<number>];\n [g11.offsetClause.name]: [ Wrap<number>];\n /// tripleBlock\n [g11.triplesBlock.name]: [T12.PatternBgp];\n [g11.triplesSameSubject.name]: [T12.BasicGraphPattern];\n [g11.triplesSameSubjectPath.name]: [T12.BasicGraphPattern];\n [g11.triplesTemplate.name]: [T12.PatternBgp];\n [g11.propertyList.name]: [T12.TripleNesting[]];\n [g11.propertyListPath.name]: [T12.TripleNesting[]];\n [g11.propertyListNotEmpty.name]: [T12.TripleNesting[]];\n [g11.propertyListPathNotEmpty.name]: [T12.TripleNesting[]];\n [g11.verbPath.name]: [T12.Path];\n [g11.verbSimple.name]: [T12.TermVariable];\n [g11.objectList.name]: [T12.TripleNesting[], [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.objectListPath.name]: [T12.TripleNesting, [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.object.name]: [T12.TripleNesting, [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.objectPath.name]: [T12.TripleNesting[], [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.collection.name]: [T12.TripleCollectionList];\n [g11.collectionPath.name]: [T12.TripleCollectionList];\n [g11.triplesNode.name]: [T12.TripleCollection];\n [g11.triplesNodePath.name]: [T12.TripleCollection];\n [g11.blankNodePropertyList.name]: [T12.TripleCollectionBlankNodeProperties];\n [g11.blankNodePropertyListPath.name]: [T12.TripleCollectionBlankNodeProperties];\n [g11.graphNode.name]: [T12.Term | T12.TripleCollection];\n [g11.graphNodePath.name]: [T12.Term | T12.TripleCollection];\n /// WhereClause\n [g11.whereClause.name]: [Wrap<T12.PatternGroup>];\n [g11.groupGraphPattern.name]: [T12.PatternGroup];\n [g11.groupGraphPatternSub.name]: [T12.Pattern[]];\n [g11.graphPatternNotTriples.name]: [Exclude<T12.Pattern, T12.SubSelect | T12.PatternBgp>];\n [g11.optionalGraphPattern.name]: [T12.PatternOptional];\n [g11.graphGraphPattern.name]: [T12.PatternGraph];\n [g11.serviceGraphPattern.name]: [T12.PatternService];\n [g11.bind.name]: [T12.PatternBind];\n [g11.inlineData.name]: [T12.PatternValues];\n [g11.dataBlock.name]: [T12.PatternValues];\n [g11.inlineDataOneVar.name]: [T12.PatternValues];\n [g11.inlineDataFull.name]: [T12.PatternValues];\n [g11.dataBlockValue.name]: [T12.TermIri | T12.TermLiteral | undefined];\n [g11.minusGraphPattern.name]: [T12.PatternMinus];\n [g11.groupOrUnionGraphPattern.name]: [T12.PatternGroup | T12.PatternUnion];\n [g11.filter.name]: [T12.PatternFilter];\n [g11.constraint.name]: [T12.Expression];\n [g11.functionCall.name]: [T12.ExpressionFunctionCall];\n }>()\n .addMany(\n S12.reifiedTripleBlock,\n S12.reifiedTripleBlockPath,\n S12.reifier,\n S12.varOrReifierId,\n S12.annotation,\n S12.annotationPath,\n S12.annotationBlockPath,\n S12.annotationBlock,\n S12.reifiedTriple,\n S12.reifiedTripleSubject,\n S12.reifiedTripleObject,\n S12.tripleTerm,\n S12.tripleTermSubject,\n S12.tripleTermObject,\n S12.tripleTermData,\n S12.tripleTermDataSubject,\n S12.tripleTermDataObject,\n S12.exprTripleTerm,\n S12.exprTripleTermSubject,\n S12.exprTripleTermObject,\n )\n .addMany(\n S12.versionDecl,\n S12.versionSpecifier,\n )\n .addMany(\n S12.buildInLangDir,\n S12.buildInLangStrDir,\n S12.buildInHasLang,\n S12.buildInHasLangDir,\n S12.buildInIsTriple,\n S12.buildInTriple,\n S12.buildInSubject,\n S12.buildInPredicate,\n S12.buildInObject,\n )\n .patchRule(S12.dataBlockValue)\n .patchRule(S12.triplesSameSubject)\n .patchRule(S12.triplesSameSubjectPath)\n .patchRule(S12.object)\n .patchRule(S12.objectPath)\n .patchRule(S12.graphNode)\n .patchRule(S12.graphNodePath)\n .patchRule(S12.varOrTerm)\n .deleteRule(g11.graphTerm.name)\n .patchRule(S12.primaryExpression)\n .patchRule(S12.builtInCall)\n .patchRule(S12.rdfLiteral)\n .patchRule(S12.unaryExpression)\n .patchRule(S12.prologue);\n\nexport type SparqlParser = ReturnType<typeof sparql12ParserBuilder.build>;\n\nexport class Parser {\n private readonly parser: SparqlParser;\n\n private readonly F = new AstFactory();\n\n public constructor(args: Pick<ParserBuildArgs, 'parserConfig' | 'lexerConfig'> = {}) {\n this.parser = sparql12ParserBuilder.build({\n ...args,\n queryPreProcessor: sparqlCodepointEscape,\n tokenVocabulary: l12.sparql12LexerBuilder.tokenVocabulary,\n });\n }\n\n public parse(query: string, context: Partial<T12.SparqlContext> = {}): T12.SparqlQuery {\n return this.parser.queryOrUpdate(query, completeParseContext(context));\n }\n\n public parsePath(\n query: string,\ncontext: Partial<T12.SparqlContext> = {},\n ): (T12.Path & { prefixes: object }) | TermIri {\n const res = this.parser.path(query, completeParseContext(context));\n if (this.F.isPathPure(res)) {\n return {\n ...res,\n prefixes: {},\n };\n }\n return res;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../../lib/Parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ParserBuilder } from '@traqula/core';\nimport type { Patch, Wrap, ParserBuildArgs } from '@traqula/core';\nimport { sparql11ParserBuilder } from '@traqula/parser-sparql-1-1';\nimport {\n gram as g11,\n sparqlCodepointEscape,\n} from '@traqula/rules-sparql-1-1';\nimport type {\n TermIri,\n} from '@traqula/rules-sparql-1-1';\nimport { completeParseContext, copyParseContext, gram as S12, lex as l12 } from '@traqula/rules-sparql-1-2';\nimport type * as T12 from '@traqula/rules-sparql-1-2';\n\nexport const sparql12ParserBuilder = ParserBuilder.create(sparql11ParserBuilder)\n .widenContext<T12.SparqlContext>()\n .typePatch<{\n /// GeneralFile\n queryOrUpdate: [ T12.SparqlQuery];\n /// Query Unit file\n [g11.selectQuery.name]: [Omit<T12.QuerySelect, g11.HandledByBase>];\n [g11.subSelect.name]: [ Omit<T12.SubSelect, 'prefixes'>];\n [g11.selectClause.name]: [Wrap<Pick<T12.QuerySelect, 'variables' | 'distinct' | 'reduced'>>];\n [g11.constructQuery.name]: [Omit<T12.QueryConstruct, g11.HandledByBase>];\n [g11.describeQuery.name]: [Omit<T12.QueryDescribe, g11.HandledByBase>];\n [g11.askQuery.name]: [Omit<T12.QueryAsk, g11.HandledByBase>];\n [g11.valuesClause.name]: [T12.PatternValues[] | undefined];\n [g11.constructTemplate.name]: [Wrap<T12.PatternBgp>];\n [g11.constructTriples.name]: [T12.PatternBgp];\n /// Update Unit file\n [g11.update1.name]: [T12.UpdateOperation];\n [g11.load.name]: [T12.UpdateOperationLoad];\n [g11.clear.name]: [T12.UpdateOperationClear];\n [g11.drop.name]: [T12.UpdateOperationDrop];\n [g11.create.name]: [T12.UpdateOperationCreate];\n [g11.add.name]: [T12.UpdateOperationAdd];\n [g11.move.name]: [T12.UpdateOperationMove];\n [g11.copy.name]: [T12.UpdateOperationCopy];\n [g11.quadPattern.name]: [Wrap<T12.Quads[]>];\n [g11.quadData.name]: [Wrap<T12.Quads[]>];\n [g11.insertData.name]: [T12.UpdateOperationInsertData];\n [g11.deleteData.name]: [T12.UpdateOperationDeleteData];\n [g11.deleteWhere.name]: [T12.UpdateOperationDeleteWhere];\n [g11.modify.name]: [T12.UpdateOperationModify];\n [g11.deleteClause.name]: [Wrap<T12.Quads[]>];\n [g11.insertClause.name]: [Wrap<T12.Quads[]>];\n [g11.graphOrDefault.name]: [T12.GraphRefDefault | T12.GraphRefSpecific];\n [g11.graphRef.name]: [T12.GraphRefSpecific];\n [g11.graphRefAll.name]: [T12.GraphRef];\n [g11.quads.name]: [Wrap<T12.Quads[]>];\n [g11.quadsNotTriples.name]: [T12.GraphQuads];\n /// Built-in functions\n [g11.builtInStr.name]: [T12.ExpressionOperation];\n [g11.builtInLang.name]: [T12.ExpressionOperation];\n [g11.builtInLangmatches.name]: [T12.ExpressionOperation];\n [g11.builtInDatatype.name]: [T12.ExpressionOperation];\n [g11.builtInBound.name]: [T12.ExpressionOperation];\n [g11.builtInIri.name]: [T12.ExpressionOperation];\n [g11.builtInUri.name]: [T12.ExpressionOperation];\n [g11.builtInBnodeSparqlJs.name]: [T12.ExpressionOperation];\n [g11.builtInRand.name]: [T12.ExpressionOperation];\n [g11.builtInAbs.name]: [T12.ExpressionOperation];\n [g11.builtInCeil.name]: [T12.ExpressionOperation];\n [g11.builtInFloor.name]: [T12.ExpressionOperation];\n [g11.builtInRound.name]: [T12.ExpressionOperation];\n [g11.builtInConcat.name]: [T12.ExpressionOperation];\n [g11.substringExpression.name]: [T12.ExpressionOperation];\n [g11.builtInStrlen.name]: [T12.ExpressionOperation];\n [g11.strReplaceExpression.name]: [T12.ExpressionOperation];\n [g11.builtInUcase.name]: [T12.ExpressionOperation];\n [g11.builtInLcase.name]: [T12.ExpressionOperation];\n [g11.builtInEncode_for_uri.name]: [T12.ExpressionOperation];\n [g11.builtInContains.name]: [T12.ExpressionOperation];\n [g11.builtInStrstarts.name]: [T12.ExpressionOperation];\n [g11.builtInStrends.name]: [T12.ExpressionOperation];\n [g11.builtInStrbefore.name]: [T12.ExpressionOperation];\n [g11.builtInStrafter.name]: [T12.ExpressionOperation];\n [g11.builtInYear.name]: [T12.ExpressionOperation];\n [g11.builtInMonth.name]: [T12.ExpressionOperation];\n [g11.builtInDay.name]: [T12.ExpressionOperation];\n [g11.builtInHours.name]: [T12.ExpressionOperation];\n [g11.builtInMinutes.name]: [T12.ExpressionOperation];\n [g11.builtInSeconds.name]: [T12.ExpressionOperation];\n [g11.builtInTimezone.name]: [T12.ExpressionOperation];\n [g11.builtInTz.name]: [T12.ExpressionOperation];\n [g11.builtInNow.name]: [T12.ExpressionOperation];\n [g11.builtInUuid.name]: [T12.ExpressionOperation];\n [g11.builtInStruuid.name]: [T12.ExpressionOperation];\n [g11.builtInMd5.name]: [T12.ExpressionOperation];\n [g11.builtInSha1.name]: [T12.ExpressionOperation];\n [g11.builtInSha256.name]: [T12.ExpressionOperation];\n [g11.builtInSha384.name]: [T12.ExpressionOperation];\n [g11.builtInSha512.name]: [T12.ExpressionOperation];\n [g11.builtInCoalesce.name]: [T12.ExpressionOperation];\n [g11.builtInIf.name]: [T12.ExpressionOperation];\n [g11.builtInStrlang.name]: [T12.ExpressionOperation];\n [g11.builtInStrdt.name]: [T12.ExpressionOperation];\n [g11.builtInSameterm.name]: [T12.ExpressionOperation];\n [g11.builtInIsiri.name]: [T12.ExpressionOperation];\n [g11.builtInIsuri.name]: [T12.ExpressionOperation];\n [g11.builtInIsblank.name]: [T12.ExpressionOperation];\n [g11.builtInIsliteral.name]: [T12.ExpressionOperation];\n [g11.builtInIsnumeric.name]: [T12.ExpressionOperation];\n [g11.existsFunc.name]: [T12.ExpressionPatternOperation];\n [g11.notExistsFunc.name]: [T12.ExpressionPatternOperation];\n [g11.aggregateCount.name]: [T12.ExpressionAggregateOnWildcard | T12.ExpressionAggregateDefault];\n [g11.aggregateSum.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateMin.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateMax.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateAvg.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateSample.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateGroup_concat.name]: [T12.ExpressionAggregateDefault | T12.ExpressionAggregateSeparator];\n [g11.aggregate.name]: [T12.ExpressionAggregate];\n [g11.builtInCall.name]: [T12.Expression];\n /// DatasetClause\n [g11.datasetClause.name]: [Wrap<T12.DatasetClauses['clauses'][0]>];\n [g11.defaultGraphClause.name]: [T12.TermIri];\n [g11.usingClause.name]: [Wrap<T12.DatasetClauses['clauses'][0]>];\n [g11.datasetClauseStar.name]: [T12.DatasetClauses];\n [g11.usingClauseStar.name]: [T12.DatasetClauses];\n [g11.namedGraphClause.name]: [Wrap<T12.TermIri>];\n [g11.sourceSelector.name]: [T12.TermIri];\n // Expression file\n [g11.argList.name]: [Wrap<Patch<g11.IArgList, { args: T12.Expression[] }>>];\n [g11.expressionList.name]: [Wrap<T12.Expression[]>];\n [g11.expression.name]: [T12.Expression];\n [g11.conditionalOrExpression.name]: [T12.ExpressionOperation | T12.Expression];\n [g11.conditionalAndExpression.name]: [T12.Expression];\n [g11.valueLogical.name]: [T12.Expression];\n [g11.relationalExpression.name]: [T12.ExpressionOperation | T12.Expression];\n [g11.numericExpression.name]: [T12.Expression];\n [g11.additiveExpression.name]: [T12.Expression];\n [g11.multiplicativeExpression.name]: [T12.Expression];\n [g11.unaryExpression.name]: [T12.Expression];\n [g11.primaryExpression.name]: [T12.Expression];\n [g11.brackettedExpression.name]: [T12.Expression];\n [g11.iriOrFunction.name]: [T12.TermIri | T12.ExpressionFunctionCall];\n /// General\n [g11.prologue.name]: [T12.ContextDefinition[]];\n [g11.baseDecl.name]: [T12.ContextDefinition];\n [g11.prefixDecl.name]: [T12.ContextDefinition];\n [g11.verb.name]: [T12.TermVariable | T12.TermIri];\n [g11.varOrTerm.name]: [T12.Term];\n [g11.varOrIri.name]: [T12.TermIri | T12.TermVariable];\n [g11.var_.name]: [T12.TermVariable];\n [g11.graphTerm.name]: [T12.GraphTerm];\n /// Literals\n [g11.rdfLiteral.name]: [T12.TermLiteral];\n [g11.numericLiteral.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralUnsigned.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralPositive.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralNegative.name]: [T12.TermLiteralTyped];\n [g11.booleanLiteral.name]: [T12.TermLiteralTyped];\n [g11.string.name]: [T12.TermLiteralStr];\n [g11.iri.name]: [T12.TermIri];\n [g11.iriFull.name]: [T12.TermIriFull];\n [g11.prefixedName.name]: [T12.TermIriPrefixed];\n [g11.blankNode.name]: [T12.TermBlank];\n [g11.verbA.name]: [T12.TermIriFull];\n /// / Paths: unchanged\n /// / SolutionModifiers\n [g11.solutionModifier.name]: [T12.SolutionModifiers];\n [g11.groupClause.name]: [T12.SolutionModifierGroup];\n [g11.groupCondition.name]: [T12.Expression | T12.SolutionModifierGroupBind];\n [g11.havingClause.name]: [T12.SolutionModifierHaving];\n [g11.havingCondition.name]: [T12.Expression];\n [g11.orderClause.name]: [T12.SolutionModifierOrder];\n [g11.orderCondition.name]: [T12.Ordering];\n [g11.limitOffsetClauses.name]: [T12.SolutionModifierLimitOffset];\n [g11.limitClause.name]: [Wrap<number>];\n [g11.offsetClause.name]: [ Wrap<number>];\n /// tripleBlock\n [g11.triplesBlock.name]: [T12.PatternBgp];\n [g11.triplesSameSubject.name]: [T12.BasicGraphPattern];\n [g11.triplesSameSubjectPath.name]: [T12.BasicGraphPattern];\n [g11.triplesTemplate.name]: [T12.PatternBgp];\n [g11.propertyList.name]: [T12.TripleNesting[]];\n [g11.propertyListPath.name]: [T12.TripleNesting[]];\n [g11.propertyListNotEmpty.name]: [T12.TripleNesting[]];\n [g11.propertyListPathNotEmpty.name]: [T12.TripleNesting[]];\n [g11.verbPath.name]: [T12.Path];\n [g11.verbSimple.name]: [T12.TermVariable];\n [g11.objectList.name]: [T12.TripleNesting[], [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.objectListPath.name]: [T12.TripleNesting, [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.object.name]: [T12.TripleNesting, [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.objectPath.name]: [T12.TripleNesting[], [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.collection.name]: [T12.TripleCollectionList];\n [g11.collectionPath.name]: [T12.TripleCollectionList];\n [g11.triplesNode.name]: [T12.TripleCollection];\n [g11.triplesNodePath.name]: [T12.TripleCollection];\n [g11.blankNodePropertyList.name]: [T12.TripleCollectionBlankNodeProperties];\n [g11.blankNodePropertyListPath.name]: [T12.TripleCollectionBlankNodeProperties];\n [g11.graphNode.name]: [T12.Term | T12.TripleCollection];\n [g11.graphNodePath.name]: [T12.Term | T12.TripleCollection];\n /// WhereClause\n [g11.whereClause.name]: [Wrap<T12.PatternGroup>];\n [g11.groupGraphPattern.name]: [T12.PatternGroup];\n [g11.groupGraphPatternSub.name]: [T12.Pattern[]];\n [g11.graphPatternNotTriples.name]: [Exclude<T12.Pattern, T12.SubSelect | T12.PatternBgp>];\n [g11.optionalGraphPattern.name]: [T12.PatternOptional];\n [g11.graphGraphPattern.name]: [T12.PatternGraph];\n [g11.serviceGraphPattern.name]: [T12.PatternService];\n [g11.bind.name]: [T12.PatternBind];\n [g11.inlineData.name]: [T12.PatternValues];\n [g11.dataBlock.name]: [T12.PatternValues];\n [g11.inlineDataOneVar.name]: [T12.PatternValues];\n [g11.inlineDataFull.name]: [T12.PatternValues];\n [g11.dataBlockValue.name]: [T12.TermIri | T12.TermLiteral | undefined];\n [g11.minusGraphPattern.name]: [T12.PatternMinus];\n [g11.groupOrUnionGraphPattern.name]: [T12.PatternGroup | T12.PatternUnion];\n [g11.filter.name]: [T12.PatternFilter];\n [g11.constraint.name]: [T12.Expression];\n [g11.functionCall.name]: [T12.ExpressionFunctionCall];\n }>()\n .addMany(\n S12.reifiedTripleBlock,\n S12.reifiedTripleBlockPath,\n S12.reifier,\n S12.varOrReifierId,\n S12.annotation,\n S12.annotationPath,\n S12.annotationBlockPath,\n S12.annotationBlock,\n S12.reifiedTriple,\n S12.reifiedTripleSubject,\n S12.reifiedTripleObject,\n S12.tripleTerm,\n S12.tripleTermSubject,\n S12.tripleTermObject,\n S12.tripleTermData,\n S12.tripleTermDataSubject,\n S12.tripleTermDataObject,\n S12.exprTripleTerm,\n S12.exprTripleTermSubject,\n S12.exprTripleTermObject,\n )\n .addMany(\n S12.versionDecl,\n S12.versionSpecifier,\n )\n .addMany(\n S12.buildInLangDir,\n S12.buildInLangStrDir,\n S12.buildInHasLang,\n S12.buildInHasLangDir,\n S12.buildInIsTriple,\n S12.buildInTriple,\n S12.buildInSubject,\n S12.buildInPredicate,\n S12.buildInObject,\n )\n .patchRule(S12.dataBlockValue)\n .patchRule(S12.triplesSameSubject)\n .patchRule(S12.triplesSameSubjectPath)\n .patchRule(S12.object)\n .patchRule(S12.objectPath)\n .patchRule(S12.graphNode)\n .patchRule(S12.graphNodePath)\n .patchRule(S12.varOrTerm)\n .deleteRule(g11.graphTerm.name)\n .patchRule(S12.primaryExpression)\n .patchRule(S12.builtInCall)\n .patchRule(S12.rdfLiteral)\n .patchRule(S12.unaryExpression)\n .patchRule(S12.prologue);\n\nexport type SparqlParser = ReturnType<typeof sparql12ParserBuilder.build>;\n\n/**\n * Generator that can generate a SPARQL 1.2 AST given a SPARQL 1.2 string.\n */\nexport class Parser {\n private readonly parser: SparqlParser;\n protected readonly defaultContext: T12.SparqlContext;\n\n public constructor(\n args: Pick<ParserBuildArgs, 'parserConfig' | 'lexerConfig'> & { defaultContext?: Partial<T12.SparqlContext> } = {},\n ) {\n this.parser = sparql12ParserBuilder.build({\n ...args,\n queryPreProcessor: sparqlCodepointEscape,\n tokenVocabulary: l12.sparql12LexerBuilder.tokenVocabulary,\n });\n this.defaultContext = completeParseContext(args.defaultContext ?? {});\n }\n\n /**\n * Parse a query string starting from the\n * [QueryUnit](https://www.w3.org/TR/sparql12-query/#rQueryUnit)\n * or [QueryUpdate](https://www.w3.org/TR/sparql12-query/#rUpdateUnit) rules.\n * @param query\n * @param context\n */\n public parse(query: string, context: Partial<T12.SparqlContext> = {}): T12.SparqlQuery {\n const ast = this.parser.queryOrUpdate(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n return ast;\n }\n\n /**\n * Parse a query string starting from the [Path](https://www.w3.org/TR/sparql12-query/#rPath) grammar rule.\n * @param query\n * @param context\n */\n public parsePath(\n query: string,\ncontext: Partial<T12.SparqlContext> = {},\n ): (T12.Path & { prefixes: object }) | TermIri {\n const ast = this.parser.path(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n if (this.defaultContext.astFactory.isPathPure(ast)) {\n return {\n ...ast,\n prefixes: {},\n };\n }\n return ast;\n }\n}\n"]}
|
package/dist/esm/lib/Parser.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ParserBuilder } from '@traqula/core';
|
|
2
2
|
import type { Patch, Wrap, ParserBuildArgs } from '@traqula/core';
|
|
3
|
-
import { gram as g11
|
|
3
|
+
import { gram as g11 } from '@traqula/rules-sparql-1-1';
|
|
4
|
+
import type { TermIri } from '@traqula/rules-sparql-1-1';
|
|
4
5
|
import type * as T12 from '@traqula/rules-sparql-1-2';
|
|
5
|
-
export declare const sparql12ParserBuilder: ParserBuilder<T12.SparqlContext, "string" | "object" | "filter" | "
|
|
6
|
+
export declare const sparql12ParserBuilder: ParserBuilder<T12.SparqlContext, "string" | "object" | "filter" | "graphRef" | "load" | "clear" | "drop" | "create" | "add" | "move" | "copy" | "modify" | "update" | "query" | "datasetClauses" | "bind" | "solutionModifier" | "expression" | "aggregate" | "functionCall" | "path" | "blankNode" | "queryUnit" | "selectQuery" | "subSelect" | "selectClause" | "constructQuery" | "describeQuery" | "askQuery" | "valuesClause" | "constructTemplate" | "constructTriples" | "updateUnit" | "update1" | "quadPattern" | "quadData" | "insertData" | "deleteData" | "deleteWhere" | "deleteClause" | "insertClause" | "graphOrDefault" | "graphRefAll" | "quads" | "quadsNotTriples" | "builtInStr" | "builtInLang" | "builtInLangmatches" | "builtInDatatype" | "builtInBound" | "builtInIri" | "builtInUri" | "builtInBnode" | "builtInRand" | "builtInAbs" | "builtInCeil" | "builtInFloor" | "builtInRound" | "builtInConcat" | "builtInStrlen" | "builtInUcase" | "builtInLcase" | "builtInEncode_for_uri" | "builtInContains" | "builtInStrstarts" | "builtInStrends" | "builtInStrbefore" | "builtInStrafter" | "builtInYear" | "builtInMonth" | "builtInDay" | "builtInHours" | "builtInMinutes" | "builtInSeconds" | "builtInTimezone" | "builtInTz" | "builtInNow" | "builtInUuid" | "builtInStruuid" | "builtInMd5" | "builtInSha1" | "builtInSha256" | "builtInSha384" | "builtInSha512" | "builtInCoalesce" | "builtInIf" | "builtInStrlang" | "builtInStrdt" | "builtInSameterm" | "builtInIsiri" | "builtInIsuri" | "builtInIsblank" | "builtInIsliteral" | "builtInIsnumeric" | "builtInCall" | "builtInRegex" | "builtInSubstr" | "builtInReplace" | "builtInExists" | "builtInNotexists" | "builtInCount" | "builtInSum" | "builtInMin" | "builtInMax" | "builtInAvg" | "builtInSample" | "builtInGroup_concat" | "usingClause" | "datasetClause" | "defaultGraphClause" | "usingClauses" | "namedGraphClause" | "sourceSelector" | "argList" | "expressionList" | "conditionalOrExpression" | "conditionalAndExpression" | "valueLogical" | "relationalExpression" | "numericExpression" | "additiveExpression" | "multiplicativeExpression" | "unaryExpression" | "primaryExpression" | "brackettedExpression" | "iriOrFunction" | "prologue" | "baseDecl" | "prefixDecl" | "verb" | "varOrTerm" | "varOrIri" | "var" | "rdfLiteral" | "numericLiteral" | "numericLiteralUnsigned" | "numericLiteralPositive" | "numericLiteralNegative" | "booleanLiteral" | "iri" | "iriFull" | "prefixedName" | "VerbA" | "pathEltOrInverse" | "pathSequence" | "pathAlternative" | "pathElt" | "pathMod" | "pathPrimary" | "pathNegatedPropertySet" | "pathOneInPropertySet" | "groupClause" | "groupCondition" | "havingClause" | "havingCondition" | "orderClause" | "orderCondition" | "limitOffsetClauses" | "limitClause" | "offsetClause" | "triplesBlock" | "triplesSameSubject" | "triplesSameSubjectPath" | "triplesTemplate" | "propertyList" | "propertyListPath" | "propertyListNotEmpty" | "propertyListPathNotEmpty" | "verbPath" | "verbSimple" | "objectList" | "objectListPath" | "objectPath" | "collection" | "collectionPath" | "triplesNode" | "triplesNodePath" | "blankNodePropertyList" | "blankNodePropertyListPath" | "graphNode" | "graphNodePath" | "whereClause" | "groupGraphPattern" | "groupGraphPatternSub" | "graphPatternNotTriples" | "optionalGraphPattern" | "graphGraphPattern" | "serviceGraphPattern" | "inlineData" | "dataBlock" | "inlineDataOneVar" | "inlineDataFull" | "dataBlockValue" | "minusGraphPattern" | "groupOrUnionGraphPattern" | "constraint" | "queryOrUpdate" | "reifiedTriple" | "versionDecl" | "versionSpecifier" | "reifiedTripleBlock" | "reifiedTripleBlockPath" | "varOrReifierId" | "reifier" | "annotationPath" | "annotation" | "annotationBlockPath" | "annotationBlock" | "reifiedTripleSubject" | "reifiedTripleObject" | "tripleTerm" | "tripleTermSubject" | "tripleTermObject" | "tripleTermData" | "tripleTermDataSubject" | "tripleTermDataObject" | "exprTripleTerm" | "exprTripleTermSubject" | "exprTripleTermObject" | "builtInLangdir" | "builtInStrLangdir" | "builtInHasLang" | "builtInHasLangdir" | "builtInIsTriple" | "builtInTriple" | "builtInSubject" | "builtInPredicate" | "builtInObject", {
|
|
6
7
|
string: import("@traqula/core").ParserRule<T12.SparqlContext, "string", import("@traqula/rules-sparql-1-1").TermLiteralStr, []>;
|
|
7
8
|
object: import("@traqula/core").ParserRule<T12.SparqlContext, "object", T12.TripleNesting, [T12.GraphNode, import("@traqula/rules-sparql-1-1").TermIriFull | import("@traqula/rules-sparql-1-1").TermIriPrefixed | import("@traqula/rules-sparql-1-1").TermVariable | import("@traqula/rules-sparql-1-1").PropertyPathChain | import("@traqula/rules-sparql-1-1").PathModified | import("@traqula/rules-sparql-1-1").PathNegated]>;
|
|
8
9
|
filter: import("@traqula/core").ParserRule<T12.SparqlContext, "filter", T12.PatternFilter, []>;
|
|
9
|
-
copy: import("@traqula/core").ParserRule<T12.SparqlContext, "copy", T12.UpdateOperationCopy, []>;
|
|
10
10
|
graphRef: import("@traqula/core").ParserRule<T12.SparqlContext, "graphRef", import("@traqula/rules-sparql-1-1").GraphRefSpecific, []>;
|
|
11
11
|
load: import("@traqula/core").ParserRule<T12.SparqlContext, "load", T12.UpdateOperationLoad, []>;
|
|
12
12
|
clear: import("@traqula/core").ParserRule<T12.SparqlContext, "clear", T12.UpdateOperationClear, []>;
|
|
@@ -14,6 +14,7 @@ export declare const sparql12ParserBuilder: ParserBuilder<T12.SparqlContext, "st
|
|
|
14
14
|
create: import("@traqula/core").ParserRule<T12.SparqlContext, "create", T12.UpdateOperationCreate, []>;
|
|
15
15
|
add: import("@traqula/core").ParserRule<T12.SparqlContext, "add", T12.UpdateOperationAdd, []>;
|
|
16
16
|
move: import("@traqula/core").ParserRule<T12.SparqlContext, "move", T12.UpdateOperationMove, []>;
|
|
17
|
+
copy: import("@traqula/core").ParserRule<T12.SparqlContext, "copy", T12.UpdateOperationCopy, []>;
|
|
17
18
|
modify: import("@traqula/core").ParserRule<T12.SparqlContext, "modify", T12.UpdateOperationModify, []>;
|
|
18
19
|
update: import("@traqula/core").ParserRule<T12.SparqlContext, "update", import("@traqula/rules-sparql-1-1").Update, []>;
|
|
19
20
|
query: import("@traqula/core").ParserRule<T12.SparqlContext, "query", import("@traqula/rules-sparql-1-1").Query, []>;
|
|
@@ -44,7 +45,7 @@ export declare const sparql12ParserBuilder: ParserBuilder<T12.SparqlContext, "st
|
|
|
44
45
|
deleteWhere: import("@traqula/core").ParserRule<T12.SparqlContext, "deleteWhere", T12.UpdateOperationDeleteWhere, []>;
|
|
45
46
|
deleteClause: import("@traqula/core").ParserRule<T12.SparqlContext, "deleteClause", Wrap<T12.Quads[]>, []>;
|
|
46
47
|
insertClause: import("@traqula/core").ParserRule<T12.SparqlContext, "insertClause", Wrap<T12.Quads[]>, []>;
|
|
47
|
-
graphOrDefault: import("@traqula/core").ParserRule<T12.SparqlContext, "graphOrDefault", import("@traqula/rules-sparql-1-1").
|
|
48
|
+
graphOrDefault: import("@traqula/core").ParserRule<T12.SparqlContext, "graphOrDefault", import("@traqula/rules-sparql-1-1").GraphRefSpecific | import("@traqula/rules-sparql-1-1").GraphRefDefault, []>;
|
|
48
49
|
graphRefAll: import("@traqula/core").ParserRule<T12.SparqlContext, "graphRefAll", import("@traqula/rules-sparql-1-1").GraphRef, []>;
|
|
49
50
|
quads: import("@traqula/core").ParserRule<T12.SparqlContext, "quads", Wrap<T12.Quads[]>, []>;
|
|
50
51
|
quadsNotTriples: import("@traqula/core").ParserRule<T12.SparqlContext, "quadsNotTriples", T12.GraphQuads, []>;
|
|
@@ -221,35 +222,35 @@ export declare const sparql12ParserBuilder: ParserBuilder<T12.SparqlContext, "st
|
|
|
221
222
|
versionSpecifier: import("@traqula/core").ParserRule<any, "versionSpecifier"> & T12.SparqlGrammarRule<"versionSpecifier", Wrap<string>>;
|
|
222
223
|
reifiedTripleBlock: import("@traqula/core").ParserRule<any, "reifiedTripleBlock"> & T12.SparqlGrammarRule<"reifiedTripleBlock", import("@traqula/rules-sparql-1-1").BasicGraphPattern>;
|
|
223
224
|
reifiedTripleBlockPath: import("@traqula/core").ParserRule<any, "reifiedTripleBlockPath"> & T12.SparqlGrammarRule<"reifiedTripleBlockPath", import("@traqula/rules-sparql-1-1").BasicGraphPattern>;
|
|
224
|
-
varOrReifierId: import("@traqula/core").ParserRule<any, "varOrReifierId"> & T12.SparqlGrammarRule<"varOrReifierId", TermIri | import("@traqula/rules-sparql-1-1").
|
|
225
|
-
reifier: import("@traqula/core").ParserRule<any, "reifier"> & T12.SparqlGrammarRule<"reifier", Wrap<TermIri | import("@traqula/rules-sparql-1-1").
|
|
225
|
+
varOrReifierId: import("@traqula/core").ParserRule<any, "varOrReifierId"> & T12.SparqlGrammarRule<"varOrReifierId", TermIri | import("@traqula/rules-sparql-1-1").TermBlank | import("@traqula/rules-sparql-1-1").TermVariable>;
|
|
226
|
+
reifier: import("@traqula/core").ParserRule<any, "reifier"> & T12.SparqlGrammarRule<"reifier", Wrap<TermIri | import("@traqula/rules-sparql-1-1").TermBlank | import("@traqula/rules-sparql-1-1").TermVariable>>;
|
|
226
227
|
annotationPath: import("@traqula/core").ParserRule<any, "annotationPath"> & T12.SparqlGrammarRule<"annotationPath", T12.Annotation[], []> & T12.SparqlGeneratorRule<"annotationPath", T12.Annotation[], []>;
|
|
227
228
|
annotation: import("@traqula/core").ParserRule<any, "annotation"> & T12.SparqlGrammarRule<"annotation", T12.Annotation[], []> & T12.SparqlGeneratorRule<"annotation", T12.Annotation[], []>;
|
|
228
229
|
annotationBlockPath: import("@traqula/core").ParserRule<any, "annotationBlockPath"> & T12.SparqlGrammarRule<"annotationBlockPath", Patch<import("@traqula/rules-sparql-1-1").TripleCollectionBlankNodeProperties, {
|
|
229
230
|
triples: T12.TripleNesting[];
|
|
230
231
|
identifier: T12.TermBlank | T12.TermVariable | T12.TermIri;
|
|
231
|
-
}>, [TermIri | import("@traqula/rules-sparql-1-1").
|
|
232
|
+
}>, [TermIri | import("@traqula/rules-sparql-1-1").TermBlank | import("@traqula/rules-sparql-1-1").TermVariable]> & T12.SparqlGeneratorRule<"annotationBlockPath", Patch<import("@traqula/rules-sparql-1-1").TripleCollectionBlankNodeProperties, {
|
|
232
233
|
triples: T12.TripleNesting[];
|
|
233
234
|
identifier: T12.TermBlank | T12.TermVariable | T12.TermIri;
|
|
234
235
|
}>>;
|
|
235
236
|
annotationBlock: import("@traqula/core").ParserRule<any, "annotationBlock"> & T12.SparqlGrammarRule<"annotationBlock", Patch<import("@traqula/rules-sparql-1-1").TripleCollectionBlankNodeProperties, {
|
|
236
237
|
triples: T12.TripleNesting[];
|
|
237
238
|
identifier: T12.TermBlank | T12.TermVariable | T12.TermIri;
|
|
238
|
-
}>, [TermIri | import("@traqula/rules-sparql-1-1").
|
|
239
|
+
}>, [TermIri | import("@traqula/rules-sparql-1-1").TermBlank | import("@traqula/rules-sparql-1-1").TermVariable]> & T12.SparqlGeneratorRule<"annotationBlock", Patch<import("@traqula/rules-sparql-1-1").TripleCollectionBlankNodeProperties, {
|
|
239
240
|
triples: T12.TripleNesting[];
|
|
240
241
|
identifier: T12.TermBlank | T12.TermVariable | T12.TermIri;
|
|
241
242
|
}>>;
|
|
242
243
|
reifiedTripleSubject: import("@traqula/core").ParserRule<any, "reifiedTripleSubject"> & T12.SparqlGrammarRule<"reifiedTripleSubject", T12.TripleCollectionReifiedTriple | T12.Term>;
|
|
243
244
|
reifiedTripleObject: import("@traqula/core").ParserRule<any, "reifiedTripleObject"> & T12.SparqlGrammarRule<"reifiedTripleObject", T12.TripleCollectionReifiedTriple | T12.Term>;
|
|
244
245
|
tripleTerm: import("@traqula/core").ParserRule<any, "tripleTerm"> & T12.SparqlGrammarRule<"tripleTerm", T12.TermTriple, []> & T12.SparqlGeneratorRule<"tripleTerm", T12.TermTriple, []>;
|
|
245
|
-
tripleTermSubject: import("@traqula/core").ParserRule<any, "tripleTermSubject"> & T12.SparqlGrammarRule<"tripleTermSubject", TermIri | import("@traqula/rules-sparql-1-1").
|
|
246
|
-
tripleTermObject: import("@traqula/core").ParserRule<any, "tripleTermObject"> & T12.SparqlGrammarRule<"tripleTermObject", TermIri | import("@traqula/rules-sparql-1-1").
|
|
246
|
+
tripleTermSubject: import("@traqula/core").ParserRule<any, "tripleTermSubject"> & T12.SparqlGrammarRule<"tripleTermSubject", TermIri | import("@traqula/rules-sparql-1-1").TermBlank | import("@traqula/rules-sparql-1-1").TermLiteral | import("@traqula/rules-sparql-1-1").TermVariable | T12.TermTriple>;
|
|
247
|
+
tripleTermObject: import("@traqula/core").ParserRule<any, "tripleTermObject"> & T12.SparqlGrammarRule<"tripleTermObject", TermIri | import("@traqula/rules-sparql-1-1").TermBlank | import("@traqula/rules-sparql-1-1").TermLiteral | import("@traqula/rules-sparql-1-1").TermVariable | T12.TermTriple>;
|
|
247
248
|
tripleTermData: import("@traqula/core").ParserRule<any, "tripleTermData"> & T12.SparqlGrammarRule<"tripleTermData", T12.TermTriple>;
|
|
248
249
|
tripleTermDataSubject: import("@traqula/core").ParserRule<any, "tripleTermDataSubject"> & T12.SparqlGrammarRule<"tripleTermDataSubject", TermIri | import("@traqula/rules-sparql-1-1").TermLiteral | T12.TermTriple>;
|
|
249
250
|
tripleTermDataObject: import("@traqula/core").ParserRule<any, "tripleTermDataObject"> & T12.SparqlGrammarRule<"tripleTermDataObject", TermIri | import("@traqula/rules-sparql-1-1").TermLiteral | T12.TermTriple>;
|
|
250
251
|
exprTripleTerm: import("@traqula/core").ParserRule<any, "exprTripleTerm"> & T12.SparqlGrammarRule<"exprTripleTerm", T12.TermTriple>;
|
|
251
|
-
exprTripleTermSubject: import("@traqula/core").ParserRule<any, "exprTripleTermSubject"> & T12.SparqlGrammarRule<"exprTripleTermSubject", TermIri | import("@traqula/rules-sparql-1-1").
|
|
252
|
-
exprTripleTermObject: import("@traqula/core").ParserRule<any, "exprTripleTermObject"> & T12.SparqlGrammarRule<"exprTripleTermObject", TermIri | import("@traqula/rules-sparql-1-1").
|
|
252
|
+
exprTripleTermSubject: import("@traqula/core").ParserRule<any, "exprTripleTermSubject"> & T12.SparqlGrammarRule<"exprTripleTermSubject", TermIri | import("@traqula/rules-sparql-1-1").TermLiteral | import("@traqula/rules-sparql-1-1").TermVariable | T12.TermTriple>;
|
|
253
|
+
exprTripleTermObject: import("@traqula/core").ParserRule<any, "exprTripleTermObject"> & T12.SparqlGrammarRule<"exprTripleTermObject", TermIri | import("@traqula/rules-sparql-1-1").TermLiteral | import("@traqula/rules-sparql-1-1").TermVariable | T12.TermTriple>;
|
|
253
254
|
builtInLangdir: import("@traqula/core").ParserRule<any, "builtInLangdir"> & g11.RuleDefExpressionFunctionX<"builtInLangdir", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
254
255
|
builtInStrLangdir: import("@traqula/core").ParserRule<any, "builtInStrLangdir"> & g11.RuleDefExpressionFunctionX<"builtInStrLangdir", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
255
256
|
builtInHasLang: import("@traqula/core").ParserRule<any, "builtInHasLang"> & g11.RuleDefExpressionFunctionX<"builtInHasLang", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
@@ -261,11 +262,28 @@ export declare const sparql12ParserBuilder: ParserBuilder<T12.SparqlContext, "st
|
|
|
261
262
|
builtInObject: import("@traqula/core").ParserRule<any, "builtInObject"> & g11.RuleDefExpressionFunctionX<"builtInObject", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
262
263
|
}>;
|
|
263
264
|
export type SparqlParser = ReturnType<typeof sparql12ParserBuilder.build>;
|
|
265
|
+
/**
|
|
266
|
+
* Generator that can generate a SPARQL 1.2 AST given a SPARQL 1.2 string.
|
|
267
|
+
*/
|
|
264
268
|
export declare class Parser {
|
|
265
269
|
private readonly parser;
|
|
266
|
-
|
|
267
|
-
constructor(args?: Pick<ParserBuildArgs, 'parserConfig' | 'lexerConfig'>
|
|
270
|
+
protected readonly defaultContext: T12.SparqlContext;
|
|
271
|
+
constructor(args?: Pick<ParserBuildArgs, 'parserConfig' | 'lexerConfig'> & {
|
|
272
|
+
defaultContext?: Partial<T12.SparqlContext>;
|
|
273
|
+
});
|
|
274
|
+
/**
|
|
275
|
+
* Parse a query string starting from the
|
|
276
|
+
* [QueryUnit](https://www.w3.org/TR/sparql12-query/#rQueryUnit)
|
|
277
|
+
* or [QueryUpdate](https://www.w3.org/TR/sparql12-query/#rUpdateUnit) rules.
|
|
278
|
+
* @param query
|
|
279
|
+
* @param context
|
|
280
|
+
*/
|
|
268
281
|
parse(query: string, context?: Partial<T12.SparqlContext>): T12.SparqlQuery;
|
|
282
|
+
/**
|
|
283
|
+
* Parse a query string starting from the [Path](https://www.w3.org/TR/sparql12-query/#rPath) grammar rule.
|
|
284
|
+
* @param query
|
|
285
|
+
* @param context
|
|
286
|
+
*/
|
|
269
287
|
parsePath(query: string, context?: Partial<T12.SparqlContext>): (T12.Path & {
|
|
270
288
|
prefixes: object;
|
|
271
289
|
}) | TermIri;
|
package/dist/esm/lib/Parser.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ParserBuilder } from '@traqula/core';
|
|
2
2
|
import { sparql11ParserBuilder } from '@traqula/parser-sparql-1-1';
|
|
3
3
|
import { gram as g11, sparqlCodepointEscape, } from '@traqula/rules-sparql-1-1';
|
|
4
|
-
import { completeParseContext,
|
|
4
|
+
import { completeParseContext, copyParseContext, gram as S12, lex as l12 } from '@traqula/rules-sparql-1-2';
|
|
5
5
|
export const sparql12ParserBuilder = ParserBuilder.create(sparql11ParserBuilder)
|
|
6
6
|
.widenContext()
|
|
7
7
|
.typePatch()
|
|
@@ -22,28 +22,47 @@ export const sparql12ParserBuilder = ParserBuilder.create(sparql11ParserBuilder)
|
|
|
22
22
|
.patchRule(S12.rdfLiteral)
|
|
23
23
|
.patchRule(S12.unaryExpression)
|
|
24
24
|
.patchRule(S12.prologue);
|
|
25
|
+
/**
|
|
26
|
+
* Generator that can generate a SPARQL 1.2 AST given a SPARQL 1.2 string.
|
|
27
|
+
*/
|
|
25
28
|
export class Parser {
|
|
26
29
|
parser;
|
|
27
|
-
|
|
30
|
+
defaultContext;
|
|
28
31
|
constructor(args = {}) {
|
|
29
32
|
this.parser = sparql12ParserBuilder.build({
|
|
30
33
|
...args,
|
|
31
34
|
queryPreProcessor: sparqlCodepointEscape,
|
|
32
35
|
tokenVocabulary: l12.sparql12LexerBuilder.tokenVocabulary,
|
|
33
36
|
});
|
|
37
|
+
this.defaultContext = completeParseContext(args.defaultContext ?? {});
|
|
34
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Parse a query string starting from the
|
|
41
|
+
* [QueryUnit](https://www.w3.org/TR/sparql12-query/#rQueryUnit)
|
|
42
|
+
* or [QueryUpdate](https://www.w3.org/TR/sparql12-query/#rUpdateUnit) rules.
|
|
43
|
+
* @param query
|
|
44
|
+
* @param context
|
|
45
|
+
*/
|
|
35
46
|
parse(query, context = {}) {
|
|
36
|
-
|
|
47
|
+
const ast = this.parser.queryOrUpdate(query, copyParseContext({ ...this.defaultContext, ...context }));
|
|
48
|
+
ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);
|
|
49
|
+
return ast;
|
|
37
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Parse a query string starting from the [Path](https://www.w3.org/TR/sparql12-query/#rPath) grammar rule.
|
|
53
|
+
* @param query
|
|
54
|
+
* @param context
|
|
55
|
+
*/
|
|
38
56
|
parsePath(query, context = {}) {
|
|
39
|
-
const
|
|
40
|
-
|
|
57
|
+
const ast = this.parser.path(query, copyParseContext({ ...this.defaultContext, ...context }));
|
|
58
|
+
ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);
|
|
59
|
+
if (this.defaultContext.astFactory.isPathPure(ast)) {
|
|
41
60
|
return {
|
|
42
|
-
...
|
|
61
|
+
...ast,
|
|
43
62
|
prefixes: {},
|
|
44
63
|
};
|
|
45
64
|
}
|
|
46
|
-
return
|
|
65
|
+
return ast;
|
|
47
66
|
}
|
|
48
67
|
}
|
|
49
68
|
//# sourceMappingURL=Parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../../lib/Parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ParserBuilder } from '@traqula/core';\nimport type { Patch, Wrap, ParserBuildArgs } from '@traqula/core';\nimport { sparql11ParserBuilder } from '@traqula/parser-sparql-1-1';\nimport {\n gram as g11,\n type TermIri,\n sparqlCodepointEscape,\n} from '@traqula/rules-sparql-1-1';\nimport { completeParseContext, AstFactory, gram as S12, lex as l12 } from '@traqula/rules-sparql-1-2';\nimport type * as T12 from '@traqula/rules-sparql-1-2';\n\nexport const sparql12ParserBuilder = ParserBuilder.create(sparql11ParserBuilder)\n .widenContext<T12.SparqlContext>()\n .typePatch<{\n /// GeneralFile\n queryOrUpdate: [ T12.SparqlQuery];\n /// Query Unit file\n [g11.selectQuery.name]: [Omit<T12.QuerySelect, g11.HandledByBase>];\n [g11.subSelect.name]: [ Omit<T12.SubSelect, 'prefixes'>];\n [g11.selectClause.name]: [Wrap<Pick<T12.QuerySelect, 'variables' | 'distinct' | 'reduced'>>];\n [g11.constructQuery.name]: [Omit<T12.QueryConstruct, g11.HandledByBase>];\n [g11.describeQuery.name]: [Omit<T12.QueryDescribe, g11.HandledByBase>];\n [g11.askQuery.name]: [Omit<T12.QueryAsk, g11.HandledByBase>];\n [g11.valuesClause.name]: [T12.PatternValues[] | undefined];\n [g11.constructTemplate.name]: [Wrap<T12.PatternBgp>];\n [g11.constructTriples.name]: [T12.PatternBgp];\n /// Update Unit file\n [g11.update1.name]: [T12.UpdateOperation];\n [g11.load.name]: [T12.UpdateOperationLoad];\n [g11.clear.name]: [T12.UpdateOperationClear];\n [g11.drop.name]: [T12.UpdateOperationDrop];\n [g11.create.name]: [T12.UpdateOperationCreate];\n [g11.add.name]: [T12.UpdateOperationAdd];\n [g11.move.name]: [T12.UpdateOperationMove];\n [g11.copy.name]: [T12.UpdateOperationCopy];\n [g11.quadPattern.name]: [Wrap<T12.Quads[]>];\n [g11.quadData.name]: [Wrap<T12.Quads[]>];\n [g11.insertData.name]: [T12.UpdateOperationInsertData];\n [g11.deleteData.name]: [T12.UpdateOperationDeleteData];\n [g11.deleteWhere.name]: [T12.UpdateOperationDeleteWhere];\n [g11.modify.name]: [T12.UpdateOperationModify];\n [g11.deleteClause.name]: [Wrap<T12.Quads[]>];\n [g11.insertClause.name]: [Wrap<T12.Quads[]>];\n [g11.graphOrDefault.name]: [T12.GraphRefDefault | T12.GraphRefSpecific];\n [g11.graphRef.name]: [T12.GraphRefSpecific];\n [g11.graphRefAll.name]: [T12.GraphRef];\n [g11.quads.name]: [Wrap<T12.Quads[]>];\n [g11.quadsNotTriples.name]: [T12.GraphQuads];\n /// Built-in functions\n [g11.builtInStr.name]: [T12.ExpressionOperation];\n [g11.builtInLang.name]: [T12.ExpressionOperation];\n [g11.builtInLangmatches.name]: [T12.ExpressionOperation];\n [g11.builtInDatatype.name]: [T12.ExpressionOperation];\n [g11.builtInBound.name]: [T12.ExpressionOperation];\n [g11.builtInIri.name]: [T12.ExpressionOperation];\n [g11.builtInUri.name]: [T12.ExpressionOperation];\n [g11.builtInBnodeSparqlJs.name]: [T12.ExpressionOperation];\n [g11.builtInRand.name]: [T12.ExpressionOperation];\n [g11.builtInAbs.name]: [T12.ExpressionOperation];\n [g11.builtInCeil.name]: [T12.ExpressionOperation];\n [g11.builtInFloor.name]: [T12.ExpressionOperation];\n [g11.builtInRound.name]: [T12.ExpressionOperation];\n [g11.builtInConcat.name]: [T12.ExpressionOperation];\n [g11.substringExpression.name]: [T12.ExpressionOperation];\n [g11.builtInStrlen.name]: [T12.ExpressionOperation];\n [g11.strReplaceExpression.name]: [T12.ExpressionOperation];\n [g11.builtInUcase.name]: [T12.ExpressionOperation];\n [g11.builtInLcase.name]: [T12.ExpressionOperation];\n [g11.builtInEncode_for_uri.name]: [T12.ExpressionOperation];\n [g11.builtInContains.name]: [T12.ExpressionOperation];\n [g11.builtInStrstarts.name]: [T12.ExpressionOperation];\n [g11.builtInStrends.name]: [T12.ExpressionOperation];\n [g11.builtInStrbefore.name]: [T12.ExpressionOperation];\n [g11.builtInStrafter.name]: [T12.ExpressionOperation];\n [g11.builtInYear.name]: [T12.ExpressionOperation];\n [g11.builtInMonth.name]: [T12.ExpressionOperation];\n [g11.builtInDay.name]: [T12.ExpressionOperation];\n [g11.builtInHours.name]: [T12.ExpressionOperation];\n [g11.builtInMinutes.name]: [T12.ExpressionOperation];\n [g11.builtInSeconds.name]: [T12.ExpressionOperation];\n [g11.builtInTimezone.name]: [T12.ExpressionOperation];\n [g11.builtInTz.name]: [T12.ExpressionOperation];\n [g11.builtInNow.name]: [T12.ExpressionOperation];\n [g11.builtInUuid.name]: [T12.ExpressionOperation];\n [g11.builtInStruuid.name]: [T12.ExpressionOperation];\n [g11.builtInMd5.name]: [T12.ExpressionOperation];\n [g11.builtInSha1.name]: [T12.ExpressionOperation];\n [g11.builtInSha256.name]: [T12.ExpressionOperation];\n [g11.builtInSha384.name]: [T12.ExpressionOperation];\n [g11.builtInSha512.name]: [T12.ExpressionOperation];\n [g11.builtInCoalesce.name]: [T12.ExpressionOperation];\n [g11.builtInIf.name]: [T12.ExpressionOperation];\n [g11.builtInStrlang.name]: [T12.ExpressionOperation];\n [g11.builtInStrdt.name]: [T12.ExpressionOperation];\n [g11.builtInSameterm.name]: [T12.ExpressionOperation];\n [g11.builtInIsiri.name]: [T12.ExpressionOperation];\n [g11.builtInIsuri.name]: [T12.ExpressionOperation];\n [g11.builtInIsblank.name]: [T12.ExpressionOperation];\n [g11.builtInIsliteral.name]: [T12.ExpressionOperation];\n [g11.builtInIsnumeric.name]: [T12.ExpressionOperation];\n [g11.existsFunc.name]: [T12.ExpressionPatternOperation];\n [g11.notExistsFunc.name]: [T12.ExpressionPatternOperation];\n [g11.aggregateCount.name]: [T12.ExpressionAggregateOnWildcard | T12.ExpressionAggregateDefault];\n [g11.aggregateSum.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateMin.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateMax.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateAvg.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateSample.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateGroup_concat.name]: [T12.ExpressionAggregateDefault | T12.ExpressionAggregateSeparator];\n [g11.aggregate.name]: [T12.ExpressionAggregate];\n [g11.builtInCall.name]: [T12.Expression];\n /// DatasetClause\n [g11.datasetClause.name]: [Wrap<T12.DatasetClauses['clauses'][0]>];\n [g11.defaultGraphClause.name]: [T12.TermIri];\n [g11.usingClause.name]: [Wrap<T12.DatasetClauses['clauses'][0]>];\n [g11.datasetClauseStar.name]: [T12.DatasetClauses];\n [g11.usingClauseStar.name]: [T12.DatasetClauses];\n [g11.namedGraphClause.name]: [Wrap<T12.TermIri>];\n [g11.sourceSelector.name]: [T12.TermIri];\n // Expression file\n [g11.argList.name]: [Wrap<Patch<g11.IArgList, { args: T12.Expression[] }>>];\n [g11.expressionList.name]: [Wrap<T12.Expression[]>];\n [g11.expression.name]: [T12.Expression];\n [g11.conditionalOrExpression.name]: [T12.ExpressionOperation | T12.Expression];\n [g11.conditionalAndExpression.name]: [T12.Expression];\n [g11.valueLogical.name]: [T12.Expression];\n [g11.relationalExpression.name]: [T12.ExpressionOperation | T12.Expression];\n [g11.numericExpression.name]: [T12.Expression];\n [g11.additiveExpression.name]: [T12.Expression];\n [g11.multiplicativeExpression.name]: [T12.Expression];\n [g11.unaryExpression.name]: [T12.Expression];\n [g11.primaryExpression.name]: [T12.Expression];\n [g11.brackettedExpression.name]: [T12.Expression];\n [g11.iriOrFunction.name]: [T12.TermIri | T12.ExpressionFunctionCall];\n /// General\n [g11.prologue.name]: [T12.ContextDefinition[]];\n [g11.baseDecl.name]: [T12.ContextDefinition];\n [g11.prefixDecl.name]: [T12.ContextDefinition];\n [g11.verb.name]: [T12.TermVariable | T12.TermIri];\n [g11.varOrTerm.name]: [T12.Term];\n [g11.varOrIri.name]: [T12.TermIri | T12.TermVariable];\n [g11.var_.name]: [T12.TermVariable];\n [g11.graphTerm.name]: [T12.GraphTerm];\n /// Literals\n [g11.rdfLiteral.name]: [T12.TermLiteral];\n [g11.numericLiteral.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralUnsigned.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralPositive.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralNegative.name]: [T12.TermLiteralTyped];\n [g11.booleanLiteral.name]: [T12.TermLiteralTyped];\n [g11.string.name]: [T12.TermLiteralStr];\n [g11.iri.name]: [T12.TermIri];\n [g11.iriFull.name]: [T12.TermIriFull];\n [g11.prefixedName.name]: [T12.TermIriPrefixed];\n [g11.blankNode.name]: [T12.TermBlank];\n [g11.verbA.name]: [T12.TermIriFull];\n /// / Paths: unchanged\n /// / SolutionModifiers\n [g11.solutionModifier.name]: [T12.SolutionModifiers];\n [g11.groupClause.name]: [T12.SolutionModifierGroup];\n [g11.groupCondition.name]: [T12.Expression | T12.SolutionModifierGroupBind];\n [g11.havingClause.name]: [T12.SolutionModifierHaving];\n [g11.havingCondition.name]: [T12.Expression];\n [g11.orderClause.name]: [T12.SolutionModifierOrder];\n [g11.orderCondition.name]: [T12.Ordering];\n [g11.limitOffsetClauses.name]: [T12.SolutionModifierLimitOffset];\n [g11.limitClause.name]: [Wrap<number>];\n [g11.offsetClause.name]: [ Wrap<number>];\n /// tripleBlock\n [g11.triplesBlock.name]: [T12.PatternBgp];\n [g11.triplesSameSubject.name]: [T12.BasicGraphPattern];\n [g11.triplesSameSubjectPath.name]: [T12.BasicGraphPattern];\n [g11.triplesTemplate.name]: [T12.PatternBgp];\n [g11.propertyList.name]: [T12.TripleNesting[]];\n [g11.propertyListPath.name]: [T12.TripleNesting[]];\n [g11.propertyListNotEmpty.name]: [T12.TripleNesting[]];\n [g11.propertyListPathNotEmpty.name]: [T12.TripleNesting[]];\n [g11.verbPath.name]: [T12.Path];\n [g11.verbSimple.name]: [T12.TermVariable];\n [g11.objectList.name]: [T12.TripleNesting[], [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.objectListPath.name]: [T12.TripleNesting, [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.object.name]: [T12.TripleNesting, [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.objectPath.name]: [T12.TripleNesting[], [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.collection.name]: [T12.TripleCollectionList];\n [g11.collectionPath.name]: [T12.TripleCollectionList];\n [g11.triplesNode.name]: [T12.TripleCollection];\n [g11.triplesNodePath.name]: [T12.TripleCollection];\n [g11.blankNodePropertyList.name]: [T12.TripleCollectionBlankNodeProperties];\n [g11.blankNodePropertyListPath.name]: [T12.TripleCollectionBlankNodeProperties];\n [g11.graphNode.name]: [T12.Term | T12.TripleCollection];\n [g11.graphNodePath.name]: [T12.Term | T12.TripleCollection];\n /// WhereClause\n [g11.whereClause.name]: [Wrap<T12.PatternGroup>];\n [g11.groupGraphPattern.name]: [T12.PatternGroup];\n [g11.groupGraphPatternSub.name]: [T12.Pattern[]];\n [g11.graphPatternNotTriples.name]: [Exclude<T12.Pattern, T12.SubSelect | T12.PatternBgp>];\n [g11.optionalGraphPattern.name]: [T12.PatternOptional];\n [g11.graphGraphPattern.name]: [T12.PatternGraph];\n [g11.serviceGraphPattern.name]: [T12.PatternService];\n [g11.bind.name]: [T12.PatternBind];\n [g11.inlineData.name]: [T12.PatternValues];\n [g11.dataBlock.name]: [T12.PatternValues];\n [g11.inlineDataOneVar.name]: [T12.PatternValues];\n [g11.inlineDataFull.name]: [T12.PatternValues];\n [g11.dataBlockValue.name]: [T12.TermIri | T12.TermLiteral | undefined];\n [g11.minusGraphPattern.name]: [T12.PatternMinus];\n [g11.groupOrUnionGraphPattern.name]: [T12.PatternGroup | T12.PatternUnion];\n [g11.filter.name]: [T12.PatternFilter];\n [g11.constraint.name]: [T12.Expression];\n [g11.functionCall.name]: [T12.ExpressionFunctionCall];\n }>()\n .addMany(\n S12.reifiedTripleBlock,\n S12.reifiedTripleBlockPath,\n S12.reifier,\n S12.varOrReifierId,\n S12.annotation,\n S12.annotationPath,\n S12.annotationBlockPath,\n S12.annotationBlock,\n S12.reifiedTriple,\n S12.reifiedTripleSubject,\n S12.reifiedTripleObject,\n S12.tripleTerm,\n S12.tripleTermSubject,\n S12.tripleTermObject,\n S12.tripleTermData,\n S12.tripleTermDataSubject,\n S12.tripleTermDataObject,\n S12.exprTripleTerm,\n S12.exprTripleTermSubject,\n S12.exprTripleTermObject,\n )\n .addMany(\n S12.versionDecl,\n S12.versionSpecifier,\n )\n .addMany(\n S12.buildInLangDir,\n S12.buildInLangStrDir,\n S12.buildInHasLang,\n S12.buildInHasLangDir,\n S12.buildInIsTriple,\n S12.buildInTriple,\n S12.buildInSubject,\n S12.buildInPredicate,\n S12.buildInObject,\n )\n .patchRule(S12.dataBlockValue)\n .patchRule(S12.triplesSameSubject)\n .patchRule(S12.triplesSameSubjectPath)\n .patchRule(S12.object)\n .patchRule(S12.objectPath)\n .patchRule(S12.graphNode)\n .patchRule(S12.graphNodePath)\n .patchRule(S12.varOrTerm)\n .deleteRule(g11.graphTerm.name)\n .patchRule(S12.primaryExpression)\n .patchRule(S12.builtInCall)\n .patchRule(S12.rdfLiteral)\n .patchRule(S12.unaryExpression)\n .patchRule(S12.prologue);\n\nexport type SparqlParser = ReturnType<typeof sparql12ParserBuilder.build>;\n\nexport class Parser {\n private readonly parser: SparqlParser;\n\n private readonly F = new AstFactory();\n\n public constructor(args: Pick<ParserBuildArgs, 'parserConfig' | 'lexerConfig'> = {}) {\n this.parser = sparql12ParserBuilder.build({\n ...args,\n queryPreProcessor: sparqlCodepointEscape,\n tokenVocabulary: l12.sparql12LexerBuilder.tokenVocabulary,\n });\n }\n\n public parse(query: string, context: Partial<T12.SparqlContext> = {}): T12.SparqlQuery {\n return this.parser.queryOrUpdate(query, completeParseContext(context));\n }\n\n public parsePath(\n query: string,\ncontext: Partial<T12.SparqlContext> = {},\n ): (T12.Path & { prefixes: object }) | TermIri {\n const res = this.parser.path(query, completeParseContext(context));\n if (this.F.isPathPure(res)) {\n return {\n ...res,\n prefixes: {},\n };\n }\n return res;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../../lib/Parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ParserBuilder } from '@traqula/core';\nimport type { Patch, Wrap, ParserBuildArgs } from '@traqula/core';\nimport { sparql11ParserBuilder } from '@traqula/parser-sparql-1-1';\nimport {\n gram as g11,\n sparqlCodepointEscape,\n} from '@traqula/rules-sparql-1-1';\nimport type {\n TermIri,\n} from '@traqula/rules-sparql-1-1';\nimport { completeParseContext, copyParseContext, gram as S12, lex as l12 } from '@traqula/rules-sparql-1-2';\nimport type * as T12 from '@traqula/rules-sparql-1-2';\n\nexport const sparql12ParserBuilder = ParserBuilder.create(sparql11ParserBuilder)\n .widenContext<T12.SparqlContext>()\n .typePatch<{\n /// GeneralFile\n queryOrUpdate: [ T12.SparqlQuery];\n /// Query Unit file\n [g11.selectQuery.name]: [Omit<T12.QuerySelect, g11.HandledByBase>];\n [g11.subSelect.name]: [ Omit<T12.SubSelect, 'prefixes'>];\n [g11.selectClause.name]: [Wrap<Pick<T12.QuerySelect, 'variables' | 'distinct' | 'reduced'>>];\n [g11.constructQuery.name]: [Omit<T12.QueryConstruct, g11.HandledByBase>];\n [g11.describeQuery.name]: [Omit<T12.QueryDescribe, g11.HandledByBase>];\n [g11.askQuery.name]: [Omit<T12.QueryAsk, g11.HandledByBase>];\n [g11.valuesClause.name]: [T12.PatternValues[] | undefined];\n [g11.constructTemplate.name]: [Wrap<T12.PatternBgp>];\n [g11.constructTriples.name]: [T12.PatternBgp];\n /// Update Unit file\n [g11.update1.name]: [T12.UpdateOperation];\n [g11.load.name]: [T12.UpdateOperationLoad];\n [g11.clear.name]: [T12.UpdateOperationClear];\n [g11.drop.name]: [T12.UpdateOperationDrop];\n [g11.create.name]: [T12.UpdateOperationCreate];\n [g11.add.name]: [T12.UpdateOperationAdd];\n [g11.move.name]: [T12.UpdateOperationMove];\n [g11.copy.name]: [T12.UpdateOperationCopy];\n [g11.quadPattern.name]: [Wrap<T12.Quads[]>];\n [g11.quadData.name]: [Wrap<T12.Quads[]>];\n [g11.insertData.name]: [T12.UpdateOperationInsertData];\n [g11.deleteData.name]: [T12.UpdateOperationDeleteData];\n [g11.deleteWhere.name]: [T12.UpdateOperationDeleteWhere];\n [g11.modify.name]: [T12.UpdateOperationModify];\n [g11.deleteClause.name]: [Wrap<T12.Quads[]>];\n [g11.insertClause.name]: [Wrap<T12.Quads[]>];\n [g11.graphOrDefault.name]: [T12.GraphRefDefault | T12.GraphRefSpecific];\n [g11.graphRef.name]: [T12.GraphRefSpecific];\n [g11.graphRefAll.name]: [T12.GraphRef];\n [g11.quads.name]: [Wrap<T12.Quads[]>];\n [g11.quadsNotTriples.name]: [T12.GraphQuads];\n /// Built-in functions\n [g11.builtInStr.name]: [T12.ExpressionOperation];\n [g11.builtInLang.name]: [T12.ExpressionOperation];\n [g11.builtInLangmatches.name]: [T12.ExpressionOperation];\n [g11.builtInDatatype.name]: [T12.ExpressionOperation];\n [g11.builtInBound.name]: [T12.ExpressionOperation];\n [g11.builtInIri.name]: [T12.ExpressionOperation];\n [g11.builtInUri.name]: [T12.ExpressionOperation];\n [g11.builtInBnodeSparqlJs.name]: [T12.ExpressionOperation];\n [g11.builtInRand.name]: [T12.ExpressionOperation];\n [g11.builtInAbs.name]: [T12.ExpressionOperation];\n [g11.builtInCeil.name]: [T12.ExpressionOperation];\n [g11.builtInFloor.name]: [T12.ExpressionOperation];\n [g11.builtInRound.name]: [T12.ExpressionOperation];\n [g11.builtInConcat.name]: [T12.ExpressionOperation];\n [g11.substringExpression.name]: [T12.ExpressionOperation];\n [g11.builtInStrlen.name]: [T12.ExpressionOperation];\n [g11.strReplaceExpression.name]: [T12.ExpressionOperation];\n [g11.builtInUcase.name]: [T12.ExpressionOperation];\n [g11.builtInLcase.name]: [T12.ExpressionOperation];\n [g11.builtInEncode_for_uri.name]: [T12.ExpressionOperation];\n [g11.builtInContains.name]: [T12.ExpressionOperation];\n [g11.builtInStrstarts.name]: [T12.ExpressionOperation];\n [g11.builtInStrends.name]: [T12.ExpressionOperation];\n [g11.builtInStrbefore.name]: [T12.ExpressionOperation];\n [g11.builtInStrafter.name]: [T12.ExpressionOperation];\n [g11.builtInYear.name]: [T12.ExpressionOperation];\n [g11.builtInMonth.name]: [T12.ExpressionOperation];\n [g11.builtInDay.name]: [T12.ExpressionOperation];\n [g11.builtInHours.name]: [T12.ExpressionOperation];\n [g11.builtInMinutes.name]: [T12.ExpressionOperation];\n [g11.builtInSeconds.name]: [T12.ExpressionOperation];\n [g11.builtInTimezone.name]: [T12.ExpressionOperation];\n [g11.builtInTz.name]: [T12.ExpressionOperation];\n [g11.builtInNow.name]: [T12.ExpressionOperation];\n [g11.builtInUuid.name]: [T12.ExpressionOperation];\n [g11.builtInStruuid.name]: [T12.ExpressionOperation];\n [g11.builtInMd5.name]: [T12.ExpressionOperation];\n [g11.builtInSha1.name]: [T12.ExpressionOperation];\n [g11.builtInSha256.name]: [T12.ExpressionOperation];\n [g11.builtInSha384.name]: [T12.ExpressionOperation];\n [g11.builtInSha512.name]: [T12.ExpressionOperation];\n [g11.builtInCoalesce.name]: [T12.ExpressionOperation];\n [g11.builtInIf.name]: [T12.ExpressionOperation];\n [g11.builtInStrlang.name]: [T12.ExpressionOperation];\n [g11.builtInStrdt.name]: [T12.ExpressionOperation];\n [g11.builtInSameterm.name]: [T12.ExpressionOperation];\n [g11.builtInIsiri.name]: [T12.ExpressionOperation];\n [g11.builtInIsuri.name]: [T12.ExpressionOperation];\n [g11.builtInIsblank.name]: [T12.ExpressionOperation];\n [g11.builtInIsliteral.name]: [T12.ExpressionOperation];\n [g11.builtInIsnumeric.name]: [T12.ExpressionOperation];\n [g11.existsFunc.name]: [T12.ExpressionPatternOperation];\n [g11.notExistsFunc.name]: [T12.ExpressionPatternOperation];\n [g11.aggregateCount.name]: [T12.ExpressionAggregateOnWildcard | T12.ExpressionAggregateDefault];\n [g11.aggregateSum.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateMin.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateMax.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateAvg.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateSample.name]: [T12.ExpressionAggregateDefault];\n [g11.aggregateGroup_concat.name]: [T12.ExpressionAggregateDefault | T12.ExpressionAggregateSeparator];\n [g11.aggregate.name]: [T12.ExpressionAggregate];\n [g11.builtInCall.name]: [T12.Expression];\n /// DatasetClause\n [g11.datasetClause.name]: [Wrap<T12.DatasetClauses['clauses'][0]>];\n [g11.defaultGraphClause.name]: [T12.TermIri];\n [g11.usingClause.name]: [Wrap<T12.DatasetClauses['clauses'][0]>];\n [g11.datasetClauseStar.name]: [T12.DatasetClauses];\n [g11.usingClauseStar.name]: [T12.DatasetClauses];\n [g11.namedGraphClause.name]: [Wrap<T12.TermIri>];\n [g11.sourceSelector.name]: [T12.TermIri];\n // Expression file\n [g11.argList.name]: [Wrap<Patch<g11.IArgList, { args: T12.Expression[] }>>];\n [g11.expressionList.name]: [Wrap<T12.Expression[]>];\n [g11.expression.name]: [T12.Expression];\n [g11.conditionalOrExpression.name]: [T12.ExpressionOperation | T12.Expression];\n [g11.conditionalAndExpression.name]: [T12.Expression];\n [g11.valueLogical.name]: [T12.Expression];\n [g11.relationalExpression.name]: [T12.ExpressionOperation | T12.Expression];\n [g11.numericExpression.name]: [T12.Expression];\n [g11.additiveExpression.name]: [T12.Expression];\n [g11.multiplicativeExpression.name]: [T12.Expression];\n [g11.unaryExpression.name]: [T12.Expression];\n [g11.primaryExpression.name]: [T12.Expression];\n [g11.brackettedExpression.name]: [T12.Expression];\n [g11.iriOrFunction.name]: [T12.TermIri | T12.ExpressionFunctionCall];\n /// General\n [g11.prologue.name]: [T12.ContextDefinition[]];\n [g11.baseDecl.name]: [T12.ContextDefinition];\n [g11.prefixDecl.name]: [T12.ContextDefinition];\n [g11.verb.name]: [T12.TermVariable | T12.TermIri];\n [g11.varOrTerm.name]: [T12.Term];\n [g11.varOrIri.name]: [T12.TermIri | T12.TermVariable];\n [g11.var_.name]: [T12.TermVariable];\n [g11.graphTerm.name]: [T12.GraphTerm];\n /// Literals\n [g11.rdfLiteral.name]: [T12.TermLiteral];\n [g11.numericLiteral.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralUnsigned.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralPositive.name]: [T12.TermLiteralTyped];\n [g11.numericLiteralNegative.name]: [T12.TermLiteralTyped];\n [g11.booleanLiteral.name]: [T12.TermLiteralTyped];\n [g11.string.name]: [T12.TermLiteralStr];\n [g11.iri.name]: [T12.TermIri];\n [g11.iriFull.name]: [T12.TermIriFull];\n [g11.prefixedName.name]: [T12.TermIriPrefixed];\n [g11.blankNode.name]: [T12.TermBlank];\n [g11.verbA.name]: [T12.TermIriFull];\n /// / Paths: unchanged\n /// / SolutionModifiers\n [g11.solutionModifier.name]: [T12.SolutionModifiers];\n [g11.groupClause.name]: [T12.SolutionModifierGroup];\n [g11.groupCondition.name]: [T12.Expression | T12.SolutionModifierGroupBind];\n [g11.havingClause.name]: [T12.SolutionModifierHaving];\n [g11.havingCondition.name]: [T12.Expression];\n [g11.orderClause.name]: [T12.SolutionModifierOrder];\n [g11.orderCondition.name]: [T12.Ordering];\n [g11.limitOffsetClauses.name]: [T12.SolutionModifierLimitOffset];\n [g11.limitClause.name]: [Wrap<number>];\n [g11.offsetClause.name]: [ Wrap<number>];\n /// tripleBlock\n [g11.triplesBlock.name]: [T12.PatternBgp];\n [g11.triplesSameSubject.name]: [T12.BasicGraphPattern];\n [g11.triplesSameSubjectPath.name]: [T12.BasicGraphPattern];\n [g11.triplesTemplate.name]: [T12.PatternBgp];\n [g11.propertyList.name]: [T12.TripleNesting[]];\n [g11.propertyListPath.name]: [T12.TripleNesting[]];\n [g11.propertyListNotEmpty.name]: [T12.TripleNesting[]];\n [g11.propertyListPathNotEmpty.name]: [T12.TripleNesting[]];\n [g11.verbPath.name]: [T12.Path];\n [g11.verbSimple.name]: [T12.TermVariable];\n [g11.objectList.name]: [T12.TripleNesting[], [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.objectListPath.name]: [T12.TripleNesting, [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.object.name]: [T12.TripleNesting, [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.objectPath.name]: [T12.TripleNesting[], [ T12.TripleNesting['subject'], T12.TripleNesting['predicate'] ]];\n [g11.collection.name]: [T12.TripleCollectionList];\n [g11.collectionPath.name]: [T12.TripleCollectionList];\n [g11.triplesNode.name]: [T12.TripleCollection];\n [g11.triplesNodePath.name]: [T12.TripleCollection];\n [g11.blankNodePropertyList.name]: [T12.TripleCollectionBlankNodeProperties];\n [g11.blankNodePropertyListPath.name]: [T12.TripleCollectionBlankNodeProperties];\n [g11.graphNode.name]: [T12.Term | T12.TripleCollection];\n [g11.graphNodePath.name]: [T12.Term | T12.TripleCollection];\n /// WhereClause\n [g11.whereClause.name]: [Wrap<T12.PatternGroup>];\n [g11.groupGraphPattern.name]: [T12.PatternGroup];\n [g11.groupGraphPatternSub.name]: [T12.Pattern[]];\n [g11.graphPatternNotTriples.name]: [Exclude<T12.Pattern, T12.SubSelect | T12.PatternBgp>];\n [g11.optionalGraphPattern.name]: [T12.PatternOptional];\n [g11.graphGraphPattern.name]: [T12.PatternGraph];\n [g11.serviceGraphPattern.name]: [T12.PatternService];\n [g11.bind.name]: [T12.PatternBind];\n [g11.inlineData.name]: [T12.PatternValues];\n [g11.dataBlock.name]: [T12.PatternValues];\n [g11.inlineDataOneVar.name]: [T12.PatternValues];\n [g11.inlineDataFull.name]: [T12.PatternValues];\n [g11.dataBlockValue.name]: [T12.TermIri | T12.TermLiteral | undefined];\n [g11.minusGraphPattern.name]: [T12.PatternMinus];\n [g11.groupOrUnionGraphPattern.name]: [T12.PatternGroup | T12.PatternUnion];\n [g11.filter.name]: [T12.PatternFilter];\n [g11.constraint.name]: [T12.Expression];\n [g11.functionCall.name]: [T12.ExpressionFunctionCall];\n }>()\n .addMany(\n S12.reifiedTripleBlock,\n S12.reifiedTripleBlockPath,\n S12.reifier,\n S12.varOrReifierId,\n S12.annotation,\n S12.annotationPath,\n S12.annotationBlockPath,\n S12.annotationBlock,\n S12.reifiedTriple,\n S12.reifiedTripleSubject,\n S12.reifiedTripleObject,\n S12.tripleTerm,\n S12.tripleTermSubject,\n S12.tripleTermObject,\n S12.tripleTermData,\n S12.tripleTermDataSubject,\n S12.tripleTermDataObject,\n S12.exprTripleTerm,\n S12.exprTripleTermSubject,\n S12.exprTripleTermObject,\n )\n .addMany(\n S12.versionDecl,\n S12.versionSpecifier,\n )\n .addMany(\n S12.buildInLangDir,\n S12.buildInLangStrDir,\n S12.buildInHasLang,\n S12.buildInHasLangDir,\n S12.buildInIsTriple,\n S12.buildInTriple,\n S12.buildInSubject,\n S12.buildInPredicate,\n S12.buildInObject,\n )\n .patchRule(S12.dataBlockValue)\n .patchRule(S12.triplesSameSubject)\n .patchRule(S12.triplesSameSubjectPath)\n .patchRule(S12.object)\n .patchRule(S12.objectPath)\n .patchRule(S12.graphNode)\n .patchRule(S12.graphNodePath)\n .patchRule(S12.varOrTerm)\n .deleteRule(g11.graphTerm.name)\n .patchRule(S12.primaryExpression)\n .patchRule(S12.builtInCall)\n .patchRule(S12.rdfLiteral)\n .patchRule(S12.unaryExpression)\n .patchRule(S12.prologue);\n\nexport type SparqlParser = ReturnType<typeof sparql12ParserBuilder.build>;\n\n/**\n * Generator that can generate a SPARQL 1.2 AST given a SPARQL 1.2 string.\n */\nexport class Parser {\n private readonly parser: SparqlParser;\n protected readonly defaultContext: T12.SparqlContext;\n\n public constructor(\n args: Pick<ParserBuildArgs, 'parserConfig' | 'lexerConfig'> & { defaultContext?: Partial<T12.SparqlContext> } = {},\n ) {\n this.parser = sparql12ParserBuilder.build({\n ...args,\n queryPreProcessor: sparqlCodepointEscape,\n tokenVocabulary: l12.sparql12LexerBuilder.tokenVocabulary,\n });\n this.defaultContext = completeParseContext(args.defaultContext ?? {});\n }\n\n /**\n * Parse a query string starting from the\n * [QueryUnit](https://www.w3.org/TR/sparql12-query/#rQueryUnit)\n * or [QueryUpdate](https://www.w3.org/TR/sparql12-query/#rUpdateUnit) rules.\n * @param query\n * @param context\n */\n public parse(query: string, context: Partial<T12.SparqlContext> = {}): T12.SparqlQuery {\n const ast = this.parser.queryOrUpdate(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n return ast;\n }\n\n /**\n * Parse a query string starting from the [Path](https://www.w3.org/TR/sparql12-query/#rPath) grammar rule.\n * @param query\n * @param context\n */\n public parsePath(\n query: string,\ncontext: Partial<T12.SparqlContext> = {},\n ): (T12.Path & { prefixes: object }) | TermIri {\n const ast = this.parser.path(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n if (this.defaultContext.astFactory.isPathPure(ast)) {\n return {\n ...ast,\n prefixes: {},\n };\n }\n return ast;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@traqula/parser-sparql-1-2",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0
|
|
4
|
+
"version": "1.0.0",
|
|
5
5
|
"description": "SPARQL 1.2 parser",
|
|
6
6
|
"lsd:module": true,
|
|
7
7
|
"license": "MIT",
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"build": "yarn build:ts && yarn build:cjs",
|
|
40
40
|
"build:ts": "node \"../../node_modules/typescript/bin/tsc\" -b",
|
|
41
41
|
"build:cjs": "node \"../../node_modules/typescript/bin/tsc\" -b tsconfig.cjs.json",
|
|
42
|
+
"spec:base-1-0": "rdf-test-suite dist/cjs/spec/parser.js https://w3c.github.io/rdf-tests/sparql/sparql10/manifest.ttl -c ../../.rdf-test-suite-cache/ --skip \"(syn-bad-GRAPH-breaks-BGP|syn-bad-UNION-breaks-BGP|syn-bad-OPT-breaks-BGP|syn-bad-38|syn-bad-37|syn-bad-36|syn-bad-35|syn-bad-34|blabel-cross-union-bad|blabel-cross-optional-bad|blabel-cross-graph-bad)\"",
|
|
42
43
|
"spec:base-1-1": "rdf-test-suite dist/cjs/spec/parser.js http://w3c.github.io/rdf-tests/sparql/sparql11/manifest-all.ttl -c ../../.rdf-test-suite-cache/",
|
|
43
44
|
"spec:base-1-2": "rdf-test-suite dist/cjs/spec/parser.js https://w3c.github.io/rdf-tests/sparql/sparql12/manifest.ttl -c ../../.rdf-test-suite-cache/",
|
|
44
45
|
"spec:query-1-1": "yarn spec:base-1-1 -- -s http://www.w3.org/TR/sparql11-query/",
|
|
@@ -47,22 +48,22 @@
|
|
|
47
48
|
"spec:earl:query-1-1": "yarn spec:query-1-1 --silent -- -o earl -p spec/earl-meta.json > spec/earl-sparql-1-1-query.ttl",
|
|
48
49
|
"spec:earl:update-1-1": "yarn spec:update-1-1 --silent -- -o earl -p spec/earl-meta.json > spec/earl-sparql-1-1-update.ttl",
|
|
49
50
|
"spec:earl:query-1-2": "yarn spec:query-1-2 --silent -- -o earl -p spec/earl-meta.json > spec/earl-sparql-1-2-query.ttl",
|
|
50
|
-
"spec:
|
|
51
|
-
"spec:
|
|
51
|
+
"spec:earl:base-1-0": "yarn spec:base-1-0 --silent -- -o earl -p spec/earl-meta.json > spec/earl-sparql-1-0-query.ttl",
|
|
52
|
+
"spec:all": "yarn spec:base-1-0 && yarn spec:base-1-1 && yarn spec:base-1-2 && yarn spec:query-1-2",
|
|
53
|
+
"spec:earl": "yarn spec:earl:base-1-0 && yarn spec:earl:query-1-1 && yarn spec:earl:update-1-1"
|
|
52
54
|
},
|
|
53
55
|
"dependencies": {
|
|
54
|
-
"@traqula/core": "^0.0
|
|
55
|
-
"@traqula/parser-sparql-1-1": "^0.0
|
|
56
|
-
"@traqula/rules-sparql-1-1": "^0.0
|
|
57
|
-
"@traqula/rules-sparql-1-2": "^0.0
|
|
56
|
+
"@traqula/core": "^1.0.0",
|
|
57
|
+
"@traqula/parser-sparql-1-1": "^1.0.0",
|
|
58
|
+
"@traqula/rules-sparql-1-1": "^1.0.0",
|
|
59
|
+
"@traqula/rules-sparql-1-2": "^1.0.0",
|
|
58
60
|
"rdf-data-factory": "^2.0.1"
|
|
59
61
|
},
|
|
60
62
|
"devDependencies": {
|
|
61
|
-
"@
|
|
62
|
-
"@traqula/test-utils": "^0.0.24",
|
|
63
|
+
"@traqula/test-utils": "^1.0.0",
|
|
63
64
|
"rdf-data-factory": "^2.0.1",
|
|
64
65
|
"rdf-test-suite": "^2.0.0",
|
|
65
66
|
"sparqljs": "^3.7.3"
|
|
66
67
|
},
|
|
67
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "9e648d6d9081a3b4f994599fa22116414914746f"
|
|
68
69
|
}
|