@traqula/rules-sparql-1-1 0.0.18 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/lib/Sparql11types.d.ts +1 -0
  2. package/lib/Sparql11types.js.map +1 -1
  3. package/lib/astFactory.d.ts +9 -9
  4. package/lib/factoryMixins/Patternfactory.d.ts +1 -1
  5. package/lib/factoryMixins/Patternfactory.js +2 -2
  6. package/lib/factoryMixins/Patternfactory.js.map +1 -1
  7. package/lib/factoryMixins/TermFactory.d.ts +8 -8
  8. package/lib/factoryMixins/TermFactory.js +4 -4
  9. package/lib/factoryMixins/TermFactory.js.map +1 -1
  10. package/lib/grammar/general.js +10 -10
  11. package/lib/grammar/general.js.map +1 -1
  12. package/lib/grammar/literals.js +22 -19
  13. package/lib/grammar/literals.js.map +1 -1
  14. package/lib/grammar/propertyPaths.d.ts +2 -2
  15. package/lib/grammar/queryUnit.js +13 -10
  16. package/lib/grammar/queryUnit.js.map +1 -1
  17. package/lib/grammar/solutionModifier.js +6 -9
  18. package/lib/grammar/solutionModifier.js.map +1 -1
  19. package/lib/grammar/tripleBlock.d.ts +4 -4
  20. package/lib/grammar/tripleBlock.js +26 -13
  21. package/lib/grammar/tripleBlock.js.map +1 -1
  22. package/lib/grammar/updateUnit.js +36 -27
  23. package/lib/grammar/updateUnit.js.map +1 -1
  24. package/lib/grammar/whereClause.d.ts +4 -4
  25. package/lib/grammar/whereClause.js +43 -24
  26. package/lib/grammar/whereClause.js.map +1 -1
  27. package/lib/index.cjs +401 -189
  28. package/lib/lexer/BuiltInCalls.d.ts +1 -1
  29. package/lib/lexer/graph.d.ts +1 -1
  30. package/lib/lexer/lexer.d.ts +2 -2
  31. package/lib/lexer/symbols.d.ts +1 -1
  32. package/lib/lexer/terminals.d.ts +1 -1
  33. package/lib/sparql11HelperTypes.d.ts +1 -0
  34. package/lib/sparql11HelperTypes.js.map +1 -1
  35. package/lib/utils.d.ts +2 -2
  36. package/lib/utils.js +2 -2
  37. package/lib/utils.js.map +1 -1
  38. package/package.json +3 -3
