@traqula/rules-sparql-1-2 0.0.20 → 0.0.22
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/dist/cjs/lib/AstFactory.js +96 -0
- package/dist/cjs/lib/grammar.js +644 -0
- package/dist/cjs/lib/index.js +52 -0
- package/dist/cjs/lib/lexer.js +96 -0
- package/dist/cjs/lib/parserUtils.js +46 -0
- package/dist/cjs/lib/sparql12HelperTypes.js +16 -0
- package/dist/cjs/lib/sparql12Types.js +16 -0
- package/dist/cjs/lib/validators.js +116 -0
- package/dist/esm/lib/AstFactory.js.map +1 -0
- package/dist/esm/lib/grammar.js.map +1 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/lib/lexer.js.map +1 -0
- package/dist/esm/lib/parserUtils.js.map +1 -0
- package/dist/esm/lib/sparql12HelperTypes.js.map +1 -0
- package/dist/esm/lib/sparql12Types.js.map +1 -0
- package/dist/esm/lib/validators.js.map +1 -0
- package/package.json +13 -15
- package/lib/AstFactory.js.map +0 -1
- package/lib/grammar.js.map +0 -1
- package/lib/index.cjs +0 -15390
- package/lib/index.js.map +0 -1
- package/lib/lexer.js.map +0 -1
- package/lib/parserUtils.js.map +0 -1
- package/lib/sparql12HelperTypes.js.map +0 -1
- package/lib/sparql12Types.js.map +0 -1
- package/lib/validators.js.map +0 -1
- /package/{lib → dist/esm/lib}/AstFactory.d.ts +0 -0
- /package/{lib → dist/esm/lib}/AstFactory.js +0 -0
- /package/{lib → dist/esm/lib}/grammar.d.ts +0 -0
- /package/{lib → dist/esm/lib}/grammar.js +0 -0
- /package/{lib → dist/esm/lib}/index.d.ts +0 -0
- /package/{lib → dist/esm/lib}/index.js +0 -0
- /package/{lib → dist/esm/lib}/lexer.d.ts +0 -0
- /package/{lib → dist/esm/lib}/lexer.js +0 -0
- /package/{lib → dist/esm/lib}/parserUtils.d.ts +0 -0
- /package/{lib → dist/esm/lib}/parserUtils.js +0 -0
- /package/{lib → dist/esm/lib}/sparql12HelperTypes.d.ts +0 -0
- /package/{lib → dist/esm/lib}/sparql12HelperTypes.js +0 -0
- /package/{lib → dist/esm/lib}/sparql12Types.d.ts +0 -0
- /package/{lib → dist/esm/lib}/sparql12Types.js +0 -0
- /package/{lib → dist/esm/lib}/validators.d.ts +0 -0
- /package/{lib → dist/esm/lib}/validators.js +0 -0
package/lib/grammar.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grammar.js","sourceRoot":"","sources":["grammar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * This module will define patch rules that should be used in combination with the sparql11 grammar to create\n * a sparql12 grammar.\n * Rules in this module redefine the return type of core grammar rules.\n * It is therefore essential that the parser retypes the rules from the core grammar.\n */\nimport type { RuleDefReturn, Wrap } from '@traqula/core';\nimport { traqulaIndentation } from '@traqula/core';\nimport { CommonIRIs, funcExpr1, funcExpr3, gram as S11, lex as l11 } from '@traqula/rules-sparql-1-1';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport * as l12 from './lexer.js';\nimport type { SparqlGeneratorRule, SparqlGrammarRule, SparqlRule } from './sparql12HelperTypes.js';\nimport type {\n Annotation,\n ContextDefinition,\n ContextDefinitionVersion,\n Expression,\n GraphNode,\n GraphTerm,\n PatternBgp,\n Term,\n TermBlank,\n TermIri,\n TermLiteral,\n TermTriple,\n TermVariable,\n TripleCollectionBlankNodeProperties,\n TripleCollectionReifiedTriple,\n TripleNesting,\n} from './sparql12Types.js';\nimport { langTagHasCorrectRange } from './validators.js';\n\n/**\n *[[7]](https://www.w3.org/TR/sparql12-query/#rVersionDecl)\n */\nexport const versionDecl: SparqlRule<'versionDecl', ContextDefinitionVersion> = {\n name: 'versionDecl',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const versionToken = CONSUME(l12.version);\n const identifier = SUBRULE(versionSpecifier);\n return ACTION(() =>\n C.astFactory.contextDefinitionVersion(identifier.val, C.astFactory.sourceLocation(versionToken, identifier)));\n },\n gImpl: ({ PRINT_ON_OWN_LINE }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => {\n PRINT_ON_OWN_LINE('VERSION ', `${S11.stringEscapedLexical(ast.version)}`);\n });\n },\n};\n\n/**\n * [[8]](https://www.w3.org/TR/sparql12-query/#rVersionSpecifier)\n */\nexport const versionSpecifier: SparqlGrammarRule<'versionSpecifier', Wrap<string>> = {\n name: 'versionSpecifier',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const token = OR([\n { ALT: () => CONSUME(l11.terminals.stringLiteral1) },\n { ALT: () => CONSUME(l11.terminals.stringLiteral2) },\n ]);\n return ACTION(() => C.astFactory.wrap(token.image.slice(1, -1), C.astFactory.sourceLocation(token)));\n },\n};\n\n/**\n * OVERRIDING RULE {@link S11.prologue}\n * [[4]](https://www.w3.org/TR/sparql12-query/#rPrologue)\n */\nexport const prologue: SparqlRule<'prologue', ContextDefinition[]> = {\n name: 'prologue',\n impl: ({ SUBRULE, MANY, OR }) => () => {\n const result: ContextDefinition[] = [];\n MANY(() => OR([\n { ALT: () => result.push(SUBRULE(S11.baseDecl)) },\n // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.\n // We might need to check this.\n { ALT: () => result.push(SUBRULE(S11.prefixDecl)) },\n { ALT: () => result.push(SUBRULE(versionDecl)) },\n ]));\n return result;\n },\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n for (const context of ast) {\n if (F.isContextDefinitionBase(context)) {\n SUBRULE(S11.baseDecl, context);\n } else if (F.isContextDefinitionPrefix(context)) {\n SUBRULE(S11.prefixDecl, context);\n } else if (F.isContextDefinitionVersion(context)) {\n SUBRULE(versionDecl, context);\n }\n }\n },\n};\n\nfunction reifiedTripleBlockImpl<T extends string>(name: T, allowPath: boolean):\nSparqlGrammarRule<T, T11.BasicGraphPattern> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE }) => (C) => {\n const triple = SUBRULE(reifiedTriple);\n const properties = SUBRULE(\n allowPath ? S11.propertyListPath : S11.propertyList,\n ACTION(() => C.astFactory.dematerialized(triple.identifier)),\n );\n\n return ACTION(() => <T11.BasicGraphPattern> [ triple, ...properties ]);\n },\n };\n}\n/**\n * [[58]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlock) Used by triplesSameSubject\n */\nexport const reifiedTripleBlock = reifiedTripleBlockImpl('reifiedTripleBlock', false);\n/**\n * [[59]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlockPath) Used by TriplesSameSubjectPath\n */\nexport const reifiedTripleBlockPath = reifiedTripleBlockImpl('reifiedTripleBlockPath', true);\n\n/**\n * OVERRIDING RULE: {@link S11.dataBlockValue}.\n * [[69]](https://www.w3.org/TR/sparql12-query/#rDataBlockValue)\n */\nexport const dataBlockValue:\nSparqlGrammarRule<'dataBlockValue', RuleDefReturn<typeof S11.dataBlockValue> | TermTriple> = <const> {\n name: 'dataBlockValue',\n impl: $ => C => $.OR2<RuleDefReturn<typeof dataBlockValue>>([\n { ALT: () => S11.dataBlockValue.impl($)(C) },\n { ALT: () => $.SUBRULE(tripleTermData) },\n ]),\n};\n\n/**\n * [[70]](https://www.w3.org/TR/sparql12-query/#rReifier)\n */\nexport const reifier: SparqlGrammarRule<'reifier', Wrap<RuleDefReturn<typeof varOrReifierId>>> = <const> {\n name: 'reifier',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {\n const tildeToken = CONSUME(l12.tilde);\n const reifier = OPTION(() => SUBRULE(varOrReifierId));\n return ACTION(() => {\n if (reifier === undefined && !C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n return C.astFactory.wrap(\n reifier ?? C.astFactory.termBlank(undefined, C.astFactory.sourceLocation()),\n C.astFactory.sourceLocation(tildeToken, reifier),\n );\n });\n },\n};\n\n/**\n * [[71]](https://www.w3.org/TR/sparql12-query/#rVarOrReifierId)\n */\nexport const varOrReifierId: SparqlGrammarRule<'varOrReifierId', TermVariable | TermIri | TermBlank> =\n <const> {\n name: 'varOrReifierId',\n impl: ({ SUBRULE, OR }) => C => OR<RuleDefReturn<typeof varOrReifierId>>([\n { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(S11.blankNode) },\n ]),\n };\n\nfunction triplesSameSubjectImpl<T extends string>(name: T, allowPaths: boolean):\nSparqlGrammarRule<T, T11.BasicGraphPattern> {\n return <const> {\n name,\n impl: $ => C => $.OR2([\n { ALT: () => allowPaths ?\n S11.triplesSameSubjectPath.impl($)(C) :\n S11.triplesSameSubject.impl($)(C) },\n { ALT: () => $.SUBRULE(allowPaths ? reifiedTripleBlockPath : reifiedTripleBlock) },\n ]),\n };\n}\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubject}\n * [[81]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubject)\n */\nexport const triplesSameSubject = triplesSameSubjectImpl('triplesSameSubject', false);\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubjectPath}\n * [[87]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath)\n */\nexport const triplesSameSubjectPath = triplesSameSubjectImpl('triplesSameSubjectPath', true);\n\nfunction objectImpl<T extends string>(name: T, allowPaths: boolean):\nSparqlGrammarRule<T, TripleNesting, [TripleNesting['subject'], TripleNesting['predicate']]> {\n return <const>{\n name,\n impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {\n const objectVal = SUBRULE(allowPaths ? graphNodePath : graphNode);\n const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);\n\n return ACTION(() => {\n const F = C.astFactory;\n if (F.isPathPure(predicate) && annotationVal.length > 0) {\n throw new Error('Note 17 violation');\n }\n return F.annotatedTriple(\n subject,\n predicate,\n objectVal,\n annotationVal,\n );\n });\n },\n };\n}\n/**\n * OVERRIDING RULE: {@link S11.object}.\n * [[86]](https://www.w3.org/TR/sparql12-query/#rObject) Used by ObjectList\n */\nexport const object = objectImpl('object', false);\n/**\n * OVERRIDING RULE: {@link S11.objectPath}.\n * [[87]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath) Used by ObjectListPath\n */\nexport const objectPath = objectImpl('objectPath', true);\n\nfunction annotationImpl<T extends string>(name: T, allowPaths: boolean): SparqlRule<T, Annotation[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE, OR, MANY }) => (C) => {\n const annotations: Annotation[] = [];\n let currentReifier: TermBlank | TermVariable | TermIri | undefined;\n\n MANY(() => {\n OR([\n { ALT: () => {\n const node = SUBRULE(reifier);\n annotations.push(node);\n currentReifier = node.val;\n } },\n { ALT: () => {\n ACTION(() => {\n if (!currentReifier && !C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n currentReifier = currentReifier ?? C.astFactory.termBlank(undefined, C.astFactory.sourceLocation());\n });\n const block = SUBRULE(\n allowPaths ? annotationBlockPath : annotationBlock,\n currentReifier!,\n );\n ACTION(() => {\n annotations.push(block);\n currentReifier = undefined;\n });\n } },\n ]);\n });\n return annotations;\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n for (const annotation of ast) {\n if (F.isTripleCollectionBlankNodeProperties(annotation)) {\n SUBRULE(annotationBlockPath, annotation);\n } else {\n F.printFilter(annotation, () => PRINT_WORD('~'));\n SUBRULE(graphNodePath, annotation.val);\n }\n }\n },\n };\n}\n/**\n * [[109]](https://www.w3.org/TR/sparql12-query/#rAnnotationPath)\n */\nexport const annotationPath = annotationImpl('annotationPath', true);\n/**\n * [[111]](https://www.w3.org/TR/sparql12-query/#rAnnotation)\n */\nexport const annotation = annotationImpl('annotation', false);\n\nfunction annotationBlockImpl<T extends string>(name: T, allowPaths: boolean):\n SparqlGrammarRule<T, TripleCollectionBlankNodeProperties, [TripleCollectionBlankNodeProperties['identifier']]> &\n SparqlGeneratorRule<T, TripleCollectionBlankNodeProperties> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C, arg) => {\n const open = CONSUME(l12.annotationOpen);\n const res = SUBRULE(\n allowPaths ? S11.propertyListPathNotEmpty : S11.propertyListNotEmpty,\n arg,\n );\n const close = CONSUME(l12.annotationClose);\n\n return ACTION(() => C.astFactory.tripleCollectionBlankNodeProperties(\n arg,\n res,\n C.astFactory.sourceLocation(open, close),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {\n const { astFactory: F, indentInc } = C;\n F.printFilter(ast, () => {\n PRINT_WORD('{|');\n if (ast.triples.length > 1) {\n C[traqulaIndentation] += indentInc;\n NEW_LINE();\n }\n });\n\n function printTriple(triple: TripleNesting): void {\n HANDLE_LOC(triple, () => {\n if (F.isTerm(triple.predicate)) {\n SUBRULE(graphNodePath, triple.predicate);\n } else {\n SUBRULE(S11.pathGenerator, triple.predicate, undefined);\n }\n F.printFilter(triple, () => PRINT_WORD(''));\n SUBRULE(graphNodePath, triple.object);\n });\n }\n\n const [ head, ...tail ] = ast.triples;\n printTriple(head);\n for (const triple of tail) {\n F.printFilter(ast, () => {\n PRINT_WORD(';');\n NEW_LINE();\n });\n printTriple(triple);\n }\n\n F.printFilter(ast, () => {\n if (ast.triples.length > 1) {\n PRINT_ON_OWN_LINE('|}');\n } else {\n PRINT_WORD('|}');\n }\n });\n },\n };\n}\n/**\n * [[110]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlockPath)\n */\nexport const annotationBlockPath = annotationBlockImpl('annotationBlockPath', true);\n/**\n * [[112]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlock)\n */\nexport const annotationBlock = annotationBlockImpl('annotationBlock', false);\n\n/**\n * OVERRIDING RULE: {@link S11.graphNode}.\n * [[113]](https://www.w3.org/TR/sparql12-query/#rGraphNode)\n */\nexport const graphNode: SparqlGrammarRule<'graphNode', GraphNode> = <const> {\n name: 'graphNode',\n impl: $ => C => $.OR2<RuleDefReturn<typeof graphNode>>([\n { ALT: () => S11.graphNode.impl($)(C) },\n { ALT: () => $.SUBRULE(reifiedTriple) },\n ]),\n};\n/**\n * OVERRIDING RULE: {@link S11.graphNodePath}.\n * [[114]](https://www.w3.org/TR/sparql12-query/#rGraphNodePath)\n */\nexport const graphNodePath: SparqlRule<'graphNodePath', GraphNode> = <const> {\n name: 'graphNodePath',\n impl: $ => C => $.OR2<RuleDefReturn<typeof graphNodePath>>([\n { ALT: () => S11.graphNodePath.impl($)(C) },\n { ALT: () => $.SUBRULE(reifiedTriple) },\n ]),\n gImpl: $ => (ast, C) => {\n if (C.astFactory.isTripleCollectionReifiedTriple(ast)) {\n $.SUBRULE(reifiedTriple, ast);\n } else {\n S11.graphNodePath.gImpl($)(<T11.Term | T11.TripleCollection> ast, C);\n }\n },\n};\n\n/**\n * OVERRIDING RULE: {@link S11.varOrTerm}.\n * [[115]](https://www.w3.org/TR/sparql12-query/#rVarOrTerm)\n */\nexport const varOrTerm: SparqlGrammarRule<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ ACTION, SUBRULE, OR, CONSUME }) => C => OR<Term>([\n { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.blankNode) },\n { ALT: () => {\n const token = CONSUME(l11.terminals.nil);\n return ACTION(() => C.astFactory.termNamed(C.astFactory.sourceLocation(token), CommonIRIs.NIL));\n } },\n { ALT: () => SUBRULE(tripleTerm) },\n ]),\n // Generation remains untouched - go through graphTerm\n};\n\n/**\n * [[116]](https://www.w3.org/TR/sparql12-query/#rReifiedTriple)\n */\nexport const reifiedTriple: SparqlRule<'reifiedTriple', TripleCollectionReifiedTriple> = <const> {\n name: 'reifiedTriple',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {\n const open = CONSUME(l12.reificationOpen);\n const subject = SUBRULE(reifiedTripleSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(reifiedTripleObject);\n const reifierVal = OPTION(() => SUBRULE(reifier));\n const close = CONSUME(l12.reificationClose);\n\n return ACTION(() => {\n // A reifier would be auto generated in this case, but we are not allowed to use them.\n if (reifierVal === undefined && !C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n return C.astFactory.tripleCollectionReifiedTriple(\n C.astFactory.sourceLocation(open, close),\n subject,\n predicate,\n object,\n reifierVal?.val,\n );\n });\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('<<'));\n const triple = ast.triples[0];\n SUBRULE(graphNodePath, triple.subject);\n\n F.printFilter(ast, () => PRINT_WORD(''));\n if (F.isPathPure(triple.predicate)) {\n SUBRULE(S11.pathGenerator, triple.predicate, undefined);\n } else {\n SUBRULE(graphNodePath, triple.predicate);\n }\n\n F.printFilter(ast, () => PRINT_WORD(''));\n SUBRULE(graphNodePath, triple.object);\n\n SUBRULE(annotationPath, [ F.wrap(ast.identifier, ast.identifier.loc) ]);\n F.printFilter(ast, () => PRINT_WORD('>>'));\n },\n};\n\n/**\n * [[117]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleSubject)\n */\nexport const reifiedTripleSubject:\nSparqlGrammarRule<'reifiedTripleSubject', Term | TripleCollectionReifiedTriple> = <const> {\n name: 'reifiedTripleSubject',\n impl: ({ OR, SUBRULE }) => C => OR<RuleDefReturn<typeof reifiedTripleSubject>>([\n { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.blankNode) },\n { ALT: () => SUBRULE(reifiedTriple) },\n { ALT: () => SUBRULE(tripleTerm) },\n ]),\n};\n\n/**\n * [[118]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleObject)\n */\nexport const reifiedTripleObject:\nSparqlGrammarRule<'reifiedTripleObject', RuleDefReturn<typeof reifiedTripleSubject>> =\n <const> {\n name: 'reifiedTripleObject',\n impl: reifiedTripleSubject.impl,\n };\n\n/**\n * [[119]](https://www.w3.org/TR/sparql12-query/#rTripleTerm)\n */\nexport const tripleTerm: SparqlRule<'tripleTerm', TermTriple> = <const> {\n name: 'tripleTerm',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n const open = CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(tripleTermObject);\n const close = CONSUME(l12.tripleTermClose);\n return ACTION(() => C.astFactory.termTriple(subject, predicate, object, C.astFactory.sourceLocation(open, close)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('<<('));\n SUBRULE(graphNodePath, ast.subject);\n F.printFilter(ast, () => PRINT_WORD(''));\n SUBRULE(graphNodePath, ast.predicate);\n F.printFilter(ast, () => PRINT_WORD(''));\n SUBRULE(graphNodePath, ast.object);\n F.printFilter(ast, () => PRINT_WORD(')>>'));\n },\n};\n\n/**\n * [[120]](https://www.w3.org/TR/sparql12-query/#rTripleTermSubject)\n */\nexport const tripleTermSubject:\nSparqlGrammarRule<'tripleTermSubject', TermVariable | TermIri | TermLiteral | TermBlank | TermTriple> = <const> {\n name: 'tripleTermSubject',\n impl: ({ SUBRULE, OR }) => C => OR<RuleDefReturn<typeof tripleTermSubject>>([\n { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.blankNode) },\n { ALT: () => SUBRULE(tripleTerm) },\n ]),\n};\n\n/**\n * [[121]](https://www.w3.org/TR/sparql12-query/#rTripleTermObject)\n */\nexport const tripleTermObject:\nSparqlGrammarRule<'tripleTermObject', RuleDefReturn<typeof tripleTermSubject>> = <const> {\n name: 'tripleTermObject',\n impl: tripleTermSubject.impl,\n};\n\n/**\n * [[122]](https://www.w3.org/TR/sparql12-query/#rTripleTermData)\n */\nexport const tripleTermData: SparqlGrammarRule<'tripleTermData', TermTriple> = <const> {\n name: 'tripleTermData',\n impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {\n const open = CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermDataSubject);\n const predicate = OR([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => {\n const token = CONSUME(l11.a);\n return ACTION(() => C.astFactory.termNamed(C.astFactory.sourceLocation(token), CommonIRIs.TYPE));\n } },\n ]);\n const object = SUBRULE(tripleTermDataObject);\n const close = CONSUME(l12.tripleTermClose);\n\n return ACTION(() => C.astFactory.termTriple(subject, predicate, object, C.astFactory.sourceLocation(open, close)));\n },\n};\n\n/**\n * [[123]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataSubject)\n */\nexport const tripleTermDataSubject: SparqlGrammarRule<'tripleTermDataSubject', TermIri | TermLiteral | TermTriple> =\n <const> {\n name: 'tripleTermDataSubject',\n impl: ({ OR, SUBRULE }) => () => OR<RuleDefReturn<typeof tripleTermDataSubject>>([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(tripleTermData) },\n ]),\n };\n\n/**\n * [[124]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataObject)\n */\nexport const tripleTermDataObject:\nSparqlGrammarRule<'tripleTermDataObject', RuleDefReturn<typeof tripleTermDataSubject>> = <const> {\n name: 'tripleTermDataObject',\n impl: tripleTermDataSubject.impl,\n};\n\n/**\n * OVERRIDING RULE: {@link S11.primaryExpression}.\n * [[136]](https://www.w3.org/TR/sparql12-query/#rPrimaryExpression)\n */\nexport const primaryExpression: SparqlGrammarRule<'primaryExpression', Expression> = <const> {\n name: 'primaryExpression',\n impl: $ => C => $.OR2<Expression>([\n { ALT: () => S11.primaryExpression.impl($)(C) },\n { ALT: () => $.SUBRULE(exprTripleTerm) },\n ]),\n};\n\n/**\n * [[137]](https://www.w3.org/TR/sparql12-query/#rExprTripleTerm)\n */\nexport const exprTripleTerm: SparqlGrammarRule<'exprTripleTerm', TermTriple> = <const> {\n name: 'exprTripleTerm',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n const open = CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(exprTripleTermSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(exprTripleTermObject);\n const close = CONSUME(l12.tripleTermClose);\n\n return ACTION(() => C.astFactory.termTriple(\n subject,\n predicate,\n object,\n C.astFactory.sourceLocation(open, close),\n ));\n },\n};\n\n/**\n * [[138]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermSubject)\n */\nexport const exprTripleTermSubject:\nSparqlGrammarRule<'exprTripleTermSubject', TermIri | TermVariable | TermLiteral | TermTriple> = <const> {\n name: 'exprTripleTermSubject',\n impl: ({ OR, SUBRULE }) => C =>\n OR<RuleDefReturn<typeof exprTripleTermSubject>>([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(exprTripleTerm) },\n ]),\n};\n\n/**\n * [[139]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermObject)\n */\nexport const exprTripleTermObject:\nSparqlGrammarRule<'exprTripleTermObject', RuleDefReturn<typeof exprTripleTermSubject> | TermTriple> = <const> {\n name: 'exprTripleTermObject',\n impl: exprTripleTermSubject.impl,\n};\n\nexport const buildInLangDir = funcExpr1(l12.buildInLangDir);\nexport const buildInLangStrDir = funcExpr3(l12.buildInStrLangDir);\nexport const buildInHasLang = funcExpr1(l12.buildInHasLang);\nexport const buildInHasLangDir = funcExpr1(l12.buildInHasLangDir);\nexport const buildInIsTriple = funcExpr1(l12.buildInIsTRIPLE);\nexport const buildInTriple = funcExpr3(l12.buildInTRIPLE);\nexport const buildInSubject = funcExpr1(l12.buildInSUBJECT);\nexport const buildInPredicate = funcExpr1(l12.buildInPREDICATE);\nexport const buildInObject = funcExpr1(l12.buildInOBJECT);\n\n/**\n * OVERRIDING RULE: {@link S11.builtInCall}.\n * [[141]](https://www.w3.org/TR/sparql12-query/#rBuiltInCall)\n */\nexport const builtInCall: typeof S11.builtInCall = <const> {\n name: 'builtInCall',\n impl: $ => C => $.OR2<T11.Expression>([\n { ALT: () => S11.builtInCall.impl($)(C) },\n { ALT: () => $.SUBRULE(buildInLangDir) },\n { ALT: () => $.SUBRULE(buildInLangStrDir) },\n { ALT: () => $.SUBRULE(buildInHasLang) },\n { ALT: () => $.SUBRULE(buildInHasLangDir) },\n { ALT: () => $.SUBRULE(buildInIsTriple) },\n { ALT: () => $.SUBRULE(buildInTriple) },\n { ALT: () => $.SUBRULE(buildInSubject) },\n { ALT: () => $.SUBRULE(buildInPredicate) },\n { ALT: () => $.SUBRULE(buildInObject) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.rdfLiteral}.\n * No retyping is needed since the return type is the same\n * [[149]](https://www.w3.org/TR/sparql12-query/#rRDFLiteral)\n */\nexport const rdfLiteral: SparqlGrammarRule<'rdfLiteral', RuleDefReturn<typeof S11.rdfLiteral>> = <const> {\n name: 'rdfLiteral',\n impl: ({ ACTION, SUBRULE, OPTION, CONSUME, OR }) => (C) => {\n const value = SUBRULE(S11.string);\n return OPTION(() => OR<RuleDefReturn<typeof rdfLiteral>>([\n { ALT: () => {\n const langTag = CONSUME(l12.LANG_DIR);\n return ACTION(() => {\n const literal = C.astFactory.termLiteral(\n C.astFactory.sourceLocation(value, langTag),\n value.value,\n langTag.image.slice(1).toLowerCase(),\n );\n langTagHasCorrectRange(literal);\n return literal;\n });\n } },\n { ALT: () => {\n CONSUME(l11.symbols.hathat);\n const iriVal = SUBRULE(S11.iri);\n return ACTION(() => C.astFactory.termLiteral(\n C.astFactory.sourceLocation(value, iriVal),\n value.value,\n iriVal,\n ));\n } },\n ])) ?? value;\n },\n};\n\nexport const unaryExpression: SparqlGrammarRule<(typeof S11.unaryExpression)['name'], Expression> = {\n name: 'unaryExpression',\n impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => C => OR1<Expression>([\n { ALT: () => SUBRULE1(primaryExpression) },\n { ALT: () => {\n const operator = CONSUME(l11.symbols.exclamation);\n const expr = SUBRULE1(unaryExpression);\n return ACTION(() => C.astFactory.expressionOperation(\n '!',\n [ <T11.Expression> expr ],\n C.astFactory.sourceLocation(operator, expr),\n ));\n } },\n { ALT: () => {\n const operator = OR2([\n { ALT: () => CONSUME(l11.symbols.opPlus) },\n { ALT: () => CONSUME(l11.symbols.opMinus) },\n ]);\n const expr = SUBRULE2(primaryExpression);\n return ACTION(() => C.astFactory.expressionOperation(\n operator.image === '!' ? '!' : (operator.image === '+' ? 'UPLUS' : 'UMINUS'),\n [ <T11.Expression> expr ],\n C.astFactory.sourceLocation(operator, expr),\n ));\n } },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.triplesBlock}.\n */\nexport const generateTriplesBlock: SparqlGeneratorRule<'triplesBlock', PatternBgp> = {\n name: 'triplesBlock',\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE, HANDLE_LOC }) => (ast, { astFactory: F }) => {\n for (const [ index, triple ] of ast.triples.entries()) {\n HANDLE_LOC(triple, () => {\n const nextTriple = ast.triples.at(index);\n if (F.isTripleCollection(triple)) {\n SUBRULE(graphNodePath, triple);\n // A top level tripleCollection block means that it is not used in a triple. So you end with DOT.\n F.printFilter(triple, () => {\n PRINT_WORD('.');\n NEW_LINE();\n });\n } else {\n // Subject\n SUBRULE(graphNodePath, triple.subject);\n F.printFilter(ast, () => PRINT_WORD(''));\n // Predicate\n if (F.isPathPure(triple.predicate)) {\n SUBRULE(S11.pathGenerator, triple.predicate, undefined);\n } else {\n SUBRULE(graphNodePath, triple.predicate);\n }\n F.printFilter(ast, () => PRINT_WORD(''));\n // Object\n SUBRULE(graphNodePath, triple.object);\n SUBRULE(annotationPath, triple.annotations ?? []);\n\n // If no more things, or a top level collection (only possible if new block was part), or new subject: add DOT\n if (nextTriple === undefined || F.isTripleCollection(nextTriple) ||\n !F.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {\n F.printFilter(ast, () => {\n PRINT_WORD('.');\n NEW_LINE();\n });\n } else if (F.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {\n F.printFilter(ast, () => PRINT_WORD(','));\n } else {\n F.printFilter(ast, () => {\n PRINT_WORD(';');\n NEW_LINE();\n });\n }\n }\n });\n }\n },\n};\n\n/**\n * OVERRIDING RULE: {@link S11.graphTerm}.\n * No retyping is needed since the return type is the same\n * [[149]](https://www.w3.org/TR/sparql12-query/#rRDFLiteral)\n */\nexport const generateGraphTerm: SparqlGeneratorRule<'graphTerm', GraphTerm> = {\n name: 'graphTerm',\n gImpl: $ => (ast, C) => {\n if (C.astFactory.isTermTriple(ast)) {\n $.SUBRULE(tripleTerm, ast);\n } else {\n S11.graphTerm.gImpl($)(ast, C);\n }\n },\n};\n"]}
|