@@ -213,6 +213,7 @@ export type PatternService = PatternBase & {
213
213
  export type ValuePatternRow = Record<string, TermIri | TermLiteral | undefined>;
214
214
  export type PatternValues = PatternBase & {
215
215
  subType: 'values';
216
+ variables: TermVariable[];
216
217
  values: ValuePatternRow[];
217
218
  };
218
219
  export type SubSelect = QuerySelect;
@@ -1 +1 @@
1
- {"version":3,"file":"Sparql11types.js","sourceRoot":"","sources":["Sparql11types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Localized, Node } from '@traqula/core';\n\nexport type Sparql11Nodes =\n | GraphRef\n | GraphQuads\n | UpdateOperation\n | Update\n | Query\n | DatasetClauses\n | TripleCollection\n | TripleNesting\n | Pattern\n | SolutionModifier\n | Expression\n | Path\n | ContextDefinition\n | Wildcard\n | Term;\n\nexport type GraphRefBase = Node & {\n type: 'graphRef';\n subType: string;\n};\nexport type GraphRefDefault = GraphRefBase & {\n subType: 'default';\n};\nexport type GraphRefNamed = GraphRefBase & {\n subType: 'named';\n};\nexport type GraphRefAll = GraphRefBase & {\n subType: 'all';\n};\nexport type GraphRefSpecific = GraphRefBase & {\n subType: 'specific';\n graph: TermIri;\n};\nexport type GraphRef =\n | GraphRefDefault\n | GraphRefNamed\n | GraphRefAll\n | GraphRefSpecific;\n\nexport type Quads = PatternBgp | GraphQuads;\n\nexport type GraphQuads = Node & {\n type: 'graph';\n graph: TermIri | TermVariable;\n triples: PatternBgp;\n};\n\n// https://www.w3.org/TR/sparql11-query/#rUpdate1\nexport type UpdateOperationBase = Node & { type: 'updateOperation'; subType: string };\nexport type UpdateOperationLoad = UpdateOperationBase & {\n subType: 'load';\n silent: boolean;\n source: TermIri;\n destination?: GraphRefSpecific;\n};\ntype UpdateOperationClearDropCreateBase = UpdateOperationBase & {\n subType: 'clear' | 'drop' | 'create';\n silent: boolean;\n destination: GraphRef;\n};\nexport type UpdateOperationClear = UpdateOperationClearDropCreateBase & { subType: 'clear' };\nexport type UpdateOperationDrop = UpdateOperationClearDropCreateBase & { subType: 'drop' };\nexport type UpdateOperationCreate = UpdateOperationClearDropCreateBase & {\n subType: 'create';\n destination: GraphRefSpecific;\n};\ntype UpdateOperationAddMoveCopy = UpdateOperationBase & {\n subType: 'add' | 'move' | 'copy';\n silent: boolean;\n source: GraphRefDefault | GraphRefSpecific;\n destination: GraphRefDefault | GraphRefSpecific;\n};\nexport type UpdateOperationAdd = UpdateOperationAddMoveCopy & { subType: 'add' };\nexport type UpdateOperationMove = UpdateOperationAddMoveCopy & { subType: 'move' };\nexport type UpdateOperationCopy = UpdateOperationAddMoveCopy & { subType: 'copy' };\ntype UpdateOperationInsertDeleteDelWhere = UpdateOperationBase & {\n subType: 'insertdata' | 'deletedata' | 'deletewhere';\n data: Quads[];\n};\nexport type UpdateOperationInsertData = UpdateOperationInsertDeleteDelWhere & { subType: 'insertdata' };\nexport type UpdateOperationDeleteData = UpdateOperationInsertDeleteDelWhere & { subType: 'deletedata' };\nexport type UpdateOperationDeleteWhere = UpdateOperationInsertDeleteDelWhere & { subType: 'deletewhere' };\nexport type UpdateOperationModify = UpdateOperationBase & {\n subType: 'modify';\n graph: TermIri | undefined;\n insert: Quads[];\n delete: Quads[];\n from: DatasetClauses;\n where: PatternGroup;\n};\nexport type UpdateOperation =\n | UpdateOperationLoad\n | UpdateOperationClear\n | UpdateOperationDrop\n | UpdateOperationCreate\n | UpdateOperationAdd\n | UpdateOperationMove\n | UpdateOperationCopy\n | UpdateOperationInsertData\n | UpdateOperationDeleteData\n | UpdateOperationDeleteWhere\n | UpdateOperationModify;\n\n// https://www.w3.org/TR/sparql11-query/#rUpdate\nexport type Update = Node & {\n type: 'update';\n updates: {\n operation?: UpdateOperation;\n context: ContextDefinition[];\n }[];\n};\n\n// https://www.w3.org/TR/sparql11-query/#rQueryUnit\nexport type QueryBase = Node & {\n type: 'query';\n subType: string;\n\n context: ContextDefinition[];\n values?: PatternValues;\n solutionModifiers: SolutionModifiers;\n datasets: DatasetClauses;\n where?: PatternGroup;\n};\nexport type QuerySelect = QueryBase & {\n subType: 'select';\n variables: (TermVariable | PatternBind)[] | [Wildcard];\n distinct?: true;\n reduced?: true;\n where: PatternGroup;\n};\nexport type QueryConstruct = QueryBase & {\n subType: 'construct';\n template: PatternBgp;\n where: PatternGroup;\n};\nexport type QueryDescribe = QueryBase & {\n subType: 'describe';\n variables: (TermVariable | TermIri)[] | [Wildcard];\n};\nexport type QueryAsk = QueryBase & {\n subType: 'ask';\n where: PatternGroup;\n};\nexport type Query =\n | QuerySelect\n | QueryConstruct\n | QueryDescribe\n | QueryAsk;\n\nexport type SparqlQuery = Query | Update;\n\n// https://www.w3.org/TR/sparql11-query/#rDatasetClause\nexport type DatasetClauses = Node & {\n type: 'datasetClauses';\n clauses: { clauseType: 'default' | 'named'; value: TermIri }[];\n};\n\n// https://www.w3.org/TR/sparql11-query/#rGraphNode\nexport type TripleCollectionBase = Node & {\n type: 'tripleCollection';\n subType: string;\n triples: TripleNesting[];\n identifier: Term;\n};\n/**\n * The subject of the triples does not have a string manifestation.\n */\nexport type TripleCollectionList = TripleCollectionBase & {\n subType: 'list';\n identifier: TermBlank;\n};\n/**\n * Bot subject and predicate of the triples do not have a string manifestation.\n */\nexport type TripleCollectionBlankNodeProperties = TripleCollectionBase & {\n subType: 'blankNodeProperties';\n identifier: TermBlank;\n};\nexport type TripleCollection =\n | TripleCollectionList\n | TripleCollectionBlankNodeProperties;\n\n// https://www.w3.org/TR/sparql11-query/#rGraphNode\nexport type GraphNode = Term | TripleCollection;\n\n// https://www.w3.org/TR/sparql11-query/#rTriplesBlock\nexport type TripleNesting = Node & {\n type: 'triple';\n subject: GraphNode;\n predicate: TermIri | TermVariable | Path;\n object: GraphNode;\n};\n\nexport type PatternBase = Node & { type: 'pattern'; subType: string };\nexport type PatternFilter = PatternBase & {\n subType: 'filter';\n expression: Expression;\n};\nexport type PatternMinus = PatternBase & {\n subType: 'minus';\n patterns: Pattern[];\n};\n\nexport type PatternGroup = PatternBase & {\n subType: 'group';\n patterns: Pattern[];\n};\nexport type PatternOptional = PatternBase & {\n subType: 'optional';\n patterns: Pattern[];\n};\nexport type PatternGraph = PatternBase & {\n subType: 'graph';\n name: TermIri | TermVariable;\n patterns: Pattern[];\n};\nexport type PatternUnion = PatternBase & {\n subType: 'union';\n patterns: PatternGroup[];\n};\nexport type BasicGraphPattern = (TripleNesting | TripleCollection)[];\nexport type PatternBgp = PatternBase & {\n subType: 'bgp';\n /**\n * Only the first appearance of a subject and predicate have a string manifestation\n */\n triples: BasicGraphPattern;\n};\nexport type PatternBind = PatternBase & {\n subType: 'bind';\n expression: Expression;\n variable: TermVariable;\n};\nexport type PatternService = PatternBase & {\n subType: 'service';\n name: TermIri | TermVariable;\n silent: boolean;\n patterns: Pattern[];\n};\n/**\n * A single list of assignments maps the variable identifier to the value\n */\nexport type ValuePatternRow = Record<string, TermIri | TermLiteral | undefined>;\nexport type PatternValues = PatternBase & {\n subType: 'values';\n values: ValuePatternRow[];\n};\nexport type SubSelect = QuerySelect;\n\nexport type Pattern =\n | PatternBgp\n | PatternGroup\n | PatternUnion\n | PatternOptional\n | PatternMinus\n | PatternGraph\n | PatternService\n | PatternFilter\n | PatternBind\n | PatternValues\n | SubSelect;\n\nexport type SolutionModifiers = {\n group?: SolutionModifierGroup;\n having?: SolutionModifierHaving;\n order?: SolutionModifierOrder;\n limitOffset?: SolutionModifierLimitOffset;\n};\nexport type SolutionModifierBase = Node & { type: 'solutionModifier'; subType: string };\nexport type SolutionModifierGroupBind = Localized & {\n variable: TermVariable;\n value: Expression;\n};\nexport type SolutionModifierGroup = SolutionModifierBase & {\n subType: 'group';\n groupings: (Expression | SolutionModifierGroupBind)[];\n};\nexport type SolutionModifierHaving = SolutionModifierBase & {\n subType: 'having';\n having: Expression[];\n};\nexport type Ordering = Localized & {\n descending: boolean;\n expression: Expression;\n};\nexport type SolutionModifierOrder = SolutionModifierBase & {\n subType: 'order';\n orderDefs: Ordering[];\n};\nexport type SolutionModifierLimitOffset = SolutionModifierBase\n & { subType: 'limitOffset'; limit: number | undefined; offset: number | undefined };\n\nexport type SolutionModifier =\n | SolutionModifierGroup\n | SolutionModifierHaving\n | SolutionModifierOrder\n | SolutionModifierLimitOffset;\n\nexport type ExpressionBase = Node & { type: 'expression'; subType: string };\n\ntype ExpressionAggregateBase = ExpressionBase & {\n subType: 'aggregate';\n distinct: boolean;\n expression: [Expression | Wildcard];\n};\nexport type ExpressionAggregateDefault = ExpressionAggregateBase & {\n expression: [Expression];\n aggregation: string;\n};\nexport type ExpressionAggregateOnWildcard = ExpressionAggregateBase & {\n expression: [Wildcard];\n aggregation: string;\n};\nexport type ExpressionAggregateSeparator = ExpressionAggregateBase & {\n expression: [Expression];\n aggregation: string;\n separator: string;\n};\nexport type ExpressionAggregate =\n | ExpressionAggregateDefault\n | ExpressionAggregateOnWildcard\n | ExpressionAggregateSeparator;\n\nexport type ExpressionOperation = ExpressionBase & {\n subType: 'operation';\n operator: string;\n args: Expression[];\n};\n\nexport type ExpressionPatternOperation = ExpressionBase & {\n subType: 'patternOperation';\n operator: string;\n // Can be a pattern in case of exists and not exists\n args: PatternGroup;\n};\n\nexport type ExpressionFunctionCall = ExpressionBase & {\n subType: 'functionCall';\n function: TermIri;\n distinct: boolean;\n args: Expression[];\n};\n\nexport type Expression =\n | ExpressionOperation\n | ExpressionPatternOperation\n | ExpressionFunctionCall\n | ExpressionAggregate\n | TermIri\n | TermVariable\n | TermLiteral;\n\nexport type PropertyPathBase = Node & { type: 'path'; subType: string };\nexport type PropertyPathChain = PropertyPathBase & {\n subType: '|' | '/';\n items: Path[];\n};\n\nexport type PathModified = PropertyPathBase & {\n subType: '?' | '*' | '+' | '^';\n items: [Path];\n};\n\nexport type PathNegatedElt = PropertyPathBase & {\n subType: '^';\n items: [TermIri];\n};\n\nexport type PathAlternativeLimited = PropertyPathBase & {\n subType: '|';\n items: (TermIri | PathNegatedElt)[];\n};\n\nexport type PathNegated = PropertyPathBase & {\n subType: '!';\n items: [TermIri | PathNegatedElt | PathAlternativeLimited];\n};\n\n// [[88]](https://www.w3.org/TR/sparql11-query/#rPath)\nexport type Path =\n | TermIri\n | PropertyPathChain\n | PathModified\n | PathNegated;\nexport type PathPure = PropertyPathChain | PathModified | PathNegated;\n\nexport type ContextDefinitionBase_ = Node & { type: 'contextDef'; subType: string };\nexport type ContextDefinitionPrefix = ContextDefinitionBase_ & {\n subType: 'prefix';\n key: string;\n value: TermIriFull;\n};\nexport type ContextDefinitionBase = ContextDefinitionBase_ & {\n subType: 'base';\n value: TermIriFull;\n};\nexport type ContextDefinition = ContextDefinitionPrefix | ContextDefinitionBase;\n\nexport type Wildcard = Node & {\n type: 'wildcard';\n};\n\nexport type TermBase = Node & { type: 'term'; subType: string };\nexport type TermLiteralBase = TermBase & {\n subType: 'literal';\n value: string;\n};\nexport type TermLiteralStr = TermLiteralBase & { langOrIri: undefined };\nexport type TermLiteralLangStr = TermLiteralBase & { langOrIri: string };\nexport type TermLiteralTyped = TermLiteralBase & { langOrIri: TermIri };\nexport type TermLiteral = TermLiteralStr | TermLiteralLangStr | TermLiteralTyped;\n\nexport type TermVariable = TermBase & {\n subType: 'variable';\n value: string;\n};\n\nexport type TermIriBase = TermBase & { subType: 'namedNode' };\nexport type TermIriFull = TermIriBase & { value: string };\nexport type TermIriPrefixed = TermIriBase & {\n value: string;\n prefix: string;\n};\nexport type TermIri = TermIriFull | TermIriPrefixed;\n\nexport type TermBlank = TermBase & { subType: 'blankNode' } & { label: string };\n\nexport type GraphTerm = TermIri | TermBlank | TermLiteral;\nexport type Term = GraphTerm | TermVariable;\n"]}
1
+ {"version":3,"file":"Sparql11types.js","sourceRoot":"","sources":["Sparql11types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Localized, Node } from '@traqula/core';\n\nexport type Sparql11Nodes =\n | GraphRef\n | GraphQuads\n | UpdateOperation\n | Update\n | Query\n | DatasetClauses\n | TripleCollection\n | TripleNesting\n | Pattern\n | SolutionModifier\n | Expression\n | Path\n | ContextDefinition\n | Wildcard\n | Term;\n\nexport type GraphRefBase = Node & {\n type: 'graphRef';\n subType: string;\n};\nexport type GraphRefDefault = GraphRefBase & {\n subType: 'default';\n};\nexport type GraphRefNamed = GraphRefBase & {\n subType: 'named';\n};\nexport type GraphRefAll = GraphRefBase & {\n subType: 'all';\n};\nexport type GraphRefSpecific = GraphRefBase & {\n subType: 'specific';\n graph: TermIri;\n};\nexport type GraphRef =\n | GraphRefDefault\n | GraphRefNamed\n | GraphRefAll\n | GraphRefSpecific;\n\nexport type Quads = PatternBgp | GraphQuads;\n\nexport type GraphQuads = Node & {\n type: 'graph';\n graph: TermIri | TermVariable;\n triples: PatternBgp;\n};\n\n// https://www.w3.org/TR/sparql11-query/#rUpdate1\nexport type UpdateOperationBase = Node & { type: 'updateOperation'; subType: string };\nexport type UpdateOperationLoad = UpdateOperationBase & {\n subType: 'load';\n silent: boolean;\n source: TermIri;\n destination?: GraphRefSpecific;\n};\ntype UpdateOperationClearDropCreateBase = UpdateOperationBase & {\n subType: 'clear' | 'drop' | 'create';\n silent: boolean;\n destination: GraphRef;\n};\nexport type UpdateOperationClear = UpdateOperationClearDropCreateBase & { subType: 'clear' };\nexport type UpdateOperationDrop = UpdateOperationClearDropCreateBase & { subType: 'drop' };\nexport type UpdateOperationCreate = UpdateOperationClearDropCreateBase & {\n subType: 'create';\n destination: GraphRefSpecific;\n};\ntype UpdateOperationAddMoveCopy = UpdateOperationBase & {\n subType: 'add' | 'move' | 'copy';\n silent: boolean;\n source: GraphRefDefault | GraphRefSpecific;\n destination: GraphRefDefault | GraphRefSpecific;\n};\nexport type UpdateOperationAdd = UpdateOperationAddMoveCopy & { subType: 'add' };\nexport type UpdateOperationMove = UpdateOperationAddMoveCopy & { subType: 'move' };\nexport type UpdateOperationCopy = UpdateOperationAddMoveCopy & { subType: 'copy' };\ntype UpdateOperationInsertDeleteDelWhere = UpdateOperationBase & {\n subType: 'insertdata' | 'deletedata' | 'deletewhere';\n data: Quads[];\n};\nexport type UpdateOperationInsertData = UpdateOperationInsertDeleteDelWhere & { subType: 'insertdata' };\nexport type UpdateOperationDeleteData = UpdateOperationInsertDeleteDelWhere & { subType: 'deletedata' };\nexport type UpdateOperationDeleteWhere = UpdateOperationInsertDeleteDelWhere & { subType: 'deletewhere' };\nexport type UpdateOperationModify = UpdateOperationBase & {\n subType: 'modify';\n graph: TermIri | undefined;\n insert: Quads[];\n delete: Quads[];\n from: DatasetClauses;\n where: PatternGroup;\n};\nexport type UpdateOperation =\n | UpdateOperationLoad\n | UpdateOperationClear\n | UpdateOperationDrop\n | UpdateOperationCreate\n | UpdateOperationAdd\n | UpdateOperationMove\n | UpdateOperationCopy\n | UpdateOperationInsertData\n | UpdateOperationDeleteData\n | UpdateOperationDeleteWhere\n | UpdateOperationModify;\n\n// https://www.w3.org/TR/sparql11-query/#rUpdate\nexport type Update = Node & {\n type: 'update';\n updates: {\n operation?: UpdateOperation;\n context: ContextDefinition[];\n }[];\n};\n\n// https://www.w3.org/TR/sparql11-query/#rQueryUnit\nexport type QueryBase = Node & {\n type: 'query';\n subType: string;\n\n context: ContextDefinition[];\n values?: PatternValues;\n solutionModifiers: SolutionModifiers;\n datasets: DatasetClauses;\n where?: PatternGroup;\n};\nexport type QuerySelect = QueryBase & {\n subType: 'select';\n variables: (TermVariable | PatternBind)[] | [Wildcard];\n distinct?: true;\n reduced?: true;\n where: PatternGroup;\n};\nexport type QueryConstruct = QueryBase & {\n subType: 'construct';\n template: PatternBgp;\n where: PatternGroup;\n};\nexport type QueryDescribe = QueryBase & {\n subType: 'describe';\n variables: (TermVariable | TermIri)[] | [Wildcard];\n};\nexport type QueryAsk = QueryBase & {\n subType: 'ask';\n where: PatternGroup;\n};\nexport type Query =\n | QuerySelect\n | QueryConstruct\n | QueryDescribe\n | QueryAsk;\n\nexport type SparqlQuery = Query | Update;\n\n// https://www.w3.org/TR/sparql11-query/#rDatasetClause\nexport type DatasetClauses = Node & {\n type: 'datasetClauses';\n clauses: { clauseType: 'default' | 'named'; value: TermIri }[];\n};\n\n// https://www.w3.org/TR/sparql11-query/#rGraphNode\nexport type TripleCollectionBase = Node & {\n type: 'tripleCollection';\n subType: string;\n triples: TripleNesting[];\n identifier: Term;\n};\n/**\n * The subject of the triples does not have a string manifestation.\n */\nexport type TripleCollectionList = TripleCollectionBase & {\n subType: 'list';\n identifier: TermBlank;\n};\n/**\n * Bot subject and predicate of the triples do not have a string manifestation.\n */\nexport type TripleCollectionBlankNodeProperties = TripleCollectionBase & {\n subType: 'blankNodeProperties';\n identifier: TermBlank;\n};\nexport type TripleCollection =\n | TripleCollectionList\n | TripleCollectionBlankNodeProperties;\n\n// https://www.w3.org/TR/sparql11-query/#rGraphNode\nexport type GraphNode = Term | TripleCollection;\n\n// https://www.w3.org/TR/sparql11-query/#rTriplesBlock\nexport type TripleNesting = Node & {\n type: 'triple';\n subject: GraphNode;\n predicate: TermIri | TermVariable | Path;\n object: GraphNode;\n};\n\nexport type PatternBase = Node & { type: 'pattern'; subType: string };\nexport type PatternFilter = PatternBase & {\n subType: 'filter';\n expression: Expression;\n};\nexport type PatternMinus = PatternBase & {\n subType: 'minus';\n patterns: Pattern[];\n};\n\nexport type PatternGroup = PatternBase & {\n subType: 'group';\n patterns: Pattern[];\n};\nexport type PatternOptional = PatternBase & {\n subType: 'optional';\n patterns: Pattern[];\n};\nexport type PatternGraph = PatternBase & {\n subType: 'graph';\n name: TermIri | TermVariable;\n patterns: Pattern[];\n};\nexport type PatternUnion = PatternBase & {\n subType: 'union';\n patterns: PatternGroup[];\n};\nexport type BasicGraphPattern = (TripleNesting | TripleCollection)[];\nexport type PatternBgp = PatternBase & {\n subType: 'bgp';\n /**\n * Only the first appearance of a subject and predicate have a string manifestation\n */\n triples: BasicGraphPattern;\n};\nexport type PatternBind = PatternBase & {\n subType: 'bind';\n expression: Expression;\n variable: TermVariable;\n};\nexport type PatternService = PatternBase & {\n subType: 'service';\n name: TermIri | TermVariable;\n silent: boolean;\n patterns: Pattern[];\n};\n/**\n * A single list of assignments maps the variable identifier to the value\n */\nexport type ValuePatternRow = Record<string, TermIri | TermLiteral | undefined>;\nexport type PatternValues = PatternBase & {\n subType: 'values';\n variables: TermVariable[];\n values: ValuePatternRow[];\n};\nexport type SubSelect = QuerySelect;\n\nexport type Pattern =\n | PatternBgp\n | PatternGroup\n | PatternUnion\n | PatternOptional\n | PatternMinus\n | PatternGraph\n | PatternService\n | PatternFilter\n | PatternBind\n | PatternValues\n | SubSelect;\n\nexport type SolutionModifiers = {\n group?: SolutionModifierGroup;\n having?: SolutionModifierHaving;\n order?: SolutionModifierOrder;\n limitOffset?: SolutionModifierLimitOffset;\n};\nexport type SolutionModifierBase = Node & { type: 'solutionModifier'; subType: string };\nexport type SolutionModifierGroupBind = Localized & {\n variable: TermVariable;\n value: Expression;\n};\nexport type SolutionModifierGroup = SolutionModifierBase & {\n subType: 'group';\n groupings: (Expression | SolutionModifierGroupBind)[];\n};\nexport type SolutionModifierHaving = SolutionModifierBase & {\n subType: 'having';\n having: Expression[];\n};\nexport type Ordering = Localized & {\n descending: boolean;\n expression: Expression;\n};\nexport type SolutionModifierOrder = SolutionModifierBase & {\n subType: 'order';\n orderDefs: Ordering[];\n};\nexport type SolutionModifierLimitOffset = SolutionModifierBase\n & { subType: 'limitOffset'; limit: number | undefined; offset: number | undefined };\n\nexport type SolutionModifier =\n | SolutionModifierGroup\n | SolutionModifierHaving\n | SolutionModifierOrder\n | SolutionModifierLimitOffset;\n\nexport type ExpressionBase = Node & { type: 'expression'; subType: string };\n\ntype ExpressionAggregateBase = ExpressionBase & {\n subType: 'aggregate';\n distinct: boolean;\n expression: [Expression | Wildcard];\n};\nexport type ExpressionAggregateDefault = ExpressionAggregateBase & {\n expression: [Expression];\n aggregation: string;\n};\nexport type ExpressionAggregateOnWildcard = ExpressionAggregateBase & {\n expression: [Wildcard];\n aggregation: string;\n};\nexport type ExpressionAggregateSeparator = ExpressionAggregateBase & {\n expression: [Expression];\n aggregation: string;\n separator: string;\n};\nexport type ExpressionAggregate =\n | ExpressionAggregateDefault\n | ExpressionAggregateOnWildcard\n | ExpressionAggregateSeparator;\n\nexport type ExpressionOperation = ExpressionBase & {\n subType: 'operation';\n operator: string;\n args: Expression[];\n};\n\nexport type ExpressionPatternOperation = ExpressionBase & {\n subType: 'patternOperation';\n operator: string;\n // Can be a pattern in case of exists and not exists\n args: PatternGroup;\n};\n\nexport type ExpressionFunctionCall = ExpressionBase & {\n subType: 'functionCall';\n function: TermIri;\n distinct: boolean;\n args: Expression[];\n};\n\nexport type Expression =\n | ExpressionOperation\n | ExpressionPatternOperation\n | ExpressionFunctionCall\n | ExpressionAggregate\n | TermIri\n | TermVariable\n | TermLiteral;\n\nexport type PropertyPathBase = Node & { type: 'path'; subType: string };\nexport type PropertyPathChain = PropertyPathBase & {\n subType: '|' | '/';\n items: Path[];\n};\n\nexport type PathModified = PropertyPathBase & {\n subType: '?' | '*' | '+' | '^';\n items: [Path];\n};\n\nexport type PathNegatedElt = PropertyPathBase & {\n subType: '^';\n items: [TermIri];\n};\n\nexport type PathAlternativeLimited = PropertyPathBase & {\n subType: '|';\n items: (TermIri | PathNegatedElt)[];\n};\n\nexport type PathNegated = PropertyPathBase & {\n subType: '!';\n items: [TermIri | PathNegatedElt | PathAlternativeLimited];\n};\n\n// [[88]](https://www.w3.org/TR/sparql11-query/#rPath)\nexport type Path =\n | TermIri\n | PropertyPathChain\n | PathModified\n | PathNegated;\nexport type PathPure = PropertyPathChain | PathModified | PathNegated;\n\nexport type ContextDefinitionBase_ = Node & { type: 'contextDef'; subType: string };\nexport type ContextDefinitionPrefix = ContextDefinitionBase_ & {\n subType: 'prefix';\n key: string;\n value: TermIriFull;\n};\nexport type ContextDefinitionBase = ContextDefinitionBase_ & {\n subType: 'base';\n value: TermIriFull;\n};\nexport type ContextDefinition = ContextDefinitionPrefix | ContextDefinitionBase;\n\nexport type Wildcard = Node & {\n type: 'wildcard';\n};\n\nexport type TermBase = Node & { type: 'term'; subType: string };\nexport type TermLiteralBase = TermBase & {\n subType: 'literal';\n value: string;\n};\nexport type TermLiteralStr = TermLiteralBase & { langOrIri: undefined };\nexport type TermLiteralLangStr = TermLiteralBase & { langOrIri: string };\nexport type TermLiteralTyped = TermLiteralBase & { langOrIri: TermIri };\nexport type TermLiteral = TermLiteralStr | TermLiteralLangStr | TermLiteralTyped;\n\nexport type TermVariable = TermBase & {\n subType: 'variable';\n value: string;\n};\n\nexport type TermIriBase = TermBase & { subType: 'namedNode' };\nexport type TermIriFull = TermIriBase & { value: string };\nexport type TermIriPrefixed = TermIriBase & {\n value: string;\n prefix: string;\n};\nexport type TermIri = TermIriFull | TermIriPrefixed;\n\nexport type TermBlank = TermBase & { subType: 'blankNode' } & { label: string };\n\nexport type GraphTerm = TermIri | TermBlank | TermLiteral;\nexport type Term = GraphTerm | TermVariable;\n"]}
@@ -68,12 +68,12 @@ declare const AstFactory_base: {
68
68
  __blankNodeCounter: number;
69
69
  resetBlankNodeCounter(): void;
70
70
  isTerm(x: object): x is Typed<"term">;
71
- blankNode(label: undefined | string, loc: SourceLocation): TermBlank;
71
+ termBlank(label: undefined | string, loc: SourceLocation): TermBlank;
72
72
  isTermBlank(obj: object): obj is SubTyped<"term", "blankNode">;
73
- literalTerm(loc: SourceLocation, value: string, lang?: undefined): import("./Sparql11types.js").TermLiteralStr;
74
- literalTerm(loc: SourceLocation, value: string, lang: string): import("./Sparql11types.js").TermLiteralLangStr;
75
- literalTerm(loc: SourceLocation, value: string, iri: TermIri): import("./Sparql11types.js").TermLiteralTyped;
76
- literalTerm(loc: SourceLocation, value: string, langOrIri?: string | TermIri): import("./Sparql11types.js").TermLiteral;
73
+ termLiteral(loc: SourceLocation, value: string, lang?: undefined): import("./Sparql11types.js").TermLiteralStr;
74
+ termLiteral(loc: SourceLocation, value: string, lang: string): import("./Sparql11types.js").TermLiteralLangStr;
75
+ termLiteral(loc: SourceLocation, value: string, iri: TermIri): import("./Sparql11types.js").TermLiteralTyped;
76
+ termLiteral(loc: SourceLocation, value: string, langOrIri?: string | TermIri): import("./Sparql11types.js").TermLiteral;
77
77
  isTermLiteral(obj: object): obj is SubTyped<"term", "literal">;
78
78
  isTermLiteralLangStr(obj: object): obj is SubTyped<"term", "literal"> & {
79
79
  langOrIri: string;
@@ -84,10 +84,10 @@ declare const AstFactory_base: {
84
84
  isTermLiteralTyped(obj: object): obj is SubTyped<"term", "literal"> & {
85
85
  langOrIri: SubTyped<"term", "namedNode">;
86
86
  };
87
- variable(value: string, loc: SourceLocation): TermVariable;
87
+ termVariable(value: string, loc: SourceLocation): TermVariable;
88
88
  isTermVariable(obj: object): obj is SubTyped<"term", "variable">;
89
- namedNode(loc: SourceLocation, value: string, prefix?: undefined): import("./Sparql11types.js").TermIriFull;
90
- namedNode(loc: SourceLocation, value: string, prefix: string): import("./Sparql11types.js").TermIriPrefixed;
89
+ termNamed(loc: SourceLocation, value: string, prefix?: undefined): import("./Sparql11types.js").TermIriFull;
90
+ termNamed(loc: SourceLocation, value: string, prefix: string): import("./Sparql11types.js").TermIriPrefixed;
91
91
  isTermNamed(obj: object): obj is SubTyped<"term", "namedNode">;
92
92
  isTermNamedPrefixed(obj: object): obj is SubTyped<"term", "namedNode"> & {
93
93
  prefix: string;
@@ -201,7 +201,7 @@ declare const AstFactory_base: {
201
201
  isPatternGraph(obj: object): obj is SubTyped<"pattern", "graph">;
202
202
  patternOptional(patterns: import("./Sparql11types.js").Pattern[], loc: SourceLocation): import("./Sparql11types.js").PatternOptional;
203
203
  isPatternOptional(obj: object): obj is SubTyped<"pattern", "optional">;
204
- patternValues(values: import("./Sparql11types.js").ValuePatternRow[], loc: SourceLocation): import("./Sparql11types.js").PatternValues;
204
+ patternValues(variables: TermVariable[], values: import("./Sparql11types.js").ValuePatternRow[], loc: SourceLocation): import("./Sparql11types.js").PatternValues;
205
205
  isPatternValues(obj: object): obj is SubTyped<"pattern", "values">;
206
206
  patternFilter(expression: import("./Sparql11types.js").Expression, loc: SourceLocation): import("./Sparql11types.js").PatternFilter;
207
207
  isPatternFilter(obj: object): obj is SubTyped<"pattern", "filter">;
@@ -13,7 +13,7 @@ export declare function PatternFactoryMixin<TBase extends Constructor<AstCoreFac
13
13
  isPatternGraph(obj: object): obj is SubTyped<NodeType, "graph">;
14
14
  patternOptional(patterns: Pattern[], loc: SourceLocation): PatternOptional;
15
15
  isPatternOptional(obj: object): obj is SubTyped<NodeType, "optional">;
16
- patternValues(values: ValuePatternRow[], loc: SourceLocation): PatternValues;
16
+ patternValues(variables: TermVariable[], values: ValuePatternRow[], loc: SourceLocation): PatternValues;
17
17
  isPatternValues(obj: object): obj is SubTyped<NodeType, "values">;
18
18
  patternFilter(expression: Expression, loc: SourceLocation): PatternFilter;
19
19
  isPatternFilter(obj: object): obj is SubTyped<NodeType, "filter">;
@@ -29,8 +29,8 @@ export function PatternFactoryMixin(Base) {
29
29
  isPatternOptional(obj) {
30
30
  return this.isOfSubType(obj, nodeType, 'optional');
31
31
  }
32
- patternValues(values, loc) {
33
- return { type: nodeType, subType: 'values', values, loc };
32
+ patternValues(variables, values, loc) {
33
+ return { type: nodeType, subType: 'values', variables, values, loc };
34
34
  }
35
35
  isPatternValues(obj) {
36
36
  return this.isOfSubType(obj, nodeType, 'values');
@@ -1 +1 @@
1
- {"version":3,"file":"Patternfactory.js","sourceRoot":"","sources":["Patternfactory.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AstCoreFactory, SourceLocation, Typed, SubTyped } from '@traqula/core';\nimport type {\n BasicGraphPattern,\n Expression,\n Pattern,\n PatternBgp,\n PatternBind,\n PatternFilter,\n PatternGraph,\n PatternGroup,\n PatternMinus,\n PatternOptional,\n PatternService,\n PatternUnion,\n PatternValues,\n TermIri,\n TermVariable,\n ValuePatternRow,\n} from '../Sparql11types.js';\nimport type { Constructor } from './mixins.js';\n\ntype NodeType = 'pattern';\nconst nodeType: NodeType = 'pattern';\n\n// eslint-disable-next-line ts/explicit-function-return-type\nexport function PatternFactoryMixin<TBase extends Constructor<AstCoreFactory>>(Base: TBase) {\n return class PatternFactory extends Base {\n public isPattern(obj: object): obj is Typed<NodeType> {\n return this.isOfType(obj, nodeType);\n }\n\n public patternBgp(triples: BasicGraphPattern, loc: SourceLocation): PatternBgp {\n return { type: nodeType, subType: 'bgp', triples, loc };\n }\n\n public isPatternBgp(obj: object): obj is SubTyped<NodeType, 'bgp'> {\n return this.isOfSubType(obj, nodeType, 'bgp');\n }\n\n public patternGroup(patterns: Pattern[], loc: SourceLocation): PatternGroup {\n return { type: nodeType, subType: 'group', patterns, loc };\n }\n\n public isPatternGroup(obj: object): obj is SubTyped<NodeType, 'group'> {\n return this.isOfSubType(obj, nodeType, 'group');\n }\n\n public patternGraph(name: TermIri | TermVariable, patterns: Pattern[], loc: SourceLocation): PatternGraph {\n return { type: nodeType, subType: 'graph', name, patterns, loc };\n }\n\n public isPatternGraph(obj: object): obj is SubTyped<NodeType, 'graph'> {\n return this.isOfSubType(obj, nodeType, 'graph');\n }\n\n public patternOptional(patterns: Pattern[], loc: SourceLocation): PatternOptional {\n return { type: nodeType, subType: 'optional', patterns, loc };\n }\n\n public isPatternOptional(obj: object): obj is SubTyped<NodeType, 'optional'> {\n return this.isOfSubType(obj, nodeType, 'optional');\n }\n\n public patternValues(values: ValuePatternRow[], loc: SourceLocation): PatternValues {\n return { type: nodeType, subType: 'values', values, loc };\n }\n\n public isPatternValues(obj: object): obj is SubTyped<NodeType, 'values'> {\n return this.isOfSubType(obj, nodeType, 'values');\n }\n\n public patternFilter(expression: Expression, loc: SourceLocation): PatternFilter {\n return {\n type: nodeType,\n subType: 'filter',\n expression,\n loc,\n };\n }\n\n public isPatternFilter(obj: object): obj is SubTyped<NodeType, 'filter'> {\n return this.isOfSubType(obj, nodeType, 'filter');\n }\n\n public patternBind(\n expression: Expression,\n variable: TermVariable,\n loc: SourceLocation,\n ): PatternBind {\n return {\n type: nodeType,\n subType: 'bind',\n expression,\n variable,\n loc,\n };\n }\n\n public isPatternBind(obj: object): obj is SubTyped<NodeType, 'bind'> {\n return this.isOfSubType(obj, nodeType, 'bind');\n }\n\n public patternUnion(patterns: PatternGroup[], loc: SourceLocation): PatternUnion {\n return {\n type: nodeType,\n subType: 'union',\n patterns,\n loc,\n };\n }\n\n public isPatternUnion(obj: object): obj is SubTyped<NodeType, 'union'> {\n return this.isOfSubType(obj, nodeType, 'union');\n }\n\n public patternMinus(patterns: Pattern[], loc: SourceLocation): PatternMinus {\n return {\n type: nodeType,\n subType: 'minus',\n patterns,\n loc,\n };\n }\n\n public isPatternMinus(obj: object): obj is SubTyped<NodeType, 'minus'> {\n return this.isOfSubType(obj, nodeType, 'minus');\n }\n\n public patternService(\n name: TermIri | TermVariable,\n patterns: Pattern[],\n silent: boolean,\n loc: SourceLocation,\n ): PatternService {\n return {\n type: nodeType,\n subType: 'service',\n silent,\n name,\n patterns,\n loc,\n };\n }\n\n public isPatternService(obj: object): obj is SubTyped<NodeType, 'service'> {\n return this.isOfSubType(obj, nodeType, 'service');\n }\n };\n}\n"]}
1
+ {"version":3,"file":"Patternfactory.js","sourceRoot":"","sources":["Patternfactory.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AstCoreFactory, SourceLocation, Typed, SubTyped } from '@traqula/core';\nimport type {\n BasicGraphPattern,\n Expression,\n Pattern,\n PatternBgp,\n PatternBind,\n PatternFilter,\n PatternGraph,\n PatternGroup,\n PatternMinus,\n PatternOptional,\n PatternService,\n PatternUnion,\n PatternValues,\n TermIri,\n TermVariable,\n ValuePatternRow,\n} from '../Sparql11types.js';\nimport type { Constructor } from './mixins.js';\n\ntype NodeType = 'pattern';\nconst nodeType: NodeType = 'pattern';\n\n// eslint-disable-next-line ts/explicit-function-return-type\nexport function PatternFactoryMixin<TBase extends Constructor<AstCoreFactory>>(Base: TBase) {\n return class PatternFactory extends Base {\n public isPattern(obj: object): obj is Typed<NodeType> {\n return this.isOfType(obj, nodeType);\n }\n\n public patternBgp(triples: BasicGraphPattern, loc: SourceLocation): PatternBgp {\n return { type: nodeType, subType: 'bgp', triples, loc };\n }\n\n public isPatternBgp(obj: object): obj is SubTyped<NodeType, 'bgp'> {\n return this.isOfSubType(obj, nodeType, 'bgp');\n }\n\n public patternGroup(patterns: Pattern[], loc: SourceLocation): PatternGroup {\n return { type: nodeType, subType: 'group', patterns, loc };\n }\n\n public isPatternGroup(obj: object): obj is SubTyped<NodeType, 'group'> {\n return this.isOfSubType(obj, nodeType, 'group');\n }\n\n public patternGraph(name: TermIri | TermVariable, patterns: Pattern[], loc: SourceLocation): PatternGraph {\n return { type: nodeType, subType: 'graph', name, patterns, loc };\n }\n\n public isPatternGraph(obj: object): obj is SubTyped<NodeType, 'graph'> {\n return this.isOfSubType(obj, nodeType, 'graph');\n }\n\n public patternOptional(patterns: Pattern[], loc: SourceLocation): PatternOptional {\n return { type: nodeType, subType: 'optional', patterns, loc };\n }\n\n public isPatternOptional(obj: object): obj is SubTyped<NodeType, 'optional'> {\n return this.isOfSubType(obj, nodeType, 'optional');\n }\n\n public patternValues(variables: TermVariable[], values: ValuePatternRow[], loc: SourceLocation): PatternValues {\n return { type: nodeType, subType: 'values', variables, values, loc };\n }\n\n public isPatternValues(obj: object): obj is SubTyped<NodeType, 'values'> {\n return this.isOfSubType(obj, nodeType, 'values');\n }\n\n public patternFilter(expression: Expression, loc: SourceLocation): PatternFilter {\n return {\n type: nodeType,\n subType: 'filter',\n expression,\n loc,\n };\n }\n\n public isPatternFilter(obj: object): obj is SubTyped<NodeType, 'filter'> {\n return this.isOfSubType(obj, nodeType, 'filter');\n }\n\n public patternBind(\n expression: Expression,\n variable: TermVariable,\n loc: SourceLocation,\n ): PatternBind {\n return {\n type: nodeType,\n subType: 'bind',\n expression,\n variable,\n loc,\n };\n }\n\n public isPatternBind(obj: object): obj is SubTyped<NodeType, 'bind'> {\n return this.isOfSubType(obj, nodeType, 'bind');\n }\n\n public patternUnion(patterns: PatternGroup[], loc: SourceLocation): PatternUnion {\n return {\n type: nodeType,\n subType: 'union',\n patterns,\n loc,\n };\n }\n\n public isPatternUnion(obj: object): obj is SubTyped<NodeType, 'union'> {\n return this.isOfSubType(obj, nodeType, 'union');\n }\n\n public patternMinus(patterns: Pattern[], loc: SourceLocation): PatternMinus {\n return {\n type: nodeType,\n subType: 'minus',\n patterns,\n loc,\n };\n }\n\n public isPatternMinus(obj: object): obj is SubTyped<NodeType, 'minus'> {\n return this.isOfSubType(obj, nodeType, 'minus');\n }\n\n public patternService(\n name: TermIri | TermVariable,\n patterns: Pattern[],\n silent: boolean,\n loc: SourceLocation,\n ): PatternService {\n return {\n type: nodeType,\n subType: 'service',\n silent,\n name,\n patterns,\n loc,\n };\n }\n\n public isPatternService(obj: object): obj is SubTyped<NodeType, 'service'> {\n return this.isOfSubType(obj, nodeType, 'service');\n }\n };\n}\n"]}
@@ -7,21 +7,21 @@ export declare function TermFactoryMixin<TBase extends Constructor<AstCoreFactor
7
7
  __blankNodeCounter: number;
8
8
  resetBlankNodeCounter(): void;
9
9
  isTerm(x: object): x is Typed<"term">;
10
- blankNode(label: undefined | string, loc: SourceLocation): TermBlank;
10
+ termBlank(label: undefined | string, loc: SourceLocation): TermBlank;
11
11
  isTermBlank(obj: object): obj is SubTyped<NodeType, "blankNode">;
12
12
  /**
13
13
  * String, no lang, no type
14
14
  */
15
- literalTerm(loc: SourceLocation, value: string, lang?: undefined): TermLiteralStr;
15
+ termLiteral(loc: SourceLocation, value: string, lang?: undefined): TermLiteralStr;
16
16
  /**
17
17
  * String with a language tag
18
18
  */
19
- literalTerm(loc: SourceLocation, value: string, lang: string): TermLiteralLangStr;
19
+ termLiteral(loc: SourceLocation, value: string, lang: string): TermLiteralLangStr;
20
20
  /**
21
21
  * Lexical form with a type
22
22
  */
23
- literalTerm(loc: SourceLocation, value: string, iri: TermIri): TermLiteralTyped;
24
- literalTerm(loc: SourceLocation, value: string, langOrIri?: string | TermIri): TermLiteral;
23
+ termLiteral(loc: SourceLocation, value: string, iri: TermIri): TermLiteralTyped;
24
+ termLiteral(loc: SourceLocation, value: string, langOrIri?: string | TermIri): TermLiteral;
25
25
  isTermLiteral(obj: object): obj is SubTyped<NodeType, "literal">;
26
26
  isTermLiteralLangStr(obj: object): obj is SubTyped<NodeType, "literal"> & {
27
27
  langOrIri: string;
@@ -32,16 +32,16 @@ export declare function TermFactoryMixin<TBase extends Constructor<AstCoreFactor
32
32
  isTermLiteralTyped(obj: object): obj is SubTyped<NodeType, "literal"> & {
33
33
  langOrIri: SubTyped<NodeType, "namedNode">;
34
34
  };
35
- variable(value: string, loc: SourceLocation): TermVariable;
35
+ termVariable(value: string, loc: SourceLocation): TermVariable;
36
36
  isTermVariable(obj: object): obj is SubTyped<NodeType, "variable">;
37
37
  /**
38
38
  * A namednode with fully defined with a uri.
39
39
  */
40
- namedNode(loc: SourceLocation, value: string, prefix?: undefined): TermIriFull;
40
+ termNamed(loc: SourceLocation, value: string, prefix?: undefined): TermIriFull;
41
41
  /**
42
42
  * A namednode defined using a prefix
43
43
  */
44
- namedNode(loc: SourceLocation, value: string, prefix: string): TermIriPrefixed;
44
+ termNamed(loc: SourceLocation, value: string, prefix: string): TermIriPrefixed;
45
45
  isTermNamed(obj: object): obj is SubTyped<NodeType, "namedNode">;
46
46
  isTermNamedPrefixed(obj: object): obj is SubTyped<NodeType, "namedNode"> & {
47
47
  prefix: string;
@@ -9,7 +9,7 @@ export function TermFactoryMixin(Base) {
9
9
  isTerm(x) {
10
10
  return this.isOfType(x, 'term');
11
11
  }
12
- blankNode(label, loc) {
12
+ termBlank(label, loc) {
13
13
  const base = {
14
14
  type: 'term',
15
15
  subType: 'blankNode',
@@ -23,7 +23,7 @@ export function TermFactoryMixin(Base) {
23
23
  isTermBlank(obj) {
24
24
  return this.isOfSubType(obj, nodeType, 'blankNode');
25
25
  }
26
- literalTerm(loc, value, langOrIri) {
26
+ termLiteral(loc, value, langOrIri) {
27
27
  return {
28
28
  type: nodeType,
29
29
  subType: 'literal',
@@ -46,7 +46,7 @@ export function TermFactoryMixin(Base) {
46
46
  return this.isTermLiteral(obj) && typeof casted.langOrIri === 'object' &&
47
47
  casted.langOrIri !== null && this.isTermNamed(casted.langOrIri);
48
48
  }
49
- variable(value, loc) {
49
+ termVariable(value, loc) {
50
50
  return {
51
51
  type: nodeType,
52
52
  subType: 'variable',
@@ -57,7 +57,7 @@ export function TermFactoryMixin(Base) {
57
57
  isTermVariable(obj) {
58
58
  return this.isOfSubType(obj, nodeType, 'variable');
59
59
  }
60
- namedNode(loc, value, prefix) {
60
+ termNamed(loc, value, prefix) {
61
61
  const base = {
62
62
  type: nodeType,
63
63
  subType: 'namedNode',
@@ -1 +1 @@
1
- {"version":3,"file":"TermFactory.js","sourceRoot":"","sources":["TermFactory.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AstCoreFactory, SourceLocation, Typed, SubTyped } from '@traqula/core';\nimport type {\n TermBlank,\n TermIri,\n TermIriFull,\n TermIriPrefixed,\n TermLiteral,\n TermLiteralLangStr,\n TermLiteralStr,\n TermLiteralTyped,\n TermVariable,\n} from '../Sparql11types.js';\nimport type { Constructor } from './mixins.js';\n\ntype NodeType = 'term';\nconst nodeType: NodeType = 'term';\n\n// eslint-disable-next-line ts/explicit-function-return-type\nexport function TermFactoryMixin<TBase extends Constructor<AstCoreFactory>>(Base: TBase) {\n return class TermFactory extends Base {\n public __blankNodeCounter = 0;\n\n public resetBlankNodeCounter(): void {\n this.__blankNodeCounter = 0;\n }\n\n public isTerm(x: object): x is Typed<'term'> {\n return this.isOfType(x, 'term');\n }\n\n public blankNode(label: undefined | string, loc: SourceLocation): TermBlank {\n const base = <const>{\n type: 'term',\n subType: 'blankNode',\n loc,\n };\n if (label === undefined) {\n return { ...base, label: `g_${this.__blankNodeCounter++}` };\n }\n return { ...base, label: `e_${label}` };\n }\n\n public isTermBlank(obj: object): obj is SubTyped<NodeType, 'blankNode'> {\n return this.isOfSubType(obj, nodeType, 'blankNode');\n }\n\n /**\n * String, no lang, no type\n */\n public literalTerm(loc: SourceLocation, value: string, lang?: undefined): TermLiteralStr;\n /**\n * String with a language tag\n */\n public literalTerm(loc: SourceLocation, value: string, lang: string): TermLiteralLangStr;\n /**\n * Lexical form with a type\n */\n public literalTerm(loc: SourceLocation, value: string, iri: TermIri): TermLiteralTyped;\n public literalTerm(loc: SourceLocation, value: string, langOrIri?: string | TermIri): TermLiteral;\n public literalTerm(loc: SourceLocation, value: string, langOrIri?: string | TermIri): TermLiteral {\n return {\n type: nodeType,\n subType: 'literal',\n value,\n langOrIri,\n loc,\n };\n }\n\n public isTermLiteral(obj: object): obj is SubTyped<NodeType, 'literal'> {\n return this.isOfSubType(obj, nodeType, 'literal');\n }\n\n public isTermLiteralLangStr(obj: object): obj is SubTyped<NodeType, 'literal'> & { langOrIri: string } {\n return this.isTermLiteral(obj) && typeof (<{ langOrIri?: unknown }>obj).langOrIri === 'string';\n }\n\n public isTermLiteralStr(obj: object): obj is SubTyped<NodeType, 'literal'> & { langOrIri: undefined } {\n return this.isTermLiteral(obj) && typeof (<{ langOrIri?: unknown }>obj).langOrIri === 'undefined';\n }\n\n public isTermLiteralTyped(obj: object):\n obj is SubTyped<NodeType, 'literal'> & { langOrIri: SubTyped<NodeType, 'namedNode'> } {\n const casted = <{ langOrIri?: unknown }>obj;\n return this.isTermLiteral(obj) && typeof casted.langOrIri === 'object' &&\n casted.langOrIri !== null && this.isTermNamed(casted.langOrIri);\n }\n\n public variable(value: string, loc: SourceLocation): TermVariable {\n return {\n type: nodeType,\n subType: 'variable',\n value,\n loc,\n };\n }\n\n public isTermVariable(obj: object): obj is SubTyped<NodeType, 'variable'> {\n return this.isOfSubType(obj, nodeType, 'variable');\n }\n\n /**\n * A namednode with fully defined with a uri.\n */\n public namedNode(loc: SourceLocation, value: string, prefix?: undefined): TermIriFull;\n /**\n * A namednode defined using a prefix\n */\n public namedNode(loc: SourceLocation, value: string, prefix: string): TermIriPrefixed;\n public namedNode(loc: SourceLocation, value: string, prefix?: string): TermIriFull | TermIriPrefixed {\n const base = <const>{\n type: nodeType,\n subType: 'namedNode',\n value,\n loc,\n };\n if (prefix === undefined) {\n return base;\n }\n return { ...base, prefix };\n }\n\n public isTermNamed(obj: object): obj is SubTyped<NodeType, 'namedNode'> {\n return this.isOfSubType(obj, nodeType, 'namedNode');\n }\n\n public isTermNamedPrefixed(obj: object): obj is SubTyped<NodeType, 'namedNode'> & { prefix: string } {\n const casted = <{ prefix?: unknown }>obj;\n return this.isTermNamed(obj) && typeof casted.prefix === 'string';\n }\n };\n}\n"]}
1
+ {"version":3,"file":"TermFactory.js","sourceRoot":"","sources":["TermFactory.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AstCoreFactory, SourceLocation, Typed, SubTyped } from '@traqula/core';\nimport type {\n TermBlank,\n TermIri,\n TermIriFull,\n TermIriPrefixed,\n TermLiteral,\n TermLiteralLangStr,\n TermLiteralStr,\n TermLiteralTyped,\n TermVariable,\n} from '../Sparql11types.js';\nimport type { Constructor } from './mixins.js';\n\ntype NodeType = 'term';\nconst nodeType: NodeType = 'term';\n\n// eslint-disable-next-line ts/explicit-function-return-type\nexport function TermFactoryMixin<TBase extends Constructor<AstCoreFactory>>(Base: TBase) {\n return class TermFactory extends Base {\n public __blankNodeCounter = 0;\n\n public resetBlankNodeCounter(): void {\n this.__blankNodeCounter = 0;\n }\n\n public isTerm(x: object): x is Typed<'term'> {\n return this.isOfType(x, 'term');\n }\n\n public termBlank(label: undefined | string, loc: SourceLocation): TermBlank {\n const base = <const>{\n type: 'term',\n subType: 'blankNode',\n loc,\n };\n if (label === undefined) {\n return { ...base, label: `g_${this.__blankNodeCounter++}` };\n }\n return { ...base, label: `e_${label}` };\n }\n\n public isTermBlank(obj: object): obj is SubTyped<NodeType, 'blankNode'> {\n return this.isOfSubType(obj, nodeType, 'blankNode');\n }\n\n /**\n * String, no lang, no type\n */\n public termLiteral(loc: SourceLocation, value: string, lang?: undefined): TermLiteralStr;\n /**\n * String with a language tag\n */\n public termLiteral(loc: SourceLocation, value: string, lang: string): TermLiteralLangStr;\n /**\n * Lexical form with a type\n */\n public termLiteral(loc: SourceLocation, value: string, iri: TermIri): TermLiteralTyped;\n public termLiteral(loc: SourceLocation, value: string, langOrIri?: string | TermIri): TermLiteral;\n public termLiteral(loc: SourceLocation, value: string, langOrIri?: string | TermIri): TermLiteral {\n return {\n type: nodeType,\n subType: 'literal',\n value,\n langOrIri,\n loc,\n };\n }\n\n public isTermLiteral(obj: object): obj is SubTyped<NodeType, 'literal'> {\n return this.isOfSubType(obj, nodeType, 'literal');\n }\n\n public isTermLiteralLangStr(obj: object): obj is SubTyped<NodeType, 'literal'> & { langOrIri: string } {\n return this.isTermLiteral(obj) && typeof (<{ langOrIri?: unknown }>obj).langOrIri === 'string';\n }\n\n public isTermLiteralStr(obj: object): obj is SubTyped<NodeType, 'literal'> & { langOrIri: undefined } {\n return this.isTermLiteral(obj) && typeof (<{ langOrIri?: unknown }>obj).langOrIri === 'undefined';\n }\n\n public isTermLiteralTyped(obj: object):\n obj is SubTyped<NodeType, 'literal'> & { langOrIri: SubTyped<NodeType, 'namedNode'> } {\n const casted = <{ langOrIri?: unknown }>obj;\n return this.isTermLiteral(obj) && typeof casted.langOrIri === 'object' &&\n casted.langOrIri !== null && this.isTermNamed(casted.langOrIri);\n }\n\n public termVariable(value: string, loc: SourceLocation): TermVariable {\n return {\n type: nodeType,\n subType: 'variable',\n value,\n loc,\n };\n }\n\n public isTermVariable(obj: object): obj is SubTyped<NodeType, 'variable'> {\n return this.isOfSubType(obj, nodeType, 'variable');\n }\n\n /**\n * A namednode with fully defined with a uri.\n */\n public termNamed(loc: SourceLocation, value: string, prefix?: undefined): TermIriFull;\n /**\n * A namednode defined using a prefix\n */\n public termNamed(loc: SourceLocation, value: string, prefix: string): TermIriPrefixed;\n public termNamed(loc: SourceLocation, value: string, prefix?: string): TermIriFull | TermIriPrefixed {\n const base = <const>{\n type: nodeType,\n subType: 'namedNode',\n value,\n loc,\n };\n if (prefix === undefined) {\n return base;\n }\n return { ...base, prefix };\n }\n\n public isTermNamed(obj: object): obj is SubTyped<NodeType, 'namedNode'> {\n return this.isOfSubType(obj, nodeType, 'namedNode');\n }\n\n public isTermNamedPrefixed(obj: object): obj is SubTyped<NodeType, 'namedNode'> & { prefix: string } {\n const casted = <{ prefix?: unknown }>obj;\n return this.isTermNamed(obj) && typeof casted.prefix === 'string';\n }\n };\n}\n"]}
@@ -38,10 +38,10 @@ export const baseDecl = {
38
38
  const val = SUBRULE(iriFull);
39
39
  return ACTION(() => C.astFactory.contextDefinitionBase(C.astFactory.sourceLocation(base, val), val));
40
40
  },
41
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {
42
- F.printFilter(ast, () => PRINT_WORD('BASE'));
41
+ gImpl: ({ SUBRULE, PRINT_ON_EMPTY, NEW_LINE }) => (ast, { astFactory: F }) => {
42
+ F.printFilter(ast, () => PRINT_ON_EMPTY('BASE '));
43
43
  SUBRULE(iri, ast.value);
44
- F.printFilter(ast, () => PRINT_WORD('\n'));
44
+ F.printFilter(ast, () => NEW_LINE());
45
45
  },
46
46
  };
47
47
  /**
@@ -56,12 +56,12 @@ export const prefixDecl = {
56
56
  const value = SUBRULE(iriFull);
57
57
  return ACTION(() => C.astFactory.contextDefinitionPrefix(C.astFactory.sourceLocation(prefix, value), name, value));
58
58
  },
59
- gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { astFactory: F }) => {
59
+ gImpl: ({ SUBRULE, PRINT_ON_EMPTY, NEW_LINE }) => (ast, { astFactory: F }) => {
60
60
  F.printFilter(ast, () => {
61
- PRINT_WORDS('PREFIX', `${ast.key}:`);
61
+ PRINT_ON_EMPTY('PREFIX ', `${ast.key}: `);
62
62
  });
63
63
  SUBRULE(iri, ast.value);
64
- F.printFilter(ast, () => PRINT_WORDS('\n'));
64
+ F.printFilter(ast, () => NEW_LINE());
65
65
  },
66
66
  };
67
67
  /**
@@ -110,10 +110,10 @@ export const var_ = {
110
110
  { ALT: () => CONSUME(l.terminals.var1) },
111
111
  { ALT: () => CONSUME(l.terminals.var2) },
112
112
  ]);
113
- return ACTION(() => C.astFactory.variable(varToken.image.slice(1), C.astFactory.sourceLocation(varToken)));
113
+ return ACTION(() => C.astFactory.termVariable(varToken.image.slice(1), C.astFactory.sourceLocation(varToken)));
114
114
  },
115
- gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F }) => {
116
- F.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
115
+ gImpl: ({ PRINT }) => (ast, { astFactory: F }) => {
116
+ F.printFilter(ast, () => PRINT(`?${ast.value}`));
117
117
  },
118
118
  };
119
119
  /**
@@ -129,7 +129,7 @@ export const graphTerm = {
129
129
  { GATE: () => C.parseMode.has('canCreateBlankNodes'), ALT: () => SUBRULE(blankNode) },
130
130
  { ALT: () => {
131
131
  const tokenNil = CONSUME(l.terminals.nil);
132
- return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(tokenNil), CommonIRIs.NIL));
132
+ return ACTION(() => C.astFactory.termNamed(C.astFactory.sourceLocation(tokenNil), CommonIRIs.NIL));
133
133
  } },
134
134
  ]),
135
135
  gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["general.ts"],"names":[],"mappings":"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","sourcesContent":["import * as l from '../lexer/index.js';\nimport type { SparqlGrammarRule, SparqlRule } from '../sparql11HelperTypes.js';\nimport type {\n ContextDefinition,\n ContextDefinitionBase,\n ContextDefinitionPrefix,\n GraphTerm,\n Term,\n TermIri,\n TermVariable,\n} from '../Sparql11types.js';\nimport { CommonIRIs } from '../utils.js';\nimport { blankNode, booleanLiteral, iri, iriFull, numericLiteral, rdfLiteral, verbA } from './literals.js';\n\n/**\n * [[4]](https://www.w3.org/TR/sparql11-query/#rPrologue)\n */\nexport const prologue: SparqlRule<'prologue', ContextDefinition[]> = <const> {\n name: 'prologue',\n impl: ({ SUBRULE, MANY, OR }) => () => {\n const result: ContextDefinition[] = [];\n MANY(() => OR([\n { ALT: () => result.push(SUBRULE(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(prefixDecl)) },\n ]));\n return result;\n },\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n for (const context of ast) {\n if (F.isContextDefinitionBase(context)) {\n SUBRULE(baseDecl, context);\n } else if (F.isContextDefinitionPrefix(context)) {\n SUBRULE(prefixDecl, context);\n }\n }\n },\n};\n\n/**\n * Registers base IRI in the context and returns it.\n * [[5]](https://www.w3.org/TR/sparql11-query/#rBaseDecl)\n */\nexport const baseDecl: SparqlRule<'baseDecl', ContextDefinitionBase> = <const> {\n name: 'baseDecl',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n const base = CONSUME(l.baseDecl);\n const val = SUBRULE(iriFull);\n return ACTION(() => C.astFactory.contextDefinitionBase(C.astFactory.sourceLocation(base, val), val));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('BASE'));\n SUBRULE(iri, ast.value);\n F.printFilter(ast, () => PRINT_WORD('\\n'));\n },\n};\n\n/**\n * Registers prefix in the context and returns registered key-value-pair.\n * [[6]](https://www.w3.org/TR/sparql11-query/#rPrefixDecl)\n */\nexport const prefixDecl: SparqlRule<'prefixDecl', ContextDefinitionPrefix> = <const> {\n name: 'prefixDecl',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n const prefix = CONSUME(l.prefixDecl);\n const name = CONSUME(l.terminals.pNameNs).image.slice(0, -1);\n const value = SUBRULE(iriFull);\n\n return ACTION(() => C.astFactory.contextDefinitionPrefix(C.astFactory.sourceLocation(prefix, value), name, value));\n },\n gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORDS('PREFIX', `${ast.key}:`);\n });\n SUBRULE(iri, ast.value);\n F.printFilter(ast, () => PRINT_WORDS('\\n'));\n },\n};\n\n/**\n * [[78]](https://www.w3.org/TR/sparql11-query/#rVerb)\n */\nexport const verb: SparqlGrammarRule<'verb', TermVariable | TermIri> = <const> {\n name: 'verb',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(varOrIri) },\n { ALT: () => SUBRULE(verbA) },\n ]),\n};\n\n/**\n * [[106]](https://www.w3.org/TR/sparql11-query/#rVarOrTerm)\n */\nexport const varOrTerm: SparqlRule<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ SUBRULE, OR }) => C => OR<Term>([\n { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(var_) },\n { ALT: () => SUBRULE(graphTerm) },\n ]),\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n if (F.isTermVariable(ast)) {\n return SUBRULE(var_, ast);\n }\n return SUBRULE(graphTerm, ast);\n },\n};\n\n/**\n * [[107]](https://www.w3.org/TR/sparql11-query/#rVarOrIri)\n */\nexport const varOrIri: SparqlGrammarRule<'varOrIri', TermIri | TermVariable> = <const> {\n name: 'varOrIri',\n impl: ({ SUBRULE, OR }) => C => OR<TermIri | TermVariable>([\n { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(var_) },\n { ALT: () => SUBRULE(iri) },\n ]),\n};\n\n/**\n * [[108]](https://www.w3.org/TR/sparql11-query/#rVar)\n */\nexport const var_: SparqlRule<'var', TermVariable> = <const> {\n name: 'var',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const varToken = OR([\n { ALT: () => CONSUME(l.terminals.var1) },\n { ALT: () => CONSUME(l.terminals.var2) },\n ]);\n return ACTION(() => C.astFactory.variable(varToken.image.slice(1), C.astFactory.sourceLocation(varToken)));\n },\n gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));\n },\n};\n\n/**\n * [[109]](https://www.w3.org/TR/sparql11-query/#rGraphTerm)\n */\nexport const graphTerm: SparqlRule<'graphTerm', GraphTerm> = <const> {\n name: 'graphTerm',\n impl: ({ ACTION, SUBRULE, CONSUME, OR }) => C => OR<GraphTerm>([\n { ALT: () => SUBRULE(iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(numericLiteral) },\n { ALT: () => SUBRULE(booleanLiteral) },\n { GATE: () => C.parseMode.has('canCreateBlankNodes'), ALT: () => SUBRULE(blankNode) },\n { ALT: () => {\n const tokenNil = CONSUME(l.terminals.nil);\n return ACTION(() =>\n C.astFactory.namedNode(C.astFactory.sourceLocation(tokenNil), CommonIRIs.NIL));\n } },\n ]),\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n if (F.isTermNamed(ast)) {\n SUBRULE(iri, ast);\n } else if (F.isTermLiteral(ast)) {\n SUBRULE(rdfLiteral, ast);\n } else if (F.isTermBlank(ast)) {\n SUBRULE(blankNode, ast);\n }\n },\n};\n"]}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["general.ts"],"names":[],"mappings":"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","sourcesContent":["import * as l from '../lexer/index.js';\nimport type { SparqlGrammarRule, SparqlRule } from '../sparql11HelperTypes.js';\nimport type {\n ContextDefinition,\n ContextDefinitionBase,\n ContextDefinitionPrefix,\n GraphTerm,\n Term,\n TermIri,\n TermVariable,\n} from '../Sparql11types.js';\nimport { CommonIRIs } from '../utils.js';\nimport { blankNode, booleanLiteral, iri, iriFull, numericLiteral, rdfLiteral, verbA } from './literals.js';\n\n/**\n * [[4]](https://www.w3.org/TR/sparql11-query/#rPrologue)\n */\nexport const prologue: SparqlRule<'prologue', ContextDefinition[]> = <const> {\n name: 'prologue',\n impl: ({ SUBRULE, MANY, OR }) => () => {\n const result: ContextDefinition[] = [];\n MANY(() => OR([\n { ALT: () => result.push(SUBRULE(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(prefixDecl)) },\n ]));\n return result;\n },\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n for (const context of ast) {\n if (F.isContextDefinitionBase(context)) {\n SUBRULE(baseDecl, context);\n } else if (F.isContextDefinitionPrefix(context)) {\n SUBRULE(prefixDecl, context);\n }\n }\n },\n};\n\n/**\n * Registers base IRI in the context and returns it.\n * [[5]](https://www.w3.org/TR/sparql11-query/#rBaseDecl)\n */\nexport const baseDecl: SparqlRule<'baseDecl', ContextDefinitionBase> = <const> {\n name: 'baseDecl',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n const base = CONSUME(l.baseDecl);\n const val = SUBRULE(iriFull);\n return ACTION(() => C.astFactory.contextDefinitionBase(C.astFactory.sourceLocation(base, val), val));\n },\n gImpl: ({ SUBRULE, PRINT_ON_EMPTY, NEW_LINE }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_ON_EMPTY('BASE '));\n SUBRULE(iri, ast.value);\n F.printFilter(ast, () => NEW_LINE());\n },\n};\n\n/**\n * Registers prefix in the context and returns registered key-value-pair.\n * [[6]](https://www.w3.org/TR/sparql11-query/#rPrefixDecl)\n */\nexport const prefixDecl: SparqlRule<'prefixDecl', ContextDefinitionPrefix> = <const> {\n name: 'prefixDecl',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n const prefix = CONSUME(l.prefixDecl);\n const name = CONSUME(l.terminals.pNameNs).image.slice(0, -1);\n const value = SUBRULE(iriFull);\n\n return ACTION(() => C.astFactory.contextDefinitionPrefix(C.astFactory.sourceLocation(prefix, value), name, value));\n },\n gImpl: ({ SUBRULE, PRINT_ON_EMPTY, NEW_LINE }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => {\n PRINT_ON_EMPTY('PREFIX ', `${ast.key}: `);\n });\n SUBRULE(iri, ast.value);\n F.printFilter(ast, () => NEW_LINE());\n },\n};\n\n/**\n * [[78]](https://www.w3.org/TR/sparql11-query/#rVerb)\n */\nexport const verb: SparqlGrammarRule<'verb', TermVariable | TermIri> = <const> {\n name: 'verb',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(varOrIri) },\n { ALT: () => SUBRULE(verbA) },\n ]),\n};\n\n/**\n * [[106]](https://www.w3.org/TR/sparql11-query/#rVarOrTerm)\n */\nexport const varOrTerm: SparqlRule<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ SUBRULE, OR }) => C => OR<Term>([\n { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(var_) },\n { ALT: () => SUBRULE(graphTerm) },\n ]),\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n if (F.isTermVariable(ast)) {\n return SUBRULE(var_, ast);\n }\n return SUBRULE(graphTerm, ast);\n },\n};\n\n/**\n * [[107]](https://www.w3.org/TR/sparql11-query/#rVarOrIri)\n */\nexport const varOrIri: SparqlGrammarRule<'varOrIri', TermIri | TermVariable> = <const> {\n name: 'varOrIri',\n impl: ({ SUBRULE, OR }) => C => OR<TermIri | TermVariable>([\n { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(var_) },\n { ALT: () => SUBRULE(iri) },\n ]),\n};\n\n/**\n * [[108]](https://www.w3.org/TR/sparql11-query/#rVar)\n */\nexport const var_: SparqlRule<'var', TermVariable> = <const> {\n name: 'var',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const varToken = OR([\n { ALT: () => CONSUME(l.terminals.var1) },\n { ALT: () => CONSUME(l.terminals.var2) },\n ]);\n return ACTION(() => C.astFactory.termVariable(varToken.image.slice(1), C.astFactory.sourceLocation(varToken)));\n },\n gImpl: ({ PRINT }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT(`?${ast.value}`));\n },\n};\n\n/**\n * [[109]](https://www.w3.org/TR/sparql11-query/#rGraphTerm)\n */\nexport const graphTerm: SparqlRule<'graphTerm', GraphTerm> = <const> {\n name: 'graphTerm',\n impl: ({ ACTION, SUBRULE, CONSUME, OR }) => C => OR<GraphTerm>([\n { ALT: () => SUBRULE(iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(numericLiteral) },\n { ALT: () => SUBRULE(booleanLiteral) },\n { GATE: () => C.parseMode.has('canCreateBlankNodes'), ALT: () => SUBRULE(blankNode) },\n { ALT: () => {\n const tokenNil = CONSUME(l.terminals.nil);\n return ACTION(() =>\n C.astFactory.termNamed(C.astFactory.sourceLocation(tokenNil), CommonIRIs.NIL));\n } },\n ]),\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n if (F.isTermNamed(ast)) {\n SUBRULE(iri, ast);\n } else if (F.isTermLiteral(ast)) {\n SUBRULE(rdfLiteral, ast);\n } else if (F.isTermBlank(ast)) {\n SUBRULE(blankNode, ast);\n }\n },\n};\n"]}
@@ -33,17 +33,20 @@ export const rdfLiteral = {
33
33
  return OPTION(() => OR([
34
34
  { ALT: () => {
35
35
  const lang = CONSUME(l.terminals.langTag);
36
- return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, lang), value.value, lang.image.slice(1).toLowerCase()));
36
+ return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(value, lang), value.value, lang.image.slice(1).toLowerCase()));
37
37
  } },
38
38
  { ALT: () => {
39
39
  CONSUME(l.symbols.hathat);
40
40
  const iriVal = SUBRULE1(iri);
41
- return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, iriVal), value.value, iriVal));
41
+ return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(value, iriVal), value.value, iriVal));
42
42
  } },
43
43
  ])) ?? value;
44
44
  },
45
- gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { astFactory }) => {
46
- astFactory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
45
+ gImpl: ({ SUBRULE, PRINT, PRINT_WORD }) => (ast, { astFactory }) => {
46
+ astFactory.printFilter(ast, () => {
47
+ PRINT_WORD('');
48
+ PRINT(stringEscapedLexical(ast.value));
49
+ });
47
50
  if (ast.langOrIri) {
48
51
  if (typeof ast.langOrIri === 'string') {
49
52
  astFactory.printFilter(ast, () => PRINT('@', ast.langOrIri));
@@ -79,7 +82,7 @@ export const numericLiteralUnsigned = {
79
82
  { ALT: () => [CONSUME(l.terminals.decimal), CommonIRIs.DECIMAL] },
80
83
  { ALT: () => [CONSUME(l.terminals.double), CommonIRIs.DOUBLE] },
81
84
  ]);
82
- return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
85
+ return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.termNamed(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
83
86
  },
84
87
  };
85
88
  /**
@@ -94,7 +97,7 @@ export const numericLiteralPositive = {
94
97
  { ALT: () => [CONSUME(l.terminals.decimalPositive), CommonIRIs.DECIMAL] },
95
98
  { ALT: () => [CONSUME(l.terminals.doublePositive), CommonIRIs.DOUBLE] },
96
99
  ]);
97
- return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
100
+ return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.termNamed(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
98
101
  },
99
102
  };
100
103
  /**
@@ -109,7 +112,7 @@ export const numericLiteralNegative = {
109
112
  { ALT: () => [CONSUME(l.terminals.decimalNegative), CommonIRIs.DECIMAL] },
110
113
  { ALT: () => [CONSUME(l.terminals.doubleNegative), CommonIRIs.DOUBLE] },
111
114
  ]);
112
- return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
115
+ return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.termNamed(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
113
116
  },
114
117
  };
115
118
  /**
@@ -123,7 +126,7 @@ export const booleanLiteral = {
123
126
  { ALT: () => CONSUME(l.true_) },
124
127
  { ALT: () => CONSUME(l.false_) },
125
128
  ]);
126
- return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(token), token.image.toLowerCase(), C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
129
+ return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(token), token.image.toLowerCase(), C.astFactory.termNamed(C.astFactory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
127
130
  },
128
131
  };
129
132
  /**
@@ -170,7 +173,7 @@ export const string = {
170
173
  return char;
171
174
  }
172
175
  });
173
- return F.literalTerm(F.sourceLocation(x[0]), value);
176
+ return F.termLiteral(F.sourceLocation(x[0]), value);
174
177
  });
175
178
  },
176
179
  };
@@ -190,7 +193,7 @@ export const iriFull = {
190
193
  name: 'iriFull',
191
194
  impl: ({ ACTION, CONSUME }) => (C) => {
192
195
  const iriToken = CONSUME(l.terminals.iriRef);
193
- return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
196
+ return ACTION(() => C.astFactory.termNamed(C.astFactory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
194
197
  },
195
198
  gImpl: ({ PRINT }) => (ast, { astFactory: F }) => {
196
199
  F.printFilter(ast, () => PRINT('<', ast.value, '>'));
@@ -207,16 +210,16 @@ export const prefixedName = {
207
210
  const longName = CONSUME(l.terminals.pNameLn);
208
211
  return ACTION(() => {
209
212
  const [prefix, localName] = longName.image.split(':');
210
- return C.astFactory.namedNode(C.astFactory.sourceLocation(longName), localName, prefix);
213
+ return C.astFactory.termNamed(C.astFactory.sourceLocation(longName), localName, prefix);
211
214
  });
212
215
  } },
213
216
  { ALT: () => {
214
217
  const shortName = CONSUME(l.terminals.pNameNs);
215
- return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(shortName), '', shortName.image.slice(0, -1)));
218
+ return ACTION(() => C.astFactory.termNamed(C.astFactory.sourceLocation(shortName), '', shortName.image.slice(0, -1)));
216
219
  } },
217
220
  ]),
218
- gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F }) => {
219
- F.printFilter(ast, () => PRINT_WORD(ast.prefix, ':', ast.value));
221
+ gImpl: ({ PRINT }) => (ast, { astFactory: F }) => {
222
+ F.printFilter(ast, () => PRINT(ast.prefix, ':', ast.value));
220
223
  },
221
224
  };
222
225
  export const canCreateBlankNodes = Symbol('canCreateBlankNodes');
@@ -230,11 +233,11 @@ export const blankNode = {
230
233
  const result = OR([
231
234
  { ALT: () => {
232
235
  const labelToken = CONSUME(l.terminals.blankNodeLabel);
233
- return ACTION(() => C.astFactory.blankNode(labelToken.image.slice(2), C.astFactory.sourceLocation(labelToken)));
236
+ return ACTION(() => C.astFactory.termBlank(labelToken.image.slice(2), C.astFactory.sourceLocation(labelToken)));
234
237
  } },
235
238
  { ALT: () => {
236
239
  const anonToken = CONSUME(l.terminals.anon);
237
- return ACTION(() => C.astFactory.blankNode(undefined, C.astFactory.sourceLocation(anonToken)));
240
+ return ACTION(() => C.astFactory.termBlank(undefined, C.astFactory.sourceLocation(anonToken)));
238
241
  } },
239
242
  ]);
240
243
  ACTION(() => {
@@ -244,15 +247,15 @@ export const blankNode = {
244
247
  });
245
248
  return result;
246
249
  },
247
- gImpl: ({ PRINT_WORD }) => (ast, { astFactory }) => {
248
- astFactory.printFilter(ast, () => PRINT_WORD('_:', ast.label.replace(/^e_/u, '')));
250
+ gImpl: ({ PRINT }) => (ast, { astFactory }) => {
251
+ astFactory.printFilter(ast, () => PRINT('_:', ast.label.replace(/^e_/u, '')));
249
252
  },
250
253
  };
251
254
  export const verbA = {
252
255
  name: 'VerbA',
253
256
  impl: ({ ACTION, CONSUME }) => (C) => {
254
257
  const token = CONSUME(l.a);
255
- return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(token), CommonIRIs.TYPE, undefined));
258
+ return ACTION(() => C.astFactory.termNamed(C.astFactory.sourceLocation(token), CommonIRIs.TYPE, undefined));
256
259
  },
257
260
  };
258
261
  //# sourceMappingURL=literals.js.map