@traqula/rules-sparql-1-1 1.1.2 → 1.1.4

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.
@@ -15,7 +15,7 @@ function completeParseContext(context) {
15
15
  return {
16
16
  astFactory: context.astFactory ?? new astFactory_js_1.AstFactory({ tracksSourceLocation: false }),
17
17
  baseIRI: context.baseIRI,
18
- prefixes: { ...context.prefixes },
18
+ prefixes: Object.assign(Object.create(null), context.prefixes),
19
19
  parseMode: context.parseMode ? new Set(context.parseMode) : new Set(['canParseVars', 'canCreateBlankNodes']),
20
20
  skipValidation: context.skipValidation ?? false,
21
21
  };
@@ -44,7 +44,7 @@ function completeGeneratorContext(context) {
44
44
  function copyParseContext(context) {
45
45
  return {
46
46
  ...context,
47
- prefixes: { ...context.prefixes },
47
+ prefixes: Object.assign(Object.create(null), context.prefixes),
48
48
  parseMode: new Set(context.parseMode),
49
49
  };
50
50
  }
@@ -84,7 +84,7 @@ class MinimalSparqlParser {
84
84
  if (this.defaultContext.astFactory.isPathPure(ast)) {
85
85
  return {
86
86
  ...ast,
87
- prefixes: {},
87
+ prefixes: Object.create(null),
88
88
  };
89
89
  }
90
90
  return ast;
@@ -1 +1 @@
1
- {"version":3,"file":"MinimalSparqlParser.js","sourceRoot":"","sources":["../../../lib/MinimalSparqlParser.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Localized } from '@traqula/core';\nimport { traqulaNewlineAlternative, TransformerObject, traqulaIndentation } from '@traqula/core';\nimport { AstFactory } from './astFactory.js';\nimport type { SparqlContext, SparqlGeneratorContext } from './sparql11HelperTypes.js';\nimport type { Path, TermIri } from './Sparql11types.js';\n\ninterface Parser<ParseRet> {\n queryOrUpdate: (input: string, context: SparqlContext) => ParseRet;\n path: (input: string, context: SparqlContext) => TermIri | Path;\n}\n\n/**\n * Create a complete {@link SparqlContext} by filling in default values for any missing fields.\n * @param context - Partial context to complete.\n * @returns A fully populated SparqlContext.\n */\nexport function completeParseContext(\n context: Partial<SparqlContext>,\n): SparqlContext {\n return {\n astFactory: context.astFactory ?? new AstFactory({ tracksSourceLocation: false }),\n baseIRI: context.baseIRI,\n prefixes: { ...context.prefixes },\n parseMode: context.parseMode ? new Set(context.parseMode) : new Set([ 'canParseVars', 'canCreateBlankNodes' ]),\n skipValidation: context.skipValidation ?? false,\n };\n}\n\n/**\n * Create a complete {@link SparqlGeneratorContext} by filling in default values for any missing fields.\n * @param context - Partial generator context to complete.\n * @returns A fully populated SparqlGeneratorContext.\n */\nexport function completeGeneratorContext(\n context: Partial<SparqlGeneratorContext & { offset?: number }>,\n): SparqlGeneratorContext & { offset?: number } {\n return {\n astFactory: context.astFactory ?? new AstFactory(),\n origSource: context.origSource ?? '',\n offset: context.offset,\n [traqulaIndentation]: context[traqulaIndentation] ?? 0,\n [traqulaNewlineAlternative]: context[traqulaNewlineAlternative] ?? ' ',\n indentInc: context.indentInc ?? 2,\n };\n}\n\n/**\n * Create a shallow copy of a parse/generator context so that mutations\n * (e.g. adding prefixes during parsing) do not affect the original.\n * @param context - The context to copy.\n * @returns A new context with cloned `prefixes` and `parseMode`.\n */\nexport function copyParseContext<T extends\nPartial<SparqlContext & SparqlGeneratorContext & { origSource: string; offset?: number }>>(\n context: T,\n): T {\n return {\n ...context,\n prefixes: { ...context.prefixes },\n parseMode: new Set(context.parseMode),\n };\n}\n\n/**\n * Base class for SPARQL parsers that provides {@link parse} and {@link parsePath} methods.\n * Engines typically extend this class to create pre-configured parser instances.\n * @typeParam ParseRet - The AST return type (e.g. `SparqlQuery`).\n */\nexport class MinimalSparqlParser<ParseRet extends Localized> {\n protected readonly defaultContext: SparqlContext;\n protected readonly coreTransformer = new TransformerObject();\n\n public constructor(protected readonly parser: Parser<ParseRet>, defaultContext: Partial<SparqlContext> = {}) {\n this.defaultContext = completeParseContext(defaultContext);\n }\n\n /**\n * Parse a query string starting from the\n * [QueryUnit](https://www.w3.org/TR/sparql11-query/#rQueryUnit)\n * or [QueryUpdate](https://www.w3.org/TR/sparql11-query/#rUpdateUnit) rules.\n * @param query\n * @param context\n */\n public parse(query: string, context: Partial<SparqlContext> = {}): ParseRet {\n const ast = this.parser.queryOrUpdate(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n return ast;\n }\n\n /**\n * Parse a query string starting from the [Path](https://www.w3.org/TR/sparql11-query/#rPath) grammar rule.\n * @param query\n * @param context\n */\n public parsePath(query: string, context: Partial<SparqlContext> = {}):\n (Path & { prefixes: object }) | TermIri {\n const ast = this.parser.path(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n if (this.defaultContext.astFactory.isPathPure(ast)) {\n return {\n ...ast,\n prefixes: {},\n };\n }\n return ast;\n }\n}\n"]}
1
+ {"version":3,"file":"MinimalSparqlParser.js","sourceRoot":"","sources":["../../../lib/MinimalSparqlParser.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Localized } from '@traqula/core';\nimport { traqulaNewlineAlternative, TransformerObject, traqulaIndentation } from '@traqula/core';\nimport { AstFactory } from './astFactory.js';\nimport type { SparqlContext, SparqlGeneratorContext } from './sparql11HelperTypes.js';\nimport type { Path, TermIri } from './Sparql11types.js';\n\ninterface Parser<ParseRet> {\n queryOrUpdate: (input: string, context: SparqlContext) => ParseRet;\n path: (input: string, context: SparqlContext) => TermIri | Path;\n}\n\n/**\n * Create a complete {@link SparqlContext} by filling in default values for any missing fields.\n * @param context - Partial context to complete.\n * @returns A fully populated SparqlContext.\n */\nexport function completeParseContext(\n context: Partial<SparqlContext>,\n): SparqlContext {\n return {\n astFactory: context.astFactory ?? new AstFactory({ tracksSourceLocation: false }),\n baseIRI: context.baseIRI,\n prefixes: Object.assign(Object.create(null), context.prefixes),\n parseMode: context.parseMode ? new Set(context.parseMode) : new Set([ 'canParseVars', 'canCreateBlankNodes' ]),\n skipValidation: context.skipValidation ?? false,\n };\n}\n\n/**\n * Create a complete {@link SparqlGeneratorContext} by filling in default values for any missing fields.\n * @param context - Partial generator context to complete.\n * @returns A fully populated SparqlGeneratorContext.\n */\nexport function completeGeneratorContext(\n context: Partial<SparqlGeneratorContext & { offset?: number }>,\n): SparqlGeneratorContext & { offset?: number } {\n return {\n astFactory: context.astFactory ?? new AstFactory(),\n origSource: context.origSource ?? '',\n offset: context.offset,\n [traqulaIndentation]: context[traqulaIndentation] ?? 0,\n [traqulaNewlineAlternative]: context[traqulaNewlineAlternative] ?? ' ',\n indentInc: context.indentInc ?? 2,\n };\n}\n\n/**\n * Create a shallow copy of a parse/generator context so that mutations\n * (e.g. adding prefixes during parsing) do not affect the original.\n * @param context - The context to copy.\n * @returns A new context with cloned `prefixes` and `parseMode`.\n */\nexport function copyParseContext<T extends\nPartial<SparqlContext & SparqlGeneratorContext & { origSource: string; offset?: number }>>(\n context: T,\n): T {\n return {\n ...context,\n prefixes: Object.assign(Object.create(null), context.prefixes),\n parseMode: new Set(context.parseMode),\n };\n}\n\n/**\n * Base class for SPARQL parsers that provides {@link parse} and {@link parsePath} methods.\n * Engines typically extend this class to create pre-configured parser instances.\n * @typeParam ParseRet - The AST return type (e.g. `SparqlQuery`).\n */\nexport class MinimalSparqlParser<ParseRet extends Localized> {\n protected readonly defaultContext: SparqlContext;\n protected readonly coreTransformer = new TransformerObject();\n\n public constructor(protected readonly parser: Parser<ParseRet>, defaultContext: Partial<SparqlContext> = {}) {\n this.defaultContext = completeParseContext(defaultContext);\n }\n\n /**\n * Parse a query string starting from the\n * [QueryUnit](https://www.w3.org/TR/sparql11-query/#rQueryUnit)\n * or [QueryUpdate](https://www.w3.org/TR/sparql11-query/#rUpdateUnit) rules.\n * @param query\n * @param context\n */\n public parse(query: string, context: Partial<SparqlContext> = {}): ParseRet {\n const ast = this.parser.queryOrUpdate(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n return ast;\n }\n\n /**\n * Parse a query string starting from the [Path](https://www.w3.org/TR/sparql11-query/#rPath) grammar rule.\n * @param query\n * @param context\n */\n public parsePath(query: string, context: Partial<SparqlContext> = {}):\n (Path & { prefixes: object }) | TermIri {\n const ast = this.parser.path(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n if (this.defaultContext.astFactory.isPathPure(ast)) {\n return {\n ...ast,\n prefixes: Object.create(null),\n };\n }\n return ast;\n }\n}\n"]}
@@ -341,7 +341,7 @@ exports.inlineDataOneVar = {
341
341
  MANY(() => {
342
342
  const value = SUBRULE(exports.dataBlockValue);
343
343
  ACTION(() => {
344
- res.push({ [varVal.value]: value });
344
+ res.push(Object.assign(Object.create(null), { [varVal.value]: value }));
345
345
  });
346
346
  });
347
347
  const close = CONSUME(l.symbols.RCurly);
@@ -363,7 +363,7 @@ exports.inlineDataFull = {
363
363
  CONSUME1(l.symbols.LCurly);
364
364
  MANY1(() => {
365
365
  CONSUME2(l.terminals.nil);
366
- res.push({});
366
+ res.push(Object.create(null));
367
367
  });
368
368
  const close = CONSUME1(l.symbols.RCurly);
369
369
  return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(nil, close)));
@@ -377,7 +377,7 @@ exports.inlineDataFull = {
377
377
  CONSUME2(l.symbols.LCurly);
378
378
  MANY3(() => {
379
379
  let parsedValues = 0;
380
- const currentRow = {};
380
+ const currentRow = Object.create(null);
381
381
  CONSUME2(l.symbols.LParen);
382
382
  MANY4(() => {
383
383
  ACTION(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"whereClause.js","sourceRoot":"","sources":["../../../../lib/grammar/whereClause.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RuleDefReturn, Wrap } from '@traqula/core';\nimport { traqulaIndentation } from '@traqula/core';\nimport * as l from '../lexer/index.js';\nimport type { SparqlGeneratorRule, SparqlGrammarRule, SparqlRule } from '../sparql11HelperTypes.js';\nimport type {\n Expression,\n ExpressionFunctionCall,\n Pattern,\n PatternBgp,\n PatternBind,\n PatternFilter,\n PatternGraph,\n PatternGroup,\n PatternMinus,\n PatternOptional,\n PatternService,\n PatternUnion,\n PatternValues,\n SubSelect,\n TermIri,\n TermLiteral,\n TermVariable,\n ValuePatternRow,\n} from '../Sparql11types.js';\nimport { checkNote13 } from '../validation/validators.js';\nimport { builtInCall } from './builtIn.js';\nimport { argList, brackettedExpression, expression } from './expression.js';\nimport { var_, varOrIri, varOrTerm } from './general.js';\nimport { booleanLiteral, iri, numericLiteral, rdfLiteral } from './literals.js';\nimport { query, subSelect } from './queryUnit.js';\nimport { graphNodePath, triplesBlock } from './tripleBlock.js';\n\n/**\n * [[17]](https://www.w3.org/TR/sparql11-query/#rWhereClause)\n */\nexport const whereClause: SparqlRule<'whereClause', Wrap<PatternGroup>> = <const> {\n name: 'whereClause',\n impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {\n const where = OPTION(() => CONSUME(l.where));\n const group = SUBRULE(groupGraphPattern);\n return ACTION(() => C.astFactory.wrap(group, C.astFactory.sourceLocation(where, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('WHERE'));\n SUBRULE(groupGraphPattern, ast.val);\n },\n};\n\n/**\n * [[53]](https://www.w3.org/TR/sparql11-query/#rGroupGraphPattern)\n */\nexport const groupGraphPattern: SparqlRule<'groupGraphPattern', PatternGroup> = <const> {\n name: 'groupGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {\n const open = CONSUME(l.symbols.LCurly);\n const patterns = OR<Pattern[]>([\n { ALT: () => [ SUBRULE(subSelect) ]},\n { ALT: () => SUBRULE(groupGraphPatternSub) },\n ]);\n const close = CONSUME(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternGroup(patterns, C.astFactory.sourceLocation(open, close)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {\n const { astFactory: F, indentInc } = C;\n F.printFilter(ast, () => {\n C[traqulaIndentation] += indentInc;\n PRINT_WORD('{');\n NEW_LINE();\n });\n\n for (const pattern of ast.patterns) {\n SUBRULE(generatePattern, pattern);\n }\n\n F.printFilter(ast, () => {\n C[traqulaIndentation] -= indentInc;\n PRINT_ON_OWN_LINE('}');\n });\n },\n};\n\nexport const generatePattern: SparqlGeneratorRule<'generatePattern', Pattern> = {\n name: 'generatePattern',\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n if (ast.type === 'query') {\n SUBRULE(query, F.querySelect({\n context: [],\n datasets: F.datasetClauses([], F.sourceLocation()),\n where: ast.where,\n variables: ast.variables,\n solutionModifiers: ast.solutionModifiers,\n values: ast.values,\n distinct: ast.distinct,\n reduced: ast.reduced,\n }, ast.loc));\n } else if (ast.subType === 'group') {\n SUBRULE(groupGraphPattern, ast);\n } else if (ast.subType === 'bgp') {\n SUBRULE(triplesBlock, ast);\n } else {\n SUBRULE(graphPatternNotTriples, ast);\n }\n },\n};\n\n/**\n * [[54]](https://www.w3.org/TR/sparql11-query/#rGroupGraphPatternSub)\n */\nexport const groupGraphPatternSub:\nSparqlGrammarRule<'groupGraphPatternSub', Pattern[]> = <const> {\n name: 'groupGraphPatternSub',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => (C) => {\n const patterns: Pattern[] = [];\n\n const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock));\n if (bgpPattern) {\n patterns.push(bgpPattern);\n }\n MANY(() => {\n const notTriples = SUBRULE(graphPatternNotTriples);\n patterns.push(notTriples);\n\n OPTION2(() => CONSUME(l.symbols.dot));\n\n const moreTriples = OPTION3(() => SUBRULE2(triplesBlock));\n if (moreTriples) {\n patterns.push(moreTriples);\n }\n });\n\n ACTION(() => !C.skipValidation && checkNote13(patterns));\n\n return patterns;\n },\n};\n\n/**\n * [[56]](https://www.w3.org/TR/sparql11-query/#rGraphPatternNotTriples)\n */\nexport const graphPatternNotTriples: SparqlRule<'graphPatternNotTriples', Exclude<Pattern, SubSelect | PatternBgp>> = {\n name: 'graphPatternNotTriples',\n impl: ({ SUBRULE, OR }) => () => OR<RuleDefReturn<typeof graphPatternNotTriples>>([\n { ALT: () => SUBRULE(groupOrUnionGraphPattern) },\n { ALT: () => SUBRULE(optionalGraphPattern) },\n { ALT: () => SUBRULE(minusGraphPattern) },\n { ALT: () => SUBRULE(graphGraphPattern) },\n { ALT: () => SUBRULE(serviceGraphPattern) },\n { ALT: () => SUBRULE(filter) },\n { ALT: () => SUBRULE(bind) },\n { ALT: () => SUBRULE(inlineData) },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n switch (ast.subType) {\n case 'group':\n case 'union':\n SUBRULE(groupOrUnionGraphPattern, ast);\n break;\n case 'optional':\n SUBRULE(optionalGraphPattern, ast);\n break;\n case 'minus':\n SUBRULE(minusGraphPattern, ast);\n break;\n case 'graph':\n SUBRULE(graphGraphPattern, ast);\n break;\n case 'service':\n SUBRULE(serviceGraphPattern, ast);\n break;\n case 'filter':\n SUBRULE(filter, ast);\n break;\n case 'bind':\n SUBRULE(bind, ast);\n break;\n case 'values':\n SUBRULE(inlineData, ast);\n break;\n }\n },\n};\n\n/**\n * [[57]](https://www.w3.org/TR/sparql11-query/#rOptionalGraphPattern)\n */\nexport const optionalGraphPattern: SparqlRule<'optionalGraphPattern', PatternOptional> = <const> {\n name: 'optionalGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const optional = CONSUME(l.optional);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternOptional(group.patterns, C.astFactory.sourceLocation(optional, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('OPTIONAL'));\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[58]](https://www.w3.org/TR/sparql11-query/#rGraphGraphPattern)\n */\nexport const graphGraphPattern: SparqlRule<'graphGraphPattern', PatternGraph> = <const> {\n name: 'graphGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const graph = CONSUME(l.graph.graph);\n const name = SUBRULE(varOrIri);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternGraph(name, group.patterns, C.astFactory.sourceLocation(graph, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('GRAPH'));\n SUBRULE(varOrTerm, ast.name);\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[59]](https://www.w3.org/TR/sparql11-query/#rServiceGraphPattern)\n */\nexport const serviceGraphPattern: SparqlRule<'serviceGraphPattern', PatternService> = <const> {\n name: 'serviceGraphPattern',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {\n const service = CONSUME(l.service);\n const silent = OPTION(() => {\n CONSUME(l.silent);\n return true;\n }) ?? false;\n const name = SUBRULE1(varOrIri);\n const group = SUBRULE1(groupGraphPattern);\n\n return ACTION(() =>\n C.astFactory.patternService(name, group.patterns, silent, C.astFactory.sourceLocation(service, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD('SERVICE');\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(varOrTerm, ast.name);\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[60]](https://www.w3.org/TR/sparql11-query/#rBind)\n */\nexport const bind: SparqlRule<'bind', PatternBind> = <const> {\n name: 'bind',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const bind = CONSUME(l.bind);\n CONSUME(l.symbols.LParen);\n const expressionVal = SUBRULE(expression);\n CONSUME(l.as);\n const variable = SUBRULE(var_);\n const close = CONSUME(l.symbols.RParen);\n\n return ACTION(() => C.astFactory.patternBind(expressionVal, variable, C.astFactory.sourceLocation(bind, close)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('BIND', '('));\n SUBRULE(expression, ast.expression);\n F.printFilter(ast, () => PRINT_WORD('AS'));\n SUBRULE(var_, ast.variable);\n F.printFilter(ast, () => {\n PRINT_WORD(')');\n NEW_LINE();\n });\n },\n};\n\n/**\n * [[61]](https://www.w3.org/TR/sparql11-query/#rInlineData)\n */\nexport const inlineData: SparqlRule<'inlineData', PatternValues> = <const> {\n name: 'inlineData',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const values = CONSUME(l.values);\n const datablock = SUBRULE(dataBlock);\n\n return ACTION(() => {\n datablock.loc = C.astFactory.sourceLocation(values, datablock);\n return datablock;\n });\n },\n gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {\n const { astFactory: F, indentInc } = C;\n const variables = ast.variables;\n const singleVar = variables.length === 1;\n F.printFilter(ast, () => {\n PRINT_ON_EMPTY('VALUES', singleVar ? '' : '( ');\n });\n for (const variable of variables) {\n F.printFilter(ast, () => PRINT_WORD(''));\n SUBRULE(varOrTerm, variable);\n F.printFilter(ast, () => PRINT_WORD(''));\n }\n F.printFilter(ast, () => {\n C[traqulaIndentation] += indentInc;\n PRINT_WORD(singleVar ? '' : ')', '{');\n NEW_LINE();\n });\n\n for (const mapping of ast.values) {\n F.printFilter(ast, () => !singleVar && PRINT_WORD('('));\n for (const variable of variables) {\n const var_ = variable.value;\n if (mapping[var_] === undefined) {\n F.printFilter(ast, () => PRINT_WORD('UNDEF'));\n } else {\n SUBRULE(graphNodePath, mapping[var_]);\n F.printFilter(ast, () => PRINT_WORD(''));\n }\n }\n F.printFilter(ast, () => {\n PRINT_WORD(singleVar ? '' : ')');\n NEW_LINE();\n });\n }\n F.printFilter(ast, () => {\n C[traqulaIndentation] -= indentInc;\n PRINT_ON_OWN_LINE('}');\n });\n },\n};\n\n/**\n * [[62]](https://www.w3.org/TR/sparql11-query/#rDataBlock)\n */\nexport const dataBlock: SparqlGrammarRule<'dataBlock', PatternValues> = <const> {\n name: 'dataBlock',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(inlineDataOneVar) },\n { ALT: () => SUBRULE(inlineDataFull) },\n ]),\n};\n\n/**\n * [[63]](https://www.w3.org/TR/sparql11-query/#rInlineDataOneVar)\n */\nexport const inlineDataOneVar: SparqlGrammarRule<'inlineDataOneVar', PatternValues> = <const> {\n name: 'inlineDataOneVar',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {\n const res: ValuePatternRow[] = [];\n const varVal = SUBRULE(var_);\n CONSUME(l.symbols.LCurly);\n MANY(() => {\n const value = SUBRULE(dataBlockValue);\n ACTION(() => {\n res.push({ [varVal.value]: value });\n });\n });\n const close = CONSUME(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternValues([ varVal ], res, C.astFactory.sourceLocation(varVal, close)));\n },\n};\n\n/**\n * [[64]](https://www.w3.org/TR/sparql11-query/#rInlineDataFull)\n */\nexport const inlineDataFull: SparqlGrammarRule<'inlineDataFull', PatternValues> = <const> {\n name: 'inlineDataFull',\n impl: ({\n ACTION,\n OR,\n MANY1,\n MANY2,\n MANY3,\n MANY4,\n SUBRULE,\n CONSUME1,\n CONSUME2,\n }) => (C) => {\n const res: ValuePatternRow[] = [];\n const vars: TermVariable[] = [];\n return OR<RuleDefReturn<typeof inlineDataFull>>([\n { ALT: () => {\n // Grammar rule 64 together with note 11 learns us that a nil should be followed by a nil in DataBlock.\n const nil = CONSUME1(l.terminals.nil);\n CONSUME1(l.symbols.LCurly);\n MANY1(() => {\n CONSUME2(l.terminals.nil);\n res.push({});\n });\n const close = CONSUME1(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(nil, close)));\n } },\n { ALT: () => {\n const open = CONSUME1(l.symbols.LParen);\n MANY2(() => {\n vars.push(SUBRULE(var_));\n });\n CONSUME1(l.symbols.RParen);\n CONSUME2(l.symbols.LCurly);\n MANY3(() => {\n let parsedValues = 0;\n const currentRow: ValuePatternRow = {};\n CONSUME2(l.symbols.LParen);\n MANY4(() => {\n ACTION(() => {\n if (!C.skipValidation && parsedValues >= vars.length) {\n throw new Error('Number of dataBlockValues does not match number of variables. Too much values.');\n }\n });\n const value = SUBRULE(dataBlockValue);\n ACTION(() => {\n currentRow[vars[parsedValues].value] = value;\n parsedValues++;\n });\n });\n CONSUME2(l.symbols.RParen);\n ACTION(() => {\n res.push(currentRow);\n if (!C.skipValidation && vars.length !== parsedValues) {\n throw new Error('Number of dataBlockValues does not match number of variables. Too few values.');\n }\n });\n });\n const close = CONSUME2(l.symbols.RCurly);\n return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(open, close)));\n } },\n ]);\n },\n};\n\n/**\n * [[65]](https://www.w3.org/TR/sparql11-query/#rDataBlockValue)\n */\nexport const dataBlockValue: SparqlGrammarRule<'dataBlockValue', TermIri | TermLiteral | undefined> = {\n name: 'dataBlockValue',\n impl: ({ SUBRULE, CONSUME, OR }) => () => OR<RuleDefReturn<typeof dataBlockValue>>([\n { ALT: () => SUBRULE(iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(numericLiteral) },\n { ALT: () => SUBRULE(booleanLiteral) },\n { ALT: () => {\n CONSUME(l.undef);\n // eslint-disable-next-line unicorn/no-useless-undefined\n return undefined;\n } },\n ]),\n};\n\n/**\n * [[66]](https://www.w3.org/TR/sparql11-query/#rMinusGraphPattern)\n */\nexport const minusGraphPattern: SparqlRule<'minusGraphPattern', PatternMinus> = <const> {\n name: 'minusGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const minus = CONSUME(l.minus);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternMinus(group.patterns, C.astFactory.sourceLocation(minus, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('MINUS'));\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[67]](https://www.w3.org/TR/sparql11-query/#rGroupOrUnionGraphPattern)\n */\nexport const groupOrUnionGraphPattern: SparqlRule<'groupOrUnionGraphPattern', PatternGroup | PatternUnion> =\n <const> {\n name: 'groupOrUnionGraphPattern',\n impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {\n const groups: PatternGroup[] = [];\n\n const group = SUBRULE1(groupGraphPattern);\n groups.push(group);\n MANY(() => {\n CONSUME(l.union);\n const group = SUBRULE2(groupGraphPattern);\n groups.push(group);\n });\n\n return ACTION(() => groups.length === 1 ?\n groups[0] :\n C.astFactory.patternUnion(\n groups,\n C.astFactory.sourceLocation(group, groups.at(-1)),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n if (F.isPatternUnion(ast)) {\n const [ head, ...tail ] = ast.patterns;\n SUBRULE(groupGraphPattern, head);\n for (const pattern of tail) {\n F.printFilter(ast, () => PRINT_WORD('UNION'));\n SUBRULE(groupGraphPattern, pattern);\n }\n } else {\n SUBRULE(groupGraphPattern, ast);\n }\n },\n };\n\n/**\n * [[68]](https://www.w3.org/TR/sparql11-query/#rFilter)\n */\nexport const filter: SparqlRule<'filter', PatternFilter> = <const> {\n name: 'filter',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const filterToken = CONSUME(l.filter);\n const expression = SUBRULE(constraint);\n\n return ACTION(() => C.astFactory.patternFilter(expression, C.astFactory.sourceLocation(filterToken, expression)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('FILTER ('));\n SUBRULE(expression, ast.expression);\n F.printFilter(ast, () => {\n PRINT_WORD(')');\n NEW_LINE();\n });\n },\n};\n\n/**\n * [[69]](https://www.w3.org/TR/sparql11-query/#rConstraint)\n */\nexport const constraint: SparqlGrammarRule<'constraint', Expression> = <const> {\n name: 'constraint',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(brackettedExpression) },\n { ALT: () => SUBRULE(builtInCall) },\n { ALT: () => SUBRULE(functionCall) },\n ]),\n};\n\n/**\n * [[70]](https://www.w3.org/TR/sparql11-query/#rFunctionCall)\n */\nexport const functionCall: SparqlGrammarRule<'functionCall', ExpressionFunctionCall> = <const> {\n name: 'functionCall',\n impl: ({ ACTION, SUBRULE }) => (C) => {\n const func = SUBRULE(iri);\n const args = SUBRULE(argList);\n return ACTION(() => C.astFactory.expressionFunctionCall(\n func,\n args.val.args,\n args.val.distinct,\n C.astFactory.sourceLocation(func, args),\n ));\n },\n};\n"]}
1
+ {"version":3,"file":"whereClause.js","sourceRoot":"","sources":["../../../../lib/grammar/whereClause.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RuleDefReturn, Wrap } from '@traqula/core';\nimport { traqulaIndentation } from '@traqula/core';\nimport * as l from '../lexer/index.js';\nimport type { SparqlGeneratorRule, SparqlGrammarRule, SparqlRule } from '../sparql11HelperTypes.js';\nimport type {\n Expression,\n ExpressionFunctionCall,\n Pattern,\n PatternBgp,\n PatternBind,\n PatternFilter,\n PatternGraph,\n PatternGroup,\n PatternMinus,\n PatternOptional,\n PatternService,\n PatternUnion,\n PatternValues,\n SubSelect,\n TermIri,\n TermLiteral,\n TermVariable,\n ValuePatternRow,\n} from '../Sparql11types.js';\nimport { checkNote13 } from '../validation/validators.js';\nimport { builtInCall } from './builtIn.js';\nimport { argList, brackettedExpression, expression } from './expression.js';\nimport { var_, varOrIri, varOrTerm } from './general.js';\nimport { booleanLiteral, iri, numericLiteral, rdfLiteral } from './literals.js';\nimport { query, subSelect } from './queryUnit.js';\nimport { graphNodePath, triplesBlock } from './tripleBlock.js';\n\n/**\n * [[17]](https://www.w3.org/TR/sparql11-query/#rWhereClause)\n */\nexport const whereClause: SparqlRule<'whereClause', Wrap<PatternGroup>> = <const> {\n name: 'whereClause',\n impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {\n const where = OPTION(() => CONSUME(l.where));\n const group = SUBRULE(groupGraphPattern);\n return ACTION(() => C.astFactory.wrap(group, C.astFactory.sourceLocation(where, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('WHERE'));\n SUBRULE(groupGraphPattern, ast.val);\n },\n};\n\n/**\n * [[53]](https://www.w3.org/TR/sparql11-query/#rGroupGraphPattern)\n */\nexport const groupGraphPattern: SparqlRule<'groupGraphPattern', PatternGroup> = <const> {\n name: 'groupGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {\n const open = CONSUME(l.symbols.LCurly);\n const patterns = OR<Pattern[]>([\n { ALT: () => [ SUBRULE(subSelect) ]},\n { ALT: () => SUBRULE(groupGraphPatternSub) },\n ]);\n const close = CONSUME(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternGroup(patterns, C.astFactory.sourceLocation(open, close)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {\n const { astFactory: F, indentInc } = C;\n F.printFilter(ast, () => {\n C[traqulaIndentation] += indentInc;\n PRINT_WORD('{');\n NEW_LINE();\n });\n\n for (const pattern of ast.patterns) {\n SUBRULE(generatePattern, pattern);\n }\n\n F.printFilter(ast, () => {\n C[traqulaIndentation] -= indentInc;\n PRINT_ON_OWN_LINE('}');\n });\n },\n};\n\nexport const generatePattern: SparqlGeneratorRule<'generatePattern', Pattern> = {\n name: 'generatePattern',\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n if (ast.type === 'query') {\n SUBRULE(query, F.querySelect({\n context: [],\n datasets: F.datasetClauses([], F.sourceLocation()),\n where: ast.where,\n variables: ast.variables,\n solutionModifiers: ast.solutionModifiers,\n values: ast.values,\n distinct: ast.distinct,\n reduced: ast.reduced,\n }, ast.loc));\n } else if (ast.subType === 'group') {\n SUBRULE(groupGraphPattern, ast);\n } else if (ast.subType === 'bgp') {\n SUBRULE(triplesBlock, ast);\n } else {\n SUBRULE(graphPatternNotTriples, ast);\n }\n },\n};\n\n/**\n * [[54]](https://www.w3.org/TR/sparql11-query/#rGroupGraphPatternSub)\n */\nexport const groupGraphPatternSub:\nSparqlGrammarRule<'groupGraphPatternSub', Pattern[]> = <const> {\n name: 'groupGraphPatternSub',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => (C) => {\n const patterns: Pattern[] = [];\n\n const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock));\n if (bgpPattern) {\n patterns.push(bgpPattern);\n }\n MANY(() => {\n const notTriples = SUBRULE(graphPatternNotTriples);\n patterns.push(notTriples);\n\n OPTION2(() => CONSUME(l.symbols.dot));\n\n const moreTriples = OPTION3(() => SUBRULE2(triplesBlock));\n if (moreTriples) {\n patterns.push(moreTriples);\n }\n });\n\n ACTION(() => !C.skipValidation && checkNote13(patterns));\n\n return patterns;\n },\n};\n\n/**\n * [[56]](https://www.w3.org/TR/sparql11-query/#rGraphPatternNotTriples)\n */\nexport const graphPatternNotTriples: SparqlRule<'graphPatternNotTriples', Exclude<Pattern, SubSelect | PatternBgp>> = {\n name: 'graphPatternNotTriples',\n impl: ({ SUBRULE, OR }) => () => OR<RuleDefReturn<typeof graphPatternNotTriples>>([\n { ALT: () => SUBRULE(groupOrUnionGraphPattern) },\n { ALT: () => SUBRULE(optionalGraphPattern) },\n { ALT: () => SUBRULE(minusGraphPattern) },\n { ALT: () => SUBRULE(graphGraphPattern) },\n { ALT: () => SUBRULE(serviceGraphPattern) },\n { ALT: () => SUBRULE(filter) },\n { ALT: () => SUBRULE(bind) },\n { ALT: () => SUBRULE(inlineData) },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n switch (ast.subType) {\n case 'group':\n case 'union':\n SUBRULE(groupOrUnionGraphPattern, ast);\n break;\n case 'optional':\n SUBRULE(optionalGraphPattern, ast);\n break;\n case 'minus':\n SUBRULE(minusGraphPattern, ast);\n break;\n case 'graph':\n SUBRULE(graphGraphPattern, ast);\n break;\n case 'service':\n SUBRULE(serviceGraphPattern, ast);\n break;\n case 'filter':\n SUBRULE(filter, ast);\n break;\n case 'bind':\n SUBRULE(bind, ast);\n break;\n case 'values':\n SUBRULE(inlineData, ast);\n break;\n }\n },\n};\n\n/**\n * [[57]](https://www.w3.org/TR/sparql11-query/#rOptionalGraphPattern)\n */\nexport const optionalGraphPattern: SparqlRule<'optionalGraphPattern', PatternOptional> = <const> {\n name: 'optionalGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const optional = CONSUME(l.optional);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternOptional(group.patterns, C.astFactory.sourceLocation(optional, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('OPTIONAL'));\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[58]](https://www.w3.org/TR/sparql11-query/#rGraphGraphPattern)\n */\nexport const graphGraphPattern: SparqlRule<'graphGraphPattern', PatternGraph> = <const> {\n name: 'graphGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const graph = CONSUME(l.graph.graph);\n const name = SUBRULE(varOrIri);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternGraph(name, group.patterns, C.astFactory.sourceLocation(graph, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('GRAPH'));\n SUBRULE(varOrTerm, ast.name);\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[59]](https://www.w3.org/TR/sparql11-query/#rServiceGraphPattern)\n */\nexport const serviceGraphPattern: SparqlRule<'serviceGraphPattern', PatternService> = <const> {\n name: 'serviceGraphPattern',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {\n const service = CONSUME(l.service);\n const silent = OPTION(() => {\n CONSUME(l.silent);\n return true;\n }) ?? false;\n const name = SUBRULE1(varOrIri);\n const group = SUBRULE1(groupGraphPattern);\n\n return ACTION(() =>\n C.astFactory.patternService(name, group.patterns, silent, C.astFactory.sourceLocation(service, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD('SERVICE');\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(varOrTerm, ast.name);\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[60]](https://www.w3.org/TR/sparql11-query/#rBind)\n */\nexport const bind: SparqlRule<'bind', PatternBind> = <const> {\n name: 'bind',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const bind = CONSUME(l.bind);\n CONSUME(l.symbols.LParen);\n const expressionVal = SUBRULE(expression);\n CONSUME(l.as);\n const variable = SUBRULE(var_);\n const close = CONSUME(l.symbols.RParen);\n\n return ACTION(() => C.astFactory.patternBind(expressionVal, variable, C.astFactory.sourceLocation(bind, close)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('BIND', '('));\n SUBRULE(expression, ast.expression);\n F.printFilter(ast, () => PRINT_WORD('AS'));\n SUBRULE(var_, ast.variable);\n F.printFilter(ast, () => {\n PRINT_WORD(')');\n NEW_LINE();\n });\n },\n};\n\n/**\n * [[61]](https://www.w3.org/TR/sparql11-query/#rInlineData)\n */\nexport const inlineData: SparqlRule<'inlineData', PatternValues> = <const> {\n name: 'inlineData',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const values = CONSUME(l.values);\n const datablock = SUBRULE(dataBlock);\n\n return ACTION(() => {\n datablock.loc = C.astFactory.sourceLocation(values, datablock);\n return datablock;\n });\n },\n gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {\n const { astFactory: F, indentInc } = C;\n const variables = ast.variables;\n const singleVar = variables.length === 1;\n F.printFilter(ast, () => {\n PRINT_ON_EMPTY('VALUES', singleVar ? '' : '( ');\n });\n for (const variable of variables) {\n F.printFilter(ast, () => PRINT_WORD(''));\n SUBRULE(varOrTerm, variable);\n F.printFilter(ast, () => PRINT_WORD(''));\n }\n F.printFilter(ast, () => {\n C[traqulaIndentation] += indentInc;\n PRINT_WORD(singleVar ? '' : ')', '{');\n NEW_LINE();\n });\n\n for (const mapping of ast.values) {\n F.printFilter(ast, () => !singleVar && PRINT_WORD('('));\n for (const variable of variables) {\n const var_ = variable.value;\n if (mapping[var_] === undefined) {\n F.printFilter(ast, () => PRINT_WORD('UNDEF'));\n } else {\n SUBRULE(graphNodePath, mapping[var_]);\n F.printFilter(ast, () => PRINT_WORD(''));\n }\n }\n F.printFilter(ast, () => {\n PRINT_WORD(singleVar ? '' : ')');\n NEW_LINE();\n });\n }\n F.printFilter(ast, () => {\n C[traqulaIndentation] -= indentInc;\n PRINT_ON_OWN_LINE('}');\n });\n },\n};\n\n/**\n * [[62]](https://www.w3.org/TR/sparql11-query/#rDataBlock)\n */\nexport const dataBlock: SparqlGrammarRule<'dataBlock', PatternValues> = <const> {\n name: 'dataBlock',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(inlineDataOneVar) },\n { ALT: () => SUBRULE(inlineDataFull) },\n ]),\n};\n\n/**\n * [[63]](https://www.w3.org/TR/sparql11-query/#rInlineDataOneVar)\n */\nexport const inlineDataOneVar: SparqlGrammarRule<'inlineDataOneVar', PatternValues> = <const> {\n name: 'inlineDataOneVar',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {\n const res: ValuePatternRow[] = [];\n const varVal = SUBRULE(var_);\n CONSUME(l.symbols.LCurly);\n MANY(() => {\n const value = SUBRULE(dataBlockValue);\n ACTION(() => {\n res.push(Object.assign(Object.create(null), { [varVal.value]: value }));\n });\n });\n const close = CONSUME(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternValues([ varVal ], res, C.astFactory.sourceLocation(varVal, close)));\n },\n};\n\n/**\n * [[64]](https://www.w3.org/TR/sparql11-query/#rInlineDataFull)\n */\nexport const inlineDataFull: SparqlGrammarRule<'inlineDataFull', PatternValues> = <const> {\n name: 'inlineDataFull',\n impl: ({\n ACTION,\n OR,\n MANY1,\n MANY2,\n MANY3,\n MANY4,\n SUBRULE,\n CONSUME1,\n CONSUME2,\n }) => (C) => {\n const res: ValuePatternRow[] = [];\n const vars: TermVariable[] = [];\n return OR<RuleDefReturn<typeof inlineDataFull>>([\n { ALT: () => {\n // Grammar rule 64 together with note 11 learns us that a nil should be followed by a nil in DataBlock.\n const nil = CONSUME1(l.terminals.nil);\n CONSUME1(l.symbols.LCurly);\n MANY1(() => {\n CONSUME2(l.terminals.nil);\n res.push(Object.create(null));\n });\n const close = CONSUME1(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(nil, close)));\n } },\n { ALT: () => {\n const open = CONSUME1(l.symbols.LParen);\n MANY2(() => {\n vars.push(SUBRULE(var_));\n });\n CONSUME1(l.symbols.RParen);\n CONSUME2(l.symbols.LCurly);\n MANY3(() => {\n let parsedValues = 0;\n const currentRow: ValuePatternRow = Object.create(null);\n CONSUME2(l.symbols.LParen);\n MANY4(() => {\n ACTION(() => {\n if (!C.skipValidation && parsedValues >= vars.length) {\n throw new Error('Number of dataBlockValues does not match number of variables. Too much values.');\n }\n });\n const value = SUBRULE(dataBlockValue);\n ACTION(() => {\n currentRow[vars[parsedValues].value] = value;\n parsedValues++;\n });\n });\n CONSUME2(l.symbols.RParen);\n ACTION(() => {\n res.push(currentRow);\n if (!C.skipValidation && vars.length !== parsedValues) {\n throw new Error('Number of dataBlockValues does not match number of variables. Too few values.');\n }\n });\n });\n const close = CONSUME2(l.symbols.RCurly);\n return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(open, close)));\n } },\n ]);\n },\n};\n\n/**\n * [[65]](https://www.w3.org/TR/sparql11-query/#rDataBlockValue)\n */\nexport const dataBlockValue: SparqlGrammarRule<'dataBlockValue', TermIri | TermLiteral | undefined> = {\n name: 'dataBlockValue',\n impl: ({ SUBRULE, CONSUME, OR }) => () => OR<RuleDefReturn<typeof dataBlockValue>>([\n { ALT: () => SUBRULE(iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(numericLiteral) },\n { ALT: () => SUBRULE(booleanLiteral) },\n { ALT: () => {\n CONSUME(l.undef);\n // eslint-disable-next-line unicorn/no-useless-undefined\n return undefined;\n } },\n ]),\n};\n\n/**\n * [[66]](https://www.w3.org/TR/sparql11-query/#rMinusGraphPattern)\n */\nexport const minusGraphPattern: SparqlRule<'minusGraphPattern', PatternMinus> = <const> {\n name: 'minusGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const minus = CONSUME(l.minus);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternMinus(group.patterns, C.astFactory.sourceLocation(minus, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('MINUS'));\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[67]](https://www.w3.org/TR/sparql11-query/#rGroupOrUnionGraphPattern)\n */\nexport const groupOrUnionGraphPattern: SparqlRule<'groupOrUnionGraphPattern', PatternGroup | PatternUnion> =\n <const> {\n name: 'groupOrUnionGraphPattern',\n impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {\n const groups: PatternGroup[] = [];\n\n const group = SUBRULE1(groupGraphPattern);\n groups.push(group);\n MANY(() => {\n CONSUME(l.union);\n const group = SUBRULE2(groupGraphPattern);\n groups.push(group);\n });\n\n return ACTION(() => groups.length === 1 ?\n groups[0] :\n C.astFactory.patternUnion(\n groups,\n C.astFactory.sourceLocation(group, groups.at(-1)),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n if (F.isPatternUnion(ast)) {\n const [ head, ...tail ] = ast.patterns;\n SUBRULE(groupGraphPattern, head);\n for (const pattern of tail) {\n F.printFilter(ast, () => PRINT_WORD('UNION'));\n SUBRULE(groupGraphPattern, pattern);\n }\n } else {\n SUBRULE(groupGraphPattern, ast);\n }\n },\n };\n\n/**\n * [[68]](https://www.w3.org/TR/sparql11-query/#rFilter)\n */\nexport const filter: SparqlRule<'filter', PatternFilter> = <const> {\n name: 'filter',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const filterToken = CONSUME(l.filter);\n const expression = SUBRULE(constraint);\n\n return ACTION(() => C.astFactory.patternFilter(expression, C.astFactory.sourceLocation(filterToken, expression)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('FILTER ('));\n SUBRULE(expression, ast.expression);\n F.printFilter(ast, () => {\n PRINT_WORD(')');\n NEW_LINE();\n });\n },\n};\n\n/**\n * [[69]](https://www.w3.org/TR/sparql11-query/#rConstraint)\n */\nexport const constraint: SparqlGrammarRule<'constraint', Expression> = <const> {\n name: 'constraint',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(brackettedExpression) },\n { ALT: () => SUBRULE(builtInCall) },\n { ALT: () => SUBRULE(functionCall) },\n ]),\n};\n\n/**\n * [[70]](https://www.w3.org/TR/sparql11-query/#rFunctionCall)\n */\nexport const functionCall: SparqlGrammarRule<'functionCall', ExpressionFunctionCall> = <const> {\n name: 'functionCall',\n impl: ({ ACTION, SUBRULE }) => (C) => {\n const func = SUBRULE(iri);\n const args = SUBRULE(argList);\n return ACTION(() => C.astFactory.expressionFunctionCall(\n func,\n args.val.args,\n args.val.distinct,\n C.astFactory.sourceLocation(func, args),\n ));\n },\n};\n"]}
@@ -28,7 +28,7 @@ exports.doublePositivePattern = new RegExp(`\\+${exports.doublePattern.source}`)
28
28
  exports.integerNegativePattern = new RegExp(`-${exports.integerPattern.source}`);
29
29
  exports.decimalNegativePattern = new RegExp(`-${exports.decimalPattern.source}`);
30
30
  exports.doubleNegativePattern = new RegExp(`-${exports.doublePattern.source}`);
31
- exports.echarPattern = /\\[\\"'bfnrt]/u;
31
+ exports.echarPattern = /\\["'\\bfnrt]/;
32
32
  exports.stringLiteral1Pattern = new RegExp(`'(([^\\u0027\\u005C\\u000A\u000D])|(${exports.echarPattern.source}))*'`);
33
33
  exports.stringLiteral2Pattern = new RegExp(`"(([^\\u0022\\u005C\\u000A\\u000D])|(${exports.echarPattern.source}))*"`);
34
34
  exports.stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\]|(${exports.echarPattern.source})))*'''`);
@@ -36,6 +36,7 @@ exports.stringLiteralLong2Pattern = new RegExp(`"""(("|(""))?([^"\\\\]|(${export
36
36
  exports.wsPattern = /[\u0009\u000A\u000D ]/;
37
37
  exports.nilPattern = new RegExp(`\\((${exports.wsPattern.source})*\\)`);
38
38
  exports.anonPattern = new RegExp(`\\[(${exports.wsPattern.source})*\\]`);
39
- exports.commentPattern = /#[^\n]*\n/;
40
- exports.atLeastOneBlankPattern = new RegExp(`((${exports.wsPattern.source}+)|(${exports.commentPattern.source}))+`);
39
+ exports.commentPattern = /#[^\n]*/;
40
+ // Need to ensure the blank closes
41
+ exports.atLeastOneBlankPattern = new RegExp(`((${exports.wsPattern.source}+)|(${exports.commentPattern.source}\n))+`);
41
42
  //# sourceMappingURL=lexerPatterns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lexerPatterns.js","sourceRoot":"","sources":["../../../../lib/lexer/lexerPatterns.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable require-unicode-regexp,no-misleading-character-class,max-len,no-control-regex */\n\nexport const pnCharsBasePattern = /[A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF]/;\nexport const pnCharsUPattern = new RegExp(`${pnCharsBasePattern.source}|_`);\nexport const varNamePattern = new RegExp(`((${pnCharsUPattern.source})|[0-9])((${pnCharsUPattern.source})|[0-9]|[\\u00B7\\u0300-\\u036F\\u203F-\\u2040])*`);\nexport const iriRefPattern = /<([^\\u0000-\\u0020\"<>\\\\^`{|}])*>/;\nexport const pnCharsPattern = new RegExp(`(${pnCharsUPattern.source})|[\\\\-0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]`);\nexport const pnPrefixPattern = new RegExp(`(${pnCharsBasePattern.source})(((${pnCharsPattern.source})|\\\\.)*(${pnCharsPattern.source}))?`);\nexport const pNameNsPattern = new RegExp(`(${pnPrefixPattern.source})?:`);\nexport const percentPattern = /%[\\dA-Fa-f]{2}/;\nexport const pnLocalEscPattern = /\\\\[!#$%&'()*+,./;=?@\\\\_~-]/;\nexport const plxPattern = new RegExp(`(${percentPattern.source})|(${pnLocalEscPattern.source})`);\nexport const pnLocalPattern = new RegExp(`((${pnCharsUPattern.source})|:|[0-9]|(${plxPattern.source}))(((${pnCharsPattern.source})|\\\\.|:|(${plxPattern.source}))*((${pnCharsPattern.source})|:|(${plxPattern.source})))?`);\nexport const pNameLnPattern = new RegExp(`(${pNameNsPattern.source})(${pnLocalPattern.source})`);\nexport const blankNodeLabelPattern = new RegExp(`_:((${pnCharsUPattern.source})|[0-9])(((${pnCharsPattern.source})|\\\\.)*(${pnCharsPattern.source}))?`);\nexport const var1Pattern = new RegExp(`\\\\?(${varNamePattern.source})`);\nexport const var2Pattern = new RegExp(`\\\\$(${varNamePattern.source})`);\nexport const langTagPattern = /@[A-Za-z]+(-[\\dA-Za-z]+)*/;\nexport const integerPattern = /\\d+/;\nexport const decimalPattern = /\\d+\\.\\d+/;\nexport const exponentPattern = /[Ee][+-]?\\d+/;\nexport const doublePattern = new RegExp(`([0-9]+\\\\.[0-9]*(${exponentPattern.source}))|(\\\\.[0-9]+(${exponentPattern.source}))|([0-9]+(${exponentPattern.source}))`);\nexport const integerPositivePattern = new RegExp(`\\\\+${integerPattern.source}`);\nexport const decimalPositivePattern = new RegExp(`\\\\+${decimalPattern.source}`);\nexport const doublePositivePattern = new RegExp(`\\\\+${doublePattern.source}`);\nexport const integerNegativePattern = new RegExp(`-${integerPattern.source}`);\nexport const decimalNegativePattern = new RegExp(`-${decimalPattern.source}`);\nexport const doubleNegativePattern = new RegExp(`-${doublePattern.source}`);\nexport const echarPattern = /\\\\[\\\\\"'bfnrt]/u;\nexport const stringLiteral1Pattern = new RegExp(`'(([^\\\\u0027\\\\u005C\\\\u000A\\u000D])|(${echarPattern.source}))*'`);\nexport const stringLiteral2Pattern = new RegExp(`\"(([^\\\\u0022\\\\u005C\\\\u000A\\\\u000D])|(${echarPattern.source}))*\"`);\nexport const stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\\\\\]|(${echarPattern.source})))*'''`);\nexport const stringLiteralLong2Pattern = new RegExp(`\"\"\"((\"|(\"\"))?([^\"\\\\\\\\]|(${echarPattern.source})))*\"\"\"`);\nexport const wsPattern = /[\\u0009\\u000A\\u000D ]/;\nexport const nilPattern = new RegExp(`\\\\((${wsPattern.source})*\\\\)`);\nexport const anonPattern = new RegExp(`\\\\[(${wsPattern.source})*\\\\]`);\nexport const commentPattern = /#[^\\n]*\\n/;\n\nexport const atLeastOneBlankPattern = new RegExp(`((${wsPattern.source}+)|(${commentPattern.source}))+`);\n"]}
1
+ {"version":3,"file":"lexerPatterns.js","sourceRoot":"","sources":["../../../../lib/lexer/lexerPatterns.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable require-unicode-regexp,no-misleading-character-class,max-len,no-control-regex */\n\nexport const pnCharsBasePattern = /[A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF]/;\nexport const pnCharsUPattern = new RegExp(`${pnCharsBasePattern.source}|_`);\nexport const varNamePattern = new RegExp(`((${pnCharsUPattern.source})|[0-9])((${pnCharsUPattern.source})|[0-9]|[\\u00B7\\u0300-\\u036F\\u203F-\\u2040])*`);\nexport const iriRefPattern = /<([^\\u0000-\\u0020\"<>\\\\^`{|}])*>/;\nexport const pnCharsPattern = new RegExp(`(${pnCharsUPattern.source})|[\\\\-0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]`);\nexport const pnPrefixPattern = new RegExp(`(${pnCharsBasePattern.source})(((${pnCharsPattern.source})|\\\\.)*(${pnCharsPattern.source}))?`);\nexport const pNameNsPattern = new RegExp(`(${pnPrefixPattern.source})?:`);\nexport const percentPattern = /%[\\dA-Fa-f]{2}/;\nexport const pnLocalEscPattern = /\\\\[!#$%&'()*+,./;=?@\\\\_~-]/;\nexport const plxPattern = new RegExp(`(${percentPattern.source})|(${pnLocalEscPattern.source})`);\nexport const pnLocalPattern = new RegExp(`((${pnCharsUPattern.source})|:|[0-9]|(${plxPattern.source}))(((${pnCharsPattern.source})|\\\\.|:|(${plxPattern.source}))*((${pnCharsPattern.source})|:|(${plxPattern.source})))?`);\nexport const pNameLnPattern = new RegExp(`(${pNameNsPattern.source})(${pnLocalPattern.source})`);\nexport const blankNodeLabelPattern = new RegExp(`_:((${pnCharsUPattern.source})|[0-9])(((${pnCharsPattern.source})|\\\\.)*(${pnCharsPattern.source}))?`);\nexport const var1Pattern = new RegExp(`\\\\?(${varNamePattern.source})`);\nexport const var2Pattern = new RegExp(`\\\\$(${varNamePattern.source})`);\nexport const langTagPattern = /@[A-Za-z]+(-[\\dA-Za-z]+)*/;\nexport const integerPattern = /\\d+/;\nexport const decimalPattern = /\\d+\\.\\d+/;\nexport const exponentPattern = /[Ee][+-]?\\d+/;\nexport const doublePattern = new RegExp(`([0-9]+\\\\.[0-9]*(${exponentPattern.source}))|(\\\\.[0-9]+(${exponentPattern.source}))|([0-9]+(${exponentPattern.source}))`);\nexport const integerPositivePattern = new RegExp(`\\\\+${integerPattern.source}`);\nexport const decimalPositivePattern = new RegExp(`\\\\+${decimalPattern.source}`);\nexport const doublePositivePattern = new RegExp(`\\\\+${doublePattern.source}`);\nexport const integerNegativePattern = new RegExp(`-${integerPattern.source}`);\nexport const decimalNegativePattern = new RegExp(`-${decimalPattern.source}`);\nexport const doubleNegativePattern = new RegExp(`-${doublePattern.source}`);\nexport const echarPattern = /\\\\[\"'\\\\bfnrt]/;\nexport const stringLiteral1Pattern = new RegExp(`'(([^\\\\u0027\\\\u005C\\\\u000A\\u000D])|(${echarPattern.source}))*'`);\nexport const stringLiteral2Pattern = new RegExp(`\"(([^\\\\u0022\\\\u005C\\\\u000A\\\\u000D])|(${echarPattern.source}))*\"`);\nexport const stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\\\\\]|(${echarPattern.source})))*'''`);\nexport const stringLiteralLong2Pattern = new RegExp(`\"\"\"((\"|(\"\"))?([^\"\\\\\\\\]|(${echarPattern.source})))*\"\"\"`);\nexport const wsPattern = /[\\u0009\\u000A\\u000D ]/;\nexport const nilPattern = new RegExp(`\\\\((${wsPattern.source})*\\\\)`);\nexport const anonPattern = new RegExp(`\\\\[(${wsPattern.source})*\\\\]`);\nexport const commentPattern = /#[^\\n]*/;\n// Need to ensure the blank closes\nexport const atLeastOneBlankPattern = new RegExp(`((${wsPattern.source}+)|(${commentPattern.source}\\n))+`);\n"]}
@@ -9,7 +9,7 @@ export function completeParseContext(context) {
9
9
  return {
10
10
  astFactory: context.astFactory ?? new AstFactory({ tracksSourceLocation: false }),
11
11
  baseIRI: context.baseIRI,
12
- prefixes: { ...context.prefixes },
12
+ prefixes: Object.assign(Object.create(null), context.prefixes),
13
13
  parseMode: context.parseMode ? new Set(context.parseMode) : new Set(['canParseVars', 'canCreateBlankNodes']),
14
14
  skipValidation: context.skipValidation ?? false,
15
15
  };
@@ -38,7 +38,7 @@ export function completeGeneratorContext(context) {
38
38
  export function copyParseContext(context) {
39
39
  return {
40
40
  ...context,
41
- prefixes: { ...context.prefixes },
41
+ prefixes: Object.assign(Object.create(null), context.prefixes),
42
42
  parseMode: new Set(context.parseMode),
43
43
  };
44
44
  }
@@ -78,7 +78,7 @@ export class MinimalSparqlParser {
78
78
  if (this.defaultContext.astFactory.isPathPure(ast)) {
79
79
  return {
80
80
  ...ast,
81
- prefixes: {},
81
+ prefixes: Object.create(null),
82
82
  };
83
83
  }
84
84
  return ast;
@@ -1 +1 @@
1
- {"version":3,"file":"MinimalSparqlParser.js","sourceRoot":"","sources":["../../../lib/MinimalSparqlParser.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Localized } from '@traqula/core';\nimport { traqulaNewlineAlternative, TransformerObject, traqulaIndentation } from '@traqula/core';\nimport { AstFactory } from './astFactory.js';\nimport type { SparqlContext, SparqlGeneratorContext } from './sparql11HelperTypes.js';\nimport type { Path, TermIri } from './Sparql11types.js';\n\ninterface Parser<ParseRet> {\n queryOrUpdate: (input: string, context: SparqlContext) => ParseRet;\n path: (input: string, context: SparqlContext) => TermIri | Path;\n}\n\n/**\n * Create a complete {@link SparqlContext} by filling in default values for any missing fields.\n * @param context - Partial context to complete.\n * @returns A fully populated SparqlContext.\n */\nexport function completeParseContext(\n context: Partial<SparqlContext>,\n): SparqlContext {\n return {\n astFactory: context.astFactory ?? new AstFactory({ tracksSourceLocation: false }),\n baseIRI: context.baseIRI,\n prefixes: { ...context.prefixes },\n parseMode: context.parseMode ? new Set(context.parseMode) : new Set([ 'canParseVars', 'canCreateBlankNodes' ]),\n skipValidation: context.skipValidation ?? false,\n };\n}\n\n/**\n * Create a complete {@link SparqlGeneratorContext} by filling in default values for any missing fields.\n * @param context - Partial generator context to complete.\n * @returns A fully populated SparqlGeneratorContext.\n */\nexport function completeGeneratorContext(\n context: Partial<SparqlGeneratorContext & { offset?: number }>,\n): SparqlGeneratorContext & { offset?: number } {\n return {\n astFactory: context.astFactory ?? new AstFactory(),\n origSource: context.origSource ?? '',\n offset: context.offset,\n [traqulaIndentation]: context[traqulaIndentation] ?? 0,\n [traqulaNewlineAlternative]: context[traqulaNewlineAlternative] ?? ' ',\n indentInc: context.indentInc ?? 2,\n };\n}\n\n/**\n * Create a shallow copy of a parse/generator context so that mutations\n * (e.g. adding prefixes during parsing) do not affect the original.\n * @param context - The context to copy.\n * @returns A new context with cloned `prefixes` and `parseMode`.\n */\nexport function copyParseContext<T extends\nPartial<SparqlContext & SparqlGeneratorContext & { origSource: string; offset?: number }>>(\n context: T,\n): T {\n return {\n ...context,\n prefixes: { ...context.prefixes },\n parseMode: new Set(context.parseMode),\n };\n}\n\n/**\n * Base class for SPARQL parsers that provides {@link parse} and {@link parsePath} methods.\n * Engines typically extend this class to create pre-configured parser instances.\n * @typeParam ParseRet - The AST return type (e.g. `SparqlQuery`).\n */\nexport class MinimalSparqlParser<ParseRet extends Localized> {\n protected readonly defaultContext: SparqlContext;\n protected readonly coreTransformer = new TransformerObject();\n\n public constructor(protected readonly parser: Parser<ParseRet>, defaultContext: Partial<SparqlContext> = {}) {\n this.defaultContext = completeParseContext(defaultContext);\n }\n\n /**\n * Parse a query string starting from the\n * [QueryUnit](https://www.w3.org/TR/sparql11-query/#rQueryUnit)\n * or [QueryUpdate](https://www.w3.org/TR/sparql11-query/#rUpdateUnit) rules.\n * @param query\n * @param context\n */\n public parse(query: string, context: Partial<SparqlContext> = {}): ParseRet {\n const ast = this.parser.queryOrUpdate(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n return ast;\n }\n\n /**\n * Parse a query string starting from the [Path](https://www.w3.org/TR/sparql11-query/#rPath) grammar rule.\n * @param query\n * @param context\n */\n public parsePath(query: string, context: Partial<SparqlContext> = {}):\n (Path & { prefixes: object }) | TermIri {\n const ast = this.parser.path(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n if (this.defaultContext.astFactory.isPathPure(ast)) {\n return {\n ...ast,\n prefixes: {},\n };\n }\n return ast;\n }\n}\n"]}
1
+ {"version":3,"file":"MinimalSparqlParser.js","sourceRoot":"","sources":["../../../lib/MinimalSparqlParser.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Localized } from '@traqula/core';\nimport { traqulaNewlineAlternative, TransformerObject, traqulaIndentation } from '@traqula/core';\nimport { AstFactory } from './astFactory.js';\nimport type { SparqlContext, SparqlGeneratorContext } from './sparql11HelperTypes.js';\nimport type { Path, TermIri } from './Sparql11types.js';\n\ninterface Parser<ParseRet> {\n queryOrUpdate: (input: string, context: SparqlContext) => ParseRet;\n path: (input: string, context: SparqlContext) => TermIri | Path;\n}\n\n/**\n * Create a complete {@link SparqlContext} by filling in default values for any missing fields.\n * @param context - Partial context to complete.\n * @returns A fully populated SparqlContext.\n */\nexport function completeParseContext(\n context: Partial<SparqlContext>,\n): SparqlContext {\n return {\n astFactory: context.astFactory ?? new AstFactory({ tracksSourceLocation: false }),\n baseIRI: context.baseIRI,\n prefixes: Object.assign(Object.create(null), context.prefixes),\n parseMode: context.parseMode ? new Set(context.parseMode) : new Set([ 'canParseVars', 'canCreateBlankNodes' ]),\n skipValidation: context.skipValidation ?? false,\n };\n}\n\n/**\n * Create a complete {@link SparqlGeneratorContext} by filling in default values for any missing fields.\n * @param context - Partial generator context to complete.\n * @returns A fully populated SparqlGeneratorContext.\n */\nexport function completeGeneratorContext(\n context: Partial<SparqlGeneratorContext & { offset?: number }>,\n): SparqlGeneratorContext & { offset?: number } {\n return {\n astFactory: context.astFactory ?? new AstFactory(),\n origSource: context.origSource ?? '',\n offset: context.offset,\n [traqulaIndentation]: context[traqulaIndentation] ?? 0,\n [traqulaNewlineAlternative]: context[traqulaNewlineAlternative] ?? ' ',\n indentInc: context.indentInc ?? 2,\n };\n}\n\n/**\n * Create a shallow copy of a parse/generator context so that mutations\n * (e.g. adding prefixes during parsing) do not affect the original.\n * @param context - The context to copy.\n * @returns A new context with cloned `prefixes` and `parseMode`.\n */\nexport function copyParseContext<T extends\nPartial<SparqlContext & SparqlGeneratorContext & { origSource: string; offset?: number }>>(\n context: T,\n): T {\n return {\n ...context,\n prefixes: Object.assign(Object.create(null), context.prefixes),\n parseMode: new Set(context.parseMode),\n };\n}\n\n/**\n * Base class for SPARQL parsers that provides {@link parse} and {@link parsePath} methods.\n * Engines typically extend this class to create pre-configured parser instances.\n * @typeParam ParseRet - The AST return type (e.g. `SparqlQuery`).\n */\nexport class MinimalSparqlParser<ParseRet extends Localized> {\n protected readonly defaultContext: SparqlContext;\n protected readonly coreTransformer = new TransformerObject();\n\n public constructor(protected readonly parser: Parser<ParseRet>, defaultContext: Partial<SparqlContext> = {}) {\n this.defaultContext = completeParseContext(defaultContext);\n }\n\n /**\n * Parse a query string starting from the\n * [QueryUnit](https://www.w3.org/TR/sparql11-query/#rQueryUnit)\n * or [QueryUpdate](https://www.w3.org/TR/sparql11-query/#rUpdateUnit) rules.\n * @param query\n * @param context\n */\n public parse(query: string, context: Partial<SparqlContext> = {}): ParseRet {\n const ast = this.parser.queryOrUpdate(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n return ast;\n }\n\n /**\n * Parse a query string starting from the [Path](https://www.w3.org/TR/sparql11-query/#rPath) grammar rule.\n * @param query\n * @param context\n */\n public parsePath(query: string, context: Partial<SparqlContext> = {}):\n (Path & { prefixes: object }) | TermIri {\n const ast = this.parser.path(query, copyParseContext({ ...this.defaultContext, ...context }));\n ast.loc = this.defaultContext.astFactory.sourceLocationInlinedSource(query, ast.loc, 0, Number.MAX_SAFE_INTEGER);\n if (this.defaultContext.astFactory.isPathPure(ast)) {\n return {\n ...ast,\n prefixes: Object.create(null),\n };\n }\n return ast;\n }\n}\n"]}
@@ -14,11 +14,11 @@ export declare const pathEltOrInverse: SparqlGrammarRule<'pathEltOrInverse', Pat
14
14
  /**
15
15
  * [[90]](https://www.w3.org/TR/sparql11-query/#rPathSequence)
16
16
  */
17
- export declare const pathSequence: SparqlGrammarRule<"pathSequence", import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | PathNegated | PathModified | import("../Sparql11types.js").PropertyPathChain>;
17
+ export declare const pathSequence: SparqlGrammarRule<"pathSequence", import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | import("../Sparql11types.js").PropertyPathChain | PathModified | PathNegated>;
18
18
  /**
19
19
  * [[89]](https://www.w3.org/TR/sparql11-query/#rPathAlternative)
20
20
  */
21
- export declare const pathAlternative: SparqlGrammarRule<"pathAlternative", import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | PathNegated | PathModified | import("../Sparql11types.js").PropertyPathChain>;
21
+ export declare const pathAlternative: SparqlGrammarRule<"pathAlternative", import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | import("../Sparql11types.js").PropertyPathChain | PathModified | PathNegated>;
22
22
  /**
23
23
  * [[91]](https://www.w3.org/TR/sparql11-query/#rPathElt)
24
24
  */
@@ -22,10 +22,10 @@ export declare const verbPath: SparqlGrammarRule<'verbPath', Path>;
22
22
  * [[85]](https://www.w3.org/TR/sparql11-query/#rVerbSimple)
23
23
  */
24
24
  export declare const verbSimple: SparqlGrammarRule<'verbSimple', TermVariable>;
25
- export declare const objectList: SparqlGrammarRule<"objectList", TripleNesting[], [GraphNode, import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | TermVariable | import("../Sparql11types.js").PathNegated | import("../Sparql11types.js").PathModified | import("../Sparql11types.js").PropertyPathChain]>;
26
- export declare const objectListPath: SparqlGrammarRule<"objectListPath", TripleNesting[], [GraphNode, import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | TermVariable | import("../Sparql11types.js").PathNegated | import("../Sparql11types.js").PathModified | import("../Sparql11types.js").PropertyPathChain]>;
27
- export declare const object: SparqlGrammarRule<"object", TripleNesting, [GraphNode, import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | TermVariable | import("../Sparql11types.js").PathNegated | import("../Sparql11types.js").PathModified | import("../Sparql11types.js").PropertyPathChain]>;
28
- export declare const objectPath: SparqlGrammarRule<"objectPath", TripleNesting, [GraphNode, import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | TermVariable | import("../Sparql11types.js").PathNegated | import("../Sparql11types.js").PathModified | import("../Sparql11types.js").PropertyPathChain]>;
25
+ export declare const objectList: SparqlGrammarRule<"objectList", TripleNesting[], [GraphNode, import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | TermVariable | import("../Sparql11types.js").PropertyPathChain | import("../Sparql11types.js").PathModified | import("../Sparql11types.js").PathNegated]>;
26
+ export declare const objectListPath: SparqlGrammarRule<"objectListPath", TripleNesting[], [GraphNode, import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | TermVariable | import("../Sparql11types.js").PropertyPathChain | import("../Sparql11types.js").PathModified | import("../Sparql11types.js").PathNegated]>;
27
+ export declare const object: SparqlGrammarRule<"object", TripleNesting, [GraphNode, import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | TermVariable | import("../Sparql11types.js").PropertyPathChain | import("../Sparql11types.js").PathModified | import("../Sparql11types.js").PathNegated]>;
28
+ export declare const objectPath: SparqlGrammarRule<"objectPath", TripleNesting, [GraphNode, import("../Sparql11types.js").TermIriFull | import("../Sparql11types.js").TermIriPrefixed | TermVariable | import("../Sparql11types.js").PropertyPathChain | import("../Sparql11types.js").PathModified | import("../Sparql11types.js").PathNegated]>;
29
29
  export declare const collection: SparqlRule<"collection", TripleCollectionList>;
30
30
  export declare const collectionPath: SparqlRule<"collectionPath", TripleCollectionList>;
31
31
  export declare const triplesNode: SparqlRule<"triplesNode", TripleCollection>;
@@ -305,7 +305,7 @@ export const inlineDataOneVar = {
305
305
  MANY(() => {
306
306
  const value = SUBRULE(dataBlockValue);
307
307
  ACTION(() => {
308
- res.push({ [varVal.value]: value });
308
+ res.push(Object.assign(Object.create(null), { [varVal.value]: value }));
309
309
  });
310
310
  });
311
311
  const close = CONSUME(l.symbols.RCurly);
@@ -327,7 +327,7 @@ export const inlineDataFull = {
327
327
  CONSUME1(l.symbols.LCurly);
328
328
  MANY1(() => {
329
329
  CONSUME2(l.terminals.nil);
330
- res.push({});
330
+ res.push(Object.create(null));
331
331
  });
332
332
  const close = CONSUME1(l.symbols.RCurly);
333
333
  return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(nil, close)));
@@ -341,7 +341,7 @@ export const inlineDataFull = {
341
341
  CONSUME2(l.symbols.LCurly);
342
342
  MANY3(() => {
343
343
  let parsedValues = 0;
344
- const currentRow = {};
344
+ const currentRow = Object.create(null);
345
345
  CONSUME2(l.symbols.LParen);
346
346
  MANY4(() => {
347
347
  ACTION(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"whereClause.js","sourceRoot":"","sources":["../../../../lib/grammar/whereClause.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RuleDefReturn, Wrap } from '@traqula/core';\nimport { traqulaIndentation } from '@traqula/core';\nimport * as l from '../lexer/index.js';\nimport type { SparqlGeneratorRule, SparqlGrammarRule, SparqlRule } from '../sparql11HelperTypes.js';\nimport type {\n Expression,\n ExpressionFunctionCall,\n Pattern,\n PatternBgp,\n PatternBind,\n PatternFilter,\n PatternGraph,\n PatternGroup,\n PatternMinus,\n PatternOptional,\n PatternService,\n PatternUnion,\n PatternValues,\n SubSelect,\n TermIri,\n TermLiteral,\n TermVariable,\n ValuePatternRow,\n} from '../Sparql11types.js';\nimport { checkNote13 } from '../validation/validators.js';\nimport { builtInCall } from './builtIn.js';\nimport { argList, brackettedExpression, expression } from './expression.js';\nimport { var_, varOrIri, varOrTerm } from './general.js';\nimport { booleanLiteral, iri, numericLiteral, rdfLiteral } from './literals.js';\nimport { query, subSelect } from './queryUnit.js';\nimport { graphNodePath, triplesBlock } from './tripleBlock.js';\n\n/**\n * [[17]](https://www.w3.org/TR/sparql11-query/#rWhereClause)\n */\nexport const whereClause: SparqlRule<'whereClause', Wrap<PatternGroup>> = <const> {\n name: 'whereClause',\n impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {\n const where = OPTION(() => CONSUME(l.where));\n const group = SUBRULE(groupGraphPattern);\n return ACTION(() => C.astFactory.wrap(group, C.astFactory.sourceLocation(where, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('WHERE'));\n SUBRULE(groupGraphPattern, ast.val);\n },\n};\n\n/**\n * [[53]](https://www.w3.org/TR/sparql11-query/#rGroupGraphPattern)\n */\nexport const groupGraphPattern: SparqlRule<'groupGraphPattern', PatternGroup> = <const> {\n name: 'groupGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {\n const open = CONSUME(l.symbols.LCurly);\n const patterns = OR<Pattern[]>([\n { ALT: () => [ SUBRULE(subSelect) ]},\n { ALT: () => SUBRULE(groupGraphPatternSub) },\n ]);\n const close = CONSUME(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternGroup(patterns, C.astFactory.sourceLocation(open, close)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {\n const { astFactory: F, indentInc } = C;\n F.printFilter(ast, () => {\n C[traqulaIndentation] += indentInc;\n PRINT_WORD('{');\n NEW_LINE();\n });\n\n for (const pattern of ast.patterns) {\n SUBRULE(generatePattern, pattern);\n }\n\n F.printFilter(ast, () => {\n C[traqulaIndentation] -= indentInc;\n PRINT_ON_OWN_LINE('}');\n });\n },\n};\n\nexport const generatePattern: SparqlGeneratorRule<'generatePattern', Pattern> = {\n name: 'generatePattern',\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n if (ast.type === 'query') {\n SUBRULE(query, F.querySelect({\n context: [],\n datasets: F.datasetClauses([], F.sourceLocation()),\n where: ast.where,\n variables: ast.variables,\n solutionModifiers: ast.solutionModifiers,\n values: ast.values,\n distinct: ast.distinct,\n reduced: ast.reduced,\n }, ast.loc));\n } else if (ast.subType === 'group') {\n SUBRULE(groupGraphPattern, ast);\n } else if (ast.subType === 'bgp') {\n SUBRULE(triplesBlock, ast);\n } else {\n SUBRULE(graphPatternNotTriples, ast);\n }\n },\n};\n\n/**\n * [[54]](https://www.w3.org/TR/sparql11-query/#rGroupGraphPatternSub)\n */\nexport const groupGraphPatternSub:\nSparqlGrammarRule<'groupGraphPatternSub', Pattern[]> = <const> {\n name: 'groupGraphPatternSub',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => (C) => {\n const patterns: Pattern[] = [];\n\n const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock));\n if (bgpPattern) {\n patterns.push(bgpPattern);\n }\n MANY(() => {\n const notTriples = SUBRULE(graphPatternNotTriples);\n patterns.push(notTriples);\n\n OPTION2(() => CONSUME(l.symbols.dot));\n\n const moreTriples = OPTION3(() => SUBRULE2(triplesBlock));\n if (moreTriples) {\n patterns.push(moreTriples);\n }\n });\n\n ACTION(() => !C.skipValidation && checkNote13(patterns));\n\n return patterns;\n },\n};\n\n/**\n * [[56]](https://www.w3.org/TR/sparql11-query/#rGraphPatternNotTriples)\n */\nexport const graphPatternNotTriples: SparqlRule<'graphPatternNotTriples', Exclude<Pattern, SubSelect | PatternBgp>> = {\n name: 'graphPatternNotTriples',\n impl: ({ SUBRULE, OR }) => () => OR<RuleDefReturn<typeof graphPatternNotTriples>>([\n { ALT: () => SUBRULE(groupOrUnionGraphPattern) },\n { ALT: () => SUBRULE(optionalGraphPattern) },\n { ALT: () => SUBRULE(minusGraphPattern) },\n { ALT: () => SUBRULE(graphGraphPattern) },\n { ALT: () => SUBRULE(serviceGraphPattern) },\n { ALT: () => SUBRULE(filter) },\n { ALT: () => SUBRULE(bind) },\n { ALT: () => SUBRULE(inlineData) },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n switch (ast.subType) {\n case 'group':\n case 'union':\n SUBRULE(groupOrUnionGraphPattern, ast);\n break;\n case 'optional':\n SUBRULE(optionalGraphPattern, ast);\n break;\n case 'minus':\n SUBRULE(minusGraphPattern, ast);\n break;\n case 'graph':\n SUBRULE(graphGraphPattern, ast);\n break;\n case 'service':\n SUBRULE(serviceGraphPattern, ast);\n break;\n case 'filter':\n SUBRULE(filter, ast);\n break;\n case 'bind':\n SUBRULE(bind, ast);\n break;\n case 'values':\n SUBRULE(inlineData, ast);\n break;\n }\n },\n};\n\n/**\n * [[57]](https://www.w3.org/TR/sparql11-query/#rOptionalGraphPattern)\n */\nexport const optionalGraphPattern: SparqlRule<'optionalGraphPattern', PatternOptional> = <const> {\n name: 'optionalGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const optional = CONSUME(l.optional);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternOptional(group.patterns, C.astFactory.sourceLocation(optional, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('OPTIONAL'));\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[58]](https://www.w3.org/TR/sparql11-query/#rGraphGraphPattern)\n */\nexport const graphGraphPattern: SparqlRule<'graphGraphPattern', PatternGraph> = <const> {\n name: 'graphGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const graph = CONSUME(l.graph.graph);\n const name = SUBRULE(varOrIri);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternGraph(name, group.patterns, C.astFactory.sourceLocation(graph, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('GRAPH'));\n SUBRULE(varOrTerm, ast.name);\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[59]](https://www.w3.org/TR/sparql11-query/#rServiceGraphPattern)\n */\nexport const serviceGraphPattern: SparqlRule<'serviceGraphPattern', PatternService> = <const> {\n name: 'serviceGraphPattern',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {\n const service = CONSUME(l.service);\n const silent = OPTION(() => {\n CONSUME(l.silent);\n return true;\n }) ?? false;\n const name = SUBRULE1(varOrIri);\n const group = SUBRULE1(groupGraphPattern);\n\n return ACTION(() =>\n C.astFactory.patternService(name, group.patterns, silent, C.astFactory.sourceLocation(service, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD('SERVICE');\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(varOrTerm, ast.name);\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[60]](https://www.w3.org/TR/sparql11-query/#rBind)\n */\nexport const bind: SparqlRule<'bind', PatternBind> = <const> {\n name: 'bind',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const bind = CONSUME(l.bind);\n CONSUME(l.symbols.LParen);\n const expressionVal = SUBRULE(expression);\n CONSUME(l.as);\n const variable = SUBRULE(var_);\n const close = CONSUME(l.symbols.RParen);\n\n return ACTION(() => C.astFactory.patternBind(expressionVal, variable, C.astFactory.sourceLocation(bind, close)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('BIND', '('));\n SUBRULE(expression, ast.expression);\n F.printFilter(ast, () => PRINT_WORD('AS'));\n SUBRULE(var_, ast.variable);\n F.printFilter(ast, () => {\n PRINT_WORD(')');\n NEW_LINE();\n });\n },\n};\n\n/**\n * [[61]](https://www.w3.org/TR/sparql11-query/#rInlineData)\n */\nexport const inlineData: SparqlRule<'inlineData', PatternValues> = <const> {\n name: 'inlineData',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const values = CONSUME(l.values);\n const datablock = SUBRULE(dataBlock);\n\n return ACTION(() => {\n datablock.loc = C.astFactory.sourceLocation(values, datablock);\n return datablock;\n });\n },\n gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {\n const { astFactory: F, indentInc } = C;\n const variables = ast.variables;\n const singleVar = variables.length === 1;\n F.printFilter(ast, () => {\n PRINT_ON_EMPTY('VALUES', singleVar ? '' : '( ');\n });\n for (const variable of variables) {\n F.printFilter(ast, () => PRINT_WORD(''));\n SUBRULE(varOrTerm, variable);\n F.printFilter(ast, () => PRINT_WORD(''));\n }\n F.printFilter(ast, () => {\n C[traqulaIndentation] += indentInc;\n PRINT_WORD(singleVar ? '' : ')', '{');\n NEW_LINE();\n });\n\n for (const mapping of ast.values) {\n F.printFilter(ast, () => !singleVar && PRINT_WORD('('));\n for (const variable of variables) {\n const var_ = variable.value;\n if (mapping[var_] === undefined) {\n F.printFilter(ast, () => PRINT_WORD('UNDEF'));\n } else {\n SUBRULE(graphNodePath, mapping[var_]);\n F.printFilter(ast, () => PRINT_WORD(''));\n }\n }\n F.printFilter(ast, () => {\n PRINT_WORD(singleVar ? '' : ')');\n NEW_LINE();\n });\n }\n F.printFilter(ast, () => {\n C[traqulaIndentation] -= indentInc;\n PRINT_ON_OWN_LINE('}');\n });\n },\n};\n\n/**\n * [[62]](https://www.w3.org/TR/sparql11-query/#rDataBlock)\n */\nexport const dataBlock: SparqlGrammarRule<'dataBlock', PatternValues> = <const> {\n name: 'dataBlock',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(inlineDataOneVar) },\n { ALT: () => SUBRULE(inlineDataFull) },\n ]),\n};\n\n/**\n * [[63]](https://www.w3.org/TR/sparql11-query/#rInlineDataOneVar)\n */\nexport const inlineDataOneVar: SparqlGrammarRule<'inlineDataOneVar', PatternValues> = <const> {\n name: 'inlineDataOneVar',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {\n const res: ValuePatternRow[] = [];\n const varVal = SUBRULE(var_);\n CONSUME(l.symbols.LCurly);\n MANY(() => {\n const value = SUBRULE(dataBlockValue);\n ACTION(() => {\n res.push({ [varVal.value]: value });\n });\n });\n const close = CONSUME(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternValues([ varVal ], res, C.astFactory.sourceLocation(varVal, close)));\n },\n};\n\n/**\n * [[64]](https://www.w3.org/TR/sparql11-query/#rInlineDataFull)\n */\nexport const inlineDataFull: SparqlGrammarRule<'inlineDataFull', PatternValues> = <const> {\n name: 'inlineDataFull',\n impl: ({\n ACTION,\n OR,\n MANY1,\n MANY2,\n MANY3,\n MANY4,\n SUBRULE,\n CONSUME1,\n CONSUME2,\n }) => (C) => {\n const res: ValuePatternRow[] = [];\n const vars: TermVariable[] = [];\n return OR<RuleDefReturn<typeof inlineDataFull>>([\n { ALT: () => {\n // Grammar rule 64 together with note 11 learns us that a nil should be followed by a nil in DataBlock.\n const nil = CONSUME1(l.terminals.nil);\n CONSUME1(l.symbols.LCurly);\n MANY1(() => {\n CONSUME2(l.terminals.nil);\n res.push({});\n });\n const close = CONSUME1(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(nil, close)));\n } },\n { ALT: () => {\n const open = CONSUME1(l.symbols.LParen);\n MANY2(() => {\n vars.push(SUBRULE(var_));\n });\n CONSUME1(l.symbols.RParen);\n CONSUME2(l.symbols.LCurly);\n MANY3(() => {\n let parsedValues = 0;\n const currentRow: ValuePatternRow = {};\n CONSUME2(l.symbols.LParen);\n MANY4(() => {\n ACTION(() => {\n if (!C.skipValidation && parsedValues >= vars.length) {\n throw new Error('Number of dataBlockValues does not match number of variables. Too much values.');\n }\n });\n const value = SUBRULE(dataBlockValue);\n ACTION(() => {\n currentRow[vars[parsedValues].value] = value;\n parsedValues++;\n });\n });\n CONSUME2(l.symbols.RParen);\n ACTION(() => {\n res.push(currentRow);\n if (!C.skipValidation && vars.length !== parsedValues) {\n throw new Error('Number of dataBlockValues does not match number of variables. Too few values.');\n }\n });\n });\n const close = CONSUME2(l.symbols.RCurly);\n return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(open, close)));\n } },\n ]);\n },\n};\n\n/**\n * [[65]](https://www.w3.org/TR/sparql11-query/#rDataBlockValue)\n */\nexport const dataBlockValue: SparqlGrammarRule<'dataBlockValue', TermIri | TermLiteral | undefined> = {\n name: 'dataBlockValue',\n impl: ({ SUBRULE, CONSUME, OR }) => () => OR<RuleDefReturn<typeof dataBlockValue>>([\n { ALT: () => SUBRULE(iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(numericLiteral) },\n { ALT: () => SUBRULE(booleanLiteral) },\n { ALT: () => {\n CONSUME(l.undef);\n // eslint-disable-next-line unicorn/no-useless-undefined\n return undefined;\n } },\n ]),\n};\n\n/**\n * [[66]](https://www.w3.org/TR/sparql11-query/#rMinusGraphPattern)\n */\nexport const minusGraphPattern: SparqlRule<'minusGraphPattern', PatternMinus> = <const> {\n name: 'minusGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const minus = CONSUME(l.minus);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternMinus(group.patterns, C.astFactory.sourceLocation(minus, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('MINUS'));\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[67]](https://www.w3.org/TR/sparql11-query/#rGroupOrUnionGraphPattern)\n */\nexport const groupOrUnionGraphPattern: SparqlRule<'groupOrUnionGraphPattern', PatternGroup | PatternUnion> =\n <const> {\n name: 'groupOrUnionGraphPattern',\n impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {\n const groups: PatternGroup[] = [];\n\n const group = SUBRULE1(groupGraphPattern);\n groups.push(group);\n MANY(() => {\n CONSUME(l.union);\n const group = SUBRULE2(groupGraphPattern);\n groups.push(group);\n });\n\n return ACTION(() => groups.length === 1 ?\n groups[0] :\n C.astFactory.patternUnion(\n groups,\n C.astFactory.sourceLocation(group, groups.at(-1)),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n if (F.isPatternUnion(ast)) {\n const [ head, ...tail ] = ast.patterns;\n SUBRULE(groupGraphPattern, head);\n for (const pattern of tail) {\n F.printFilter(ast, () => PRINT_WORD('UNION'));\n SUBRULE(groupGraphPattern, pattern);\n }\n } else {\n SUBRULE(groupGraphPattern, ast);\n }\n },\n };\n\n/**\n * [[68]](https://www.w3.org/TR/sparql11-query/#rFilter)\n */\nexport const filter: SparqlRule<'filter', PatternFilter> = <const> {\n name: 'filter',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const filterToken = CONSUME(l.filter);\n const expression = SUBRULE(constraint);\n\n return ACTION(() => C.astFactory.patternFilter(expression, C.astFactory.sourceLocation(filterToken, expression)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('FILTER ('));\n SUBRULE(expression, ast.expression);\n F.printFilter(ast, () => {\n PRINT_WORD(')');\n NEW_LINE();\n });\n },\n};\n\n/**\n * [[69]](https://www.w3.org/TR/sparql11-query/#rConstraint)\n */\nexport const constraint: SparqlGrammarRule<'constraint', Expression> = <const> {\n name: 'constraint',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(brackettedExpression) },\n { ALT: () => SUBRULE(builtInCall) },\n { ALT: () => SUBRULE(functionCall) },\n ]),\n};\n\n/**\n * [[70]](https://www.w3.org/TR/sparql11-query/#rFunctionCall)\n */\nexport const functionCall: SparqlGrammarRule<'functionCall', ExpressionFunctionCall> = <const> {\n name: 'functionCall',\n impl: ({ ACTION, SUBRULE }) => (C) => {\n const func = SUBRULE(iri);\n const args = SUBRULE(argList);\n return ACTION(() => C.astFactory.expressionFunctionCall(\n func,\n args.val.args,\n args.val.distinct,\n C.astFactory.sourceLocation(func, args),\n ));\n },\n};\n"]}
1
+ {"version":3,"file":"whereClause.js","sourceRoot":"","sources":["../../../../lib/grammar/whereClause.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RuleDefReturn, Wrap } from '@traqula/core';\nimport { traqulaIndentation } from '@traqula/core';\nimport * as l from '../lexer/index.js';\nimport type { SparqlGeneratorRule, SparqlGrammarRule, SparqlRule } from '../sparql11HelperTypes.js';\nimport type {\n Expression,\n ExpressionFunctionCall,\n Pattern,\n PatternBgp,\n PatternBind,\n PatternFilter,\n PatternGraph,\n PatternGroup,\n PatternMinus,\n PatternOptional,\n PatternService,\n PatternUnion,\n PatternValues,\n SubSelect,\n TermIri,\n TermLiteral,\n TermVariable,\n ValuePatternRow,\n} from '../Sparql11types.js';\nimport { checkNote13 } from '../validation/validators.js';\nimport { builtInCall } from './builtIn.js';\nimport { argList, brackettedExpression, expression } from './expression.js';\nimport { var_, varOrIri, varOrTerm } from './general.js';\nimport { booleanLiteral, iri, numericLiteral, rdfLiteral } from './literals.js';\nimport { query, subSelect } from './queryUnit.js';\nimport { graphNodePath, triplesBlock } from './tripleBlock.js';\n\n/**\n * [[17]](https://www.w3.org/TR/sparql11-query/#rWhereClause)\n */\nexport const whereClause: SparqlRule<'whereClause', Wrap<PatternGroup>> = <const> {\n name: 'whereClause',\n impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {\n const where = OPTION(() => CONSUME(l.where));\n const group = SUBRULE(groupGraphPattern);\n return ACTION(() => C.astFactory.wrap(group, C.astFactory.sourceLocation(where, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('WHERE'));\n SUBRULE(groupGraphPattern, ast.val);\n },\n};\n\n/**\n * [[53]](https://www.w3.org/TR/sparql11-query/#rGroupGraphPattern)\n */\nexport const groupGraphPattern: SparqlRule<'groupGraphPattern', PatternGroup> = <const> {\n name: 'groupGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {\n const open = CONSUME(l.symbols.LCurly);\n const patterns = OR<Pattern[]>([\n { ALT: () => [ SUBRULE(subSelect) ]},\n { ALT: () => SUBRULE(groupGraphPatternSub) },\n ]);\n const close = CONSUME(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternGroup(patterns, C.astFactory.sourceLocation(open, close)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {\n const { astFactory: F, indentInc } = C;\n F.printFilter(ast, () => {\n C[traqulaIndentation] += indentInc;\n PRINT_WORD('{');\n NEW_LINE();\n });\n\n for (const pattern of ast.patterns) {\n SUBRULE(generatePattern, pattern);\n }\n\n F.printFilter(ast, () => {\n C[traqulaIndentation] -= indentInc;\n PRINT_ON_OWN_LINE('}');\n });\n },\n};\n\nexport const generatePattern: SparqlGeneratorRule<'generatePattern', Pattern> = {\n name: 'generatePattern',\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n if (ast.type === 'query') {\n SUBRULE(query, F.querySelect({\n context: [],\n datasets: F.datasetClauses([], F.sourceLocation()),\n where: ast.where,\n variables: ast.variables,\n solutionModifiers: ast.solutionModifiers,\n values: ast.values,\n distinct: ast.distinct,\n reduced: ast.reduced,\n }, ast.loc));\n } else if (ast.subType === 'group') {\n SUBRULE(groupGraphPattern, ast);\n } else if (ast.subType === 'bgp') {\n SUBRULE(triplesBlock, ast);\n } else {\n SUBRULE(graphPatternNotTriples, ast);\n }\n },\n};\n\n/**\n * [[54]](https://www.w3.org/TR/sparql11-query/#rGroupGraphPatternSub)\n */\nexport const groupGraphPatternSub:\nSparqlGrammarRule<'groupGraphPatternSub', Pattern[]> = <const> {\n name: 'groupGraphPatternSub',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => (C) => {\n const patterns: Pattern[] = [];\n\n const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock));\n if (bgpPattern) {\n patterns.push(bgpPattern);\n }\n MANY(() => {\n const notTriples = SUBRULE(graphPatternNotTriples);\n patterns.push(notTriples);\n\n OPTION2(() => CONSUME(l.symbols.dot));\n\n const moreTriples = OPTION3(() => SUBRULE2(triplesBlock));\n if (moreTriples) {\n patterns.push(moreTriples);\n }\n });\n\n ACTION(() => !C.skipValidation && checkNote13(patterns));\n\n return patterns;\n },\n};\n\n/**\n * [[56]](https://www.w3.org/TR/sparql11-query/#rGraphPatternNotTriples)\n */\nexport const graphPatternNotTriples: SparqlRule<'graphPatternNotTriples', Exclude<Pattern, SubSelect | PatternBgp>> = {\n name: 'graphPatternNotTriples',\n impl: ({ SUBRULE, OR }) => () => OR<RuleDefReturn<typeof graphPatternNotTriples>>([\n { ALT: () => SUBRULE(groupOrUnionGraphPattern) },\n { ALT: () => SUBRULE(optionalGraphPattern) },\n { ALT: () => SUBRULE(minusGraphPattern) },\n { ALT: () => SUBRULE(graphGraphPattern) },\n { ALT: () => SUBRULE(serviceGraphPattern) },\n { ALT: () => SUBRULE(filter) },\n { ALT: () => SUBRULE(bind) },\n { ALT: () => SUBRULE(inlineData) },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n switch (ast.subType) {\n case 'group':\n case 'union':\n SUBRULE(groupOrUnionGraphPattern, ast);\n break;\n case 'optional':\n SUBRULE(optionalGraphPattern, ast);\n break;\n case 'minus':\n SUBRULE(minusGraphPattern, ast);\n break;\n case 'graph':\n SUBRULE(graphGraphPattern, ast);\n break;\n case 'service':\n SUBRULE(serviceGraphPattern, ast);\n break;\n case 'filter':\n SUBRULE(filter, ast);\n break;\n case 'bind':\n SUBRULE(bind, ast);\n break;\n case 'values':\n SUBRULE(inlineData, ast);\n break;\n }\n },\n};\n\n/**\n * [[57]](https://www.w3.org/TR/sparql11-query/#rOptionalGraphPattern)\n */\nexport const optionalGraphPattern: SparqlRule<'optionalGraphPattern', PatternOptional> = <const> {\n name: 'optionalGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const optional = CONSUME(l.optional);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternOptional(group.patterns, C.astFactory.sourceLocation(optional, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('OPTIONAL'));\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[58]](https://www.w3.org/TR/sparql11-query/#rGraphGraphPattern)\n */\nexport const graphGraphPattern: SparqlRule<'graphGraphPattern', PatternGraph> = <const> {\n name: 'graphGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const graph = CONSUME(l.graph.graph);\n const name = SUBRULE(varOrIri);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternGraph(name, group.patterns, C.astFactory.sourceLocation(graph, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('GRAPH'));\n SUBRULE(varOrTerm, ast.name);\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[59]](https://www.w3.org/TR/sparql11-query/#rServiceGraphPattern)\n */\nexport const serviceGraphPattern: SparqlRule<'serviceGraphPattern', PatternService> = <const> {\n name: 'serviceGraphPattern',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {\n const service = CONSUME(l.service);\n const silent = OPTION(() => {\n CONSUME(l.silent);\n return true;\n }) ?? false;\n const name = SUBRULE1(varOrIri);\n const group = SUBRULE1(groupGraphPattern);\n\n return ACTION(() =>\n C.astFactory.patternService(name, group.patterns, silent, C.astFactory.sourceLocation(service, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD('SERVICE');\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(varOrTerm, ast.name);\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[60]](https://www.w3.org/TR/sparql11-query/#rBind)\n */\nexport const bind: SparqlRule<'bind', PatternBind> = <const> {\n name: 'bind',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const bind = CONSUME(l.bind);\n CONSUME(l.symbols.LParen);\n const expressionVal = SUBRULE(expression);\n CONSUME(l.as);\n const variable = SUBRULE(var_);\n const close = CONSUME(l.symbols.RParen);\n\n return ACTION(() => C.astFactory.patternBind(expressionVal, variable, C.astFactory.sourceLocation(bind, close)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('BIND', '('));\n SUBRULE(expression, ast.expression);\n F.printFilter(ast, () => PRINT_WORD('AS'));\n SUBRULE(var_, ast.variable);\n F.printFilter(ast, () => {\n PRINT_WORD(')');\n NEW_LINE();\n });\n },\n};\n\n/**\n * [[61]](https://www.w3.org/TR/sparql11-query/#rInlineData)\n */\nexport const inlineData: SparqlRule<'inlineData', PatternValues> = <const> {\n name: 'inlineData',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const values = CONSUME(l.values);\n const datablock = SUBRULE(dataBlock);\n\n return ACTION(() => {\n datablock.loc = C.astFactory.sourceLocation(values, datablock);\n return datablock;\n });\n },\n gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {\n const { astFactory: F, indentInc } = C;\n const variables = ast.variables;\n const singleVar = variables.length === 1;\n F.printFilter(ast, () => {\n PRINT_ON_EMPTY('VALUES', singleVar ? '' : '( ');\n });\n for (const variable of variables) {\n F.printFilter(ast, () => PRINT_WORD(''));\n SUBRULE(varOrTerm, variable);\n F.printFilter(ast, () => PRINT_WORD(''));\n }\n F.printFilter(ast, () => {\n C[traqulaIndentation] += indentInc;\n PRINT_WORD(singleVar ? '' : ')', '{');\n NEW_LINE();\n });\n\n for (const mapping of ast.values) {\n F.printFilter(ast, () => !singleVar && PRINT_WORD('('));\n for (const variable of variables) {\n const var_ = variable.value;\n if (mapping[var_] === undefined) {\n F.printFilter(ast, () => PRINT_WORD('UNDEF'));\n } else {\n SUBRULE(graphNodePath, mapping[var_]);\n F.printFilter(ast, () => PRINT_WORD(''));\n }\n }\n F.printFilter(ast, () => {\n PRINT_WORD(singleVar ? '' : ')');\n NEW_LINE();\n });\n }\n F.printFilter(ast, () => {\n C[traqulaIndentation] -= indentInc;\n PRINT_ON_OWN_LINE('}');\n });\n },\n};\n\n/**\n * [[62]](https://www.w3.org/TR/sparql11-query/#rDataBlock)\n */\nexport const dataBlock: SparqlGrammarRule<'dataBlock', PatternValues> = <const> {\n name: 'dataBlock',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(inlineDataOneVar) },\n { ALT: () => SUBRULE(inlineDataFull) },\n ]),\n};\n\n/**\n * [[63]](https://www.w3.org/TR/sparql11-query/#rInlineDataOneVar)\n */\nexport const inlineDataOneVar: SparqlGrammarRule<'inlineDataOneVar', PatternValues> = <const> {\n name: 'inlineDataOneVar',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {\n const res: ValuePatternRow[] = [];\n const varVal = SUBRULE(var_);\n CONSUME(l.symbols.LCurly);\n MANY(() => {\n const value = SUBRULE(dataBlockValue);\n ACTION(() => {\n res.push(Object.assign(Object.create(null), { [varVal.value]: value }));\n });\n });\n const close = CONSUME(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternValues([ varVal ], res, C.astFactory.sourceLocation(varVal, close)));\n },\n};\n\n/**\n * [[64]](https://www.w3.org/TR/sparql11-query/#rInlineDataFull)\n */\nexport const inlineDataFull: SparqlGrammarRule<'inlineDataFull', PatternValues> = <const> {\n name: 'inlineDataFull',\n impl: ({\n ACTION,\n OR,\n MANY1,\n MANY2,\n MANY3,\n MANY4,\n SUBRULE,\n CONSUME1,\n CONSUME2,\n }) => (C) => {\n const res: ValuePatternRow[] = [];\n const vars: TermVariable[] = [];\n return OR<RuleDefReturn<typeof inlineDataFull>>([\n { ALT: () => {\n // Grammar rule 64 together with note 11 learns us that a nil should be followed by a nil in DataBlock.\n const nil = CONSUME1(l.terminals.nil);\n CONSUME1(l.symbols.LCurly);\n MANY1(() => {\n CONSUME2(l.terminals.nil);\n res.push(Object.create(null));\n });\n const close = CONSUME1(l.symbols.RCurly);\n\n return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(nil, close)));\n } },\n { ALT: () => {\n const open = CONSUME1(l.symbols.LParen);\n MANY2(() => {\n vars.push(SUBRULE(var_));\n });\n CONSUME1(l.symbols.RParen);\n CONSUME2(l.symbols.LCurly);\n MANY3(() => {\n let parsedValues = 0;\n const currentRow: ValuePatternRow = Object.create(null);\n CONSUME2(l.symbols.LParen);\n MANY4(() => {\n ACTION(() => {\n if (!C.skipValidation && parsedValues >= vars.length) {\n throw new Error('Number of dataBlockValues does not match number of variables. Too much values.');\n }\n });\n const value = SUBRULE(dataBlockValue);\n ACTION(() => {\n currentRow[vars[parsedValues].value] = value;\n parsedValues++;\n });\n });\n CONSUME2(l.symbols.RParen);\n ACTION(() => {\n res.push(currentRow);\n if (!C.skipValidation && vars.length !== parsedValues) {\n throw new Error('Number of dataBlockValues does not match number of variables. Too few values.');\n }\n });\n });\n const close = CONSUME2(l.symbols.RCurly);\n return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(open, close)));\n } },\n ]);\n },\n};\n\n/**\n * [[65]](https://www.w3.org/TR/sparql11-query/#rDataBlockValue)\n */\nexport const dataBlockValue: SparqlGrammarRule<'dataBlockValue', TermIri | TermLiteral | undefined> = {\n name: 'dataBlockValue',\n impl: ({ SUBRULE, CONSUME, OR }) => () => OR<RuleDefReturn<typeof dataBlockValue>>([\n { ALT: () => SUBRULE(iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(numericLiteral) },\n { ALT: () => SUBRULE(booleanLiteral) },\n { ALT: () => {\n CONSUME(l.undef);\n // eslint-disable-next-line unicorn/no-useless-undefined\n return undefined;\n } },\n ]),\n};\n\n/**\n * [[66]](https://www.w3.org/TR/sparql11-query/#rMinusGraphPattern)\n */\nexport const minusGraphPattern: SparqlRule<'minusGraphPattern', PatternMinus> = <const> {\n name: 'minusGraphPattern',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const minus = CONSUME(l.minus);\n const group = SUBRULE(groupGraphPattern);\n\n return ACTION(() => C.astFactory.patternMinus(group.patterns, C.astFactory.sourceLocation(minus, group)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('MINUS'));\n SUBRULE(groupGraphPattern, F.patternGroup(ast.patterns, ast.loc));\n },\n};\n\n/**\n * [[67]](https://www.w3.org/TR/sparql11-query/#rGroupOrUnionGraphPattern)\n */\nexport const groupOrUnionGraphPattern: SparqlRule<'groupOrUnionGraphPattern', PatternGroup | PatternUnion> =\n <const> {\n name: 'groupOrUnionGraphPattern',\n impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {\n const groups: PatternGroup[] = [];\n\n const group = SUBRULE1(groupGraphPattern);\n groups.push(group);\n MANY(() => {\n CONSUME(l.union);\n const group = SUBRULE2(groupGraphPattern);\n groups.push(group);\n });\n\n return ACTION(() => groups.length === 1 ?\n groups[0] :\n C.astFactory.patternUnion(\n groups,\n C.astFactory.sourceLocation(group, groups.at(-1)),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F }) => {\n if (F.isPatternUnion(ast)) {\n const [ head, ...tail ] = ast.patterns;\n SUBRULE(groupGraphPattern, head);\n for (const pattern of tail) {\n F.printFilter(ast, () => PRINT_WORD('UNION'));\n SUBRULE(groupGraphPattern, pattern);\n }\n } else {\n SUBRULE(groupGraphPattern, ast);\n }\n },\n };\n\n/**\n * [[68]](https://www.w3.org/TR/sparql11-query/#rFilter)\n */\nexport const filter: SparqlRule<'filter', PatternFilter> = <const> {\n name: 'filter',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const filterToken = CONSUME(l.filter);\n const expression = SUBRULE(constraint);\n\n return ACTION(() => C.astFactory.patternFilter(expression, C.astFactory.sourceLocation(filterToken, expression)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE }) => (ast, { astFactory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('FILTER ('));\n SUBRULE(expression, ast.expression);\n F.printFilter(ast, () => {\n PRINT_WORD(')');\n NEW_LINE();\n });\n },\n};\n\n/**\n * [[69]](https://www.w3.org/TR/sparql11-query/#rConstraint)\n */\nexport const constraint: SparqlGrammarRule<'constraint', Expression> = <const> {\n name: 'constraint',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(brackettedExpression) },\n { ALT: () => SUBRULE(builtInCall) },\n { ALT: () => SUBRULE(functionCall) },\n ]),\n};\n\n/**\n * [[70]](https://www.w3.org/TR/sparql11-query/#rFunctionCall)\n */\nexport const functionCall: SparqlGrammarRule<'functionCall', ExpressionFunctionCall> = <const> {\n name: 'functionCall',\n impl: ({ ACTION, SUBRULE }) => (C) => {\n const func = SUBRULE(iri);\n const args = SUBRULE(argList);\n return ACTION(() => C.astFactory.expressionFunctionCall(\n func,\n args.val.args,\n args.val.distinct,\n C.astFactory.sourceLocation(func, args),\n ));\n },\n};\n"]}
@@ -3,4 +3,4 @@ export declare const named: import("@traqula/core").NamedToken<"NamedGraph">;
3
3
  export declare const default_: import("@traqula/core").NamedToken<"DefaultGraph">;
4
4
  export declare const graph: import("@traqula/core").NamedToken<"Graph">;
5
5
  export declare const graphAll: import("@traqula/core").NamedToken<"GraphAll">;
6
- export declare const allGraphTokens: LexerBuilder<"Graph" | "DefaultGraph" | "NamedGraph" | "GraphAll">;
6
+ export declare const allGraphTokens: LexerBuilder<"NamedGraph" | "DefaultGraph" | "Graph" | "GraphAll">;
@@ -49,8 +49,8 @@ export declare const false_: import("@traqula/core").NamedToken<"False">;
49
49
  export declare const in_: import("@traqula/core").NamedToken<"In">;
50
50
  export declare const notIn: import("@traqula/core").NamedToken<"NotIn">;
51
51
  export declare const separator: import("@traqula/core").NamedToken<"Separator">;
52
- export declare const allBaseTokens: LexerBuilder<"a" | "Clear" | "Drop" | "Add" | "Copy" | "Move" | "InsertDataClause" | "DeleteDataClause" | "DeleteWhereClause" | "Silent" | "UsingClause" | "Load" | "LoadInto" | "Create" | "To" | "Where" | "ModifyWith" | "DeleteClause" | "InsertClause" | "From" | "Select" | "Distinct" | "Reduced" | "Construct" | "Describe" | "Ask" | "As" | "Optional" | "Service" | "Bind" | "Values" | "Undef" | "Minus" | "Filter" | "Union" | "BaseDecl" | "PrefixDecl" | "GroupByGroup" | "By" | "Having" | "Order" | "OrderAsc" | "OrderDesc" | "Limit" | "Offset" | "True" | "False" | "In" | "NotIn" | "Separator">;
52
+ export declare const allBaseTokens: LexerBuilder<"BaseDecl" | "PrefixDecl" | "Select" | "Distinct" | "Reduced" | "As" | "Construct" | "Describe" | "Ask" | "From" | "Where" | "GroupByGroup" | "By" | "Having" | "Order" | "OrderAsc" | "OrderDesc" | "Limit" | "Offset" | "Values" | "Load" | "Silent" | "LoadInto" | "Clear" | "Drop" | "Create" | "Add" | "To" | "Move" | "Copy" | "ModifyWith" | "DeleteDataClause" | "DeleteWhereClause" | "DeleteClause" | "InsertDataClause" | "InsertClause" | "UsingClause" | "Optional" | "Service" | "Bind" | "Undef" | "Minus" | "Union" | "Filter" | "a" | "True" | "False" | "In" | "NotIn" | "Separator">;
53
53
  /**
54
54
  * [!!!ORDER MATTERS!!!](https://chevrotain.io/docs/tutorial/step1_lexing.html#creating-the-lexer)
55
55
  */
56
- export declare const sparql11LexerBuilder: LexerBuilder<"a" | "Semi" | "Clear" | "Drop" | "Add" | "Copy" | "Move" | "InsertDataClause" | "DeleteDataClause" | "DeleteWhereClause" | "Silent" | "UsingClause" | "Graph" | "Load" | "LoadInto" | "Create" | "To" | "LCurly" | "RCurly" | "Where" | "ModifyWith" | "DeleteClause" | "InsertClause" | "DefaultGraph" | "NamedGraph" | "GraphAll" | "Dot" | "From" | "Select" | "Star" | "Distinct" | "Reduced" | "Construct" | "Describe" | "Ask" | "LParen" | "As" | "RParen" | "Optional" | "Service" | "Bind" | "Values" | "Nil" | "Undef" | "Minus" | "Filter" | "Union" | "BuiltInStr" | "BuiltInLang" | "BuiltInLangmatches" | "BuiltInDatatype" | "BuiltInBound" | "BuiltInIri" | "BuiltInUri" | "BuiltInBnode" | "BuiltInRand" | "BuiltInAbs" | "BuiltInCeil" | "BuiltInFloor" | "BuiltInRound" | "BuiltInConcat" | "BuiltInStrlen" | "BuiltInUcase" | "BuiltInLcase" | "BuiltInEncode_for_uri" | "BuiltInContains" | "BuiltInStrstarts" | "BuiltInStrends" | "BuiltInStrbefore" | "BuiltInStrafter" | "BuiltInYear" | "BuiltInMonth" | "BuiltInDay" | "BuiltInHours" | "BuiltInMinutes" | "BuiltInSeconds" | "BuiltInTimezone" | "BuiltInTz" | "BuiltInNow" | "BuiltInUuid" | "BuiltInStruuid" | "BuiltInMd5" | "BuiltInSha1" | "BuiltInSha256" | "BuiltInSha384" | "BuiltInSha512" | "BuiltInCoalesce" | "BuiltInIf" | "BuiltInStrlang" | "BuiltInStrdt" | "BuiltInSameterm" | "BuiltInIsiri" | "BuiltInIsuri" | "BuiltInIsblank" | "BuiltInIsliteral" | "BuiltInIsnumeric" | "BuiltInRegex" | "BuiltInSubstr" | "BuiltInReplace" | "BuiltInExists" | "BuiltInNotexists" | "BuiltInCount" | "BuiltInSum" | "BuiltInMin" | "BuiltInMax" | "BuiltInAvg" | "BuiltInSample" | "BuiltInGroup_concat" | "Comma" | "LSquare" | "RSquare" | "Pipe" | "Slash" | "Hat" | "Question" | "OpPlus" | "OpMinus" | "Exclamation" | "LogicAnd" | "LogicOr" | "Equal" | "NotEqual" | "LessThan" | "GreaterThan" | "LessThanEqual" | "GreaterThanEqual" | "Hathat" | "IriRef" | "PNameLn" | "PNameNs" | "BlankNodeLabel" | "Var1" | "Var2" | "LangTag" | "Integer" | "Decimal" | "Double" | "IntegerPositive" | "DecimalPositive" | "DoublePositive" | "IntegerNegative" | "DecimalNegative" | "DoubleNegative" | "StringLiteral1" | "StringLiteral2" | "StringLiteralLong1" | "StringLiteralLong2" | "Ws" | "Comment" | "Anon" | "BaseDecl" | "PrefixDecl" | "GroupByGroup" | "By" | "Having" | "Order" | "OrderAsc" | "OrderDesc" | "Limit" | "Offset" | "True" | "False" | "In" | "NotIn" | "Separator">;
56
+ export declare const sparql11LexerBuilder: LexerBuilder<"BuiltInStr" | "BuiltInLang" | "BuiltInLangmatches" | "BuiltInDatatype" | "BuiltInBound" | "BuiltInIri" | "BuiltInUri" | "BuiltInBnode" | "BuiltInRand" | "BuiltInAbs" | "BuiltInCeil" | "BuiltInFloor" | "BuiltInRound" | "BuiltInConcat" | "BuiltInStrlen" | "BuiltInUcase" | "BuiltInLcase" | "BuiltInEncode_for_uri" | "BuiltInContains" | "BuiltInStrstarts" | "BuiltInStrends" | "BuiltInStrbefore" | "BuiltInStrafter" | "BuiltInYear" | "BuiltInMonth" | "BuiltInDay" | "BuiltInHours" | "BuiltInMinutes" | "BuiltInSeconds" | "BuiltInTimezone" | "BuiltInTz" | "BuiltInNow" | "BuiltInUuid" | "BuiltInStruuid" | "BuiltInMd5" | "BuiltInSha1" | "BuiltInSha256" | "BuiltInSha384" | "BuiltInSha512" | "BuiltInCoalesce" | "BuiltInIf" | "BuiltInStrlang" | "BuiltInStrdt" | "BuiltInSameterm" | "BuiltInIsiri" | "BuiltInIsuri" | "BuiltInIsblank" | "BuiltInIsliteral" | "BuiltInIsnumeric" | "BuiltInRegex" | "BuiltInSubstr" | "BuiltInReplace" | "BuiltInExists" | "BuiltInNotexists" | "BuiltInCount" | "BuiltInSum" | "BuiltInMin" | "BuiltInMax" | "BuiltInAvg" | "BuiltInSample" | "BuiltInGroup_concat" | "NamedGraph" | "DefaultGraph" | "Graph" | "GraphAll" | "LCurly" | "RCurly" | "Dot" | "Comma" | "Semi" | "LParen" | "RParen" | "LSquare" | "RSquare" | "Pipe" | "Slash" | "Hat" | "Question" | "Star" | "OpPlus" | "OpMinus" | "Exclamation" | "LogicAnd" | "LogicOr" | "Equal" | "NotEqual" | "LessThan" | "GreaterThan" | "LessThanEqual" | "GreaterThanEqual" | "Hathat" | "IriRef" | "PNameLn" | "PNameNs" | "BlankNodeLabel" | "Var1" | "Var2" | "LangTag" | "Integer" | "Decimal" | "Double" | "IntegerPositive" | "DecimalPositive" | "DoublePositive" | "IntegerNegative" | "DecimalNegative" | "DoubleNegative" | "StringLiteral1" | "StringLiteral2" | "StringLiteralLong1" | "StringLiteralLong2" | "Ws" | "Comment" | "Nil" | "Anon" | "BaseDecl" | "PrefixDecl" | "Select" | "Distinct" | "Reduced" | "As" | "Construct" | "Describe" | "Ask" | "From" | "Where" | "GroupByGroup" | "By" | "Having" | "Order" | "OrderAsc" | "OrderDesc" | "Limit" | "Offset" | "Values" | "Load" | "Silent" | "LoadInto" | "Clear" | "Drop" | "Create" | "Add" | "To" | "Move" | "Copy" | "ModifyWith" | "DeleteDataClause" | "DeleteWhereClause" | "DeleteClause" | "InsertDataClause" | "InsertClause" | "UsingClause" | "Optional" | "Service" | "Bind" | "Undef" | "Minus" | "Union" | "Filter" | "a" | "True" | "False" | "In" | "NotIn" | "Separator">;
@@ -25,7 +25,7 @@ export const doublePositivePattern = new RegExp(`\\+${doublePattern.source}`);
25
25
  export const integerNegativePattern = new RegExp(`-${integerPattern.source}`);
26
26
  export const decimalNegativePattern = new RegExp(`-${decimalPattern.source}`);
27
27
  export const doubleNegativePattern = new RegExp(`-${doublePattern.source}`);
28
- export const echarPattern = /\\[\\"'bfnrt]/u;
28
+ export const echarPattern = /\\["'\\bfnrt]/;
29
29
  export const stringLiteral1Pattern = new RegExp(`'(([^\\u0027\\u005C\\u000A\u000D])|(${echarPattern.source}))*'`);
30
30
  export const stringLiteral2Pattern = new RegExp(`"(([^\\u0022\\u005C\\u000A\\u000D])|(${echarPattern.source}))*"`);
31
31
  export const stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\]|(${echarPattern.source})))*'''`);
@@ -33,6 +33,7 @@ export const stringLiteralLong2Pattern = new RegExp(`"""(("|(""))?([^"\\\\]|(${e
33
33
  export const wsPattern = /[\u0009\u000A\u000D ]/;
34
34
  export const nilPattern = new RegExp(`\\((${wsPattern.source})*\\)`);
35
35
  export const anonPattern = new RegExp(`\\[(${wsPattern.source})*\\]`);
36
- export const commentPattern = /#[^\n]*\n/;
37
- export const atLeastOneBlankPattern = new RegExp(`((${wsPattern.source}+)|(${commentPattern.source}))+`);
36
+ export const commentPattern = /#[^\n]*/;
37
+ // Need to ensure the blank closes
38
+ export const atLeastOneBlankPattern = new RegExp(`((${wsPattern.source}+)|(${commentPattern.source}\n))+`);
38
39
  //# sourceMappingURL=lexerPatterns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lexerPatterns.js","sourceRoot":"","sources":["../../../../lib/lexer/lexerPatterns.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable require-unicode-regexp,no-misleading-character-class,max-len,no-control-regex */\n\nexport const pnCharsBasePattern = /[A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF]/;\nexport const pnCharsUPattern = new RegExp(`${pnCharsBasePattern.source}|_`);\nexport const varNamePattern = new RegExp(`((${pnCharsUPattern.source})|[0-9])((${pnCharsUPattern.source})|[0-9]|[\\u00B7\\u0300-\\u036F\\u203F-\\u2040])*`);\nexport const iriRefPattern = /<([^\\u0000-\\u0020\"<>\\\\^`{|}])*>/;\nexport const pnCharsPattern = new RegExp(`(${pnCharsUPattern.source})|[\\\\-0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]`);\nexport const pnPrefixPattern = new RegExp(`(${pnCharsBasePattern.source})(((${pnCharsPattern.source})|\\\\.)*(${pnCharsPattern.source}))?`);\nexport const pNameNsPattern = new RegExp(`(${pnPrefixPattern.source})?:`);\nexport const percentPattern = /%[\\dA-Fa-f]{2}/;\nexport const pnLocalEscPattern = /\\\\[!#$%&'()*+,./;=?@\\\\_~-]/;\nexport const plxPattern = new RegExp(`(${percentPattern.source})|(${pnLocalEscPattern.source})`);\nexport const pnLocalPattern = new RegExp(`((${pnCharsUPattern.source})|:|[0-9]|(${plxPattern.source}))(((${pnCharsPattern.source})|\\\\.|:|(${plxPattern.source}))*((${pnCharsPattern.source})|:|(${plxPattern.source})))?`);\nexport const pNameLnPattern = new RegExp(`(${pNameNsPattern.source})(${pnLocalPattern.source})`);\nexport const blankNodeLabelPattern = new RegExp(`_:((${pnCharsUPattern.source})|[0-9])(((${pnCharsPattern.source})|\\\\.)*(${pnCharsPattern.source}))?`);\nexport const var1Pattern = new RegExp(`\\\\?(${varNamePattern.source})`);\nexport const var2Pattern = new RegExp(`\\\\$(${varNamePattern.source})`);\nexport const langTagPattern = /@[A-Za-z]+(-[\\dA-Za-z]+)*/;\nexport const integerPattern = /\\d+/;\nexport const decimalPattern = /\\d+\\.\\d+/;\nexport const exponentPattern = /[Ee][+-]?\\d+/;\nexport const doublePattern = new RegExp(`([0-9]+\\\\.[0-9]*(${exponentPattern.source}))|(\\\\.[0-9]+(${exponentPattern.source}))|([0-9]+(${exponentPattern.source}))`);\nexport const integerPositivePattern = new RegExp(`\\\\+${integerPattern.source}`);\nexport const decimalPositivePattern = new RegExp(`\\\\+${decimalPattern.source}`);\nexport const doublePositivePattern = new RegExp(`\\\\+${doublePattern.source}`);\nexport const integerNegativePattern = new RegExp(`-${integerPattern.source}`);\nexport const decimalNegativePattern = new RegExp(`-${decimalPattern.source}`);\nexport const doubleNegativePattern = new RegExp(`-${doublePattern.source}`);\nexport const echarPattern = /\\\\[\\\\\"'bfnrt]/u;\nexport const stringLiteral1Pattern = new RegExp(`'(([^\\\\u0027\\\\u005C\\\\u000A\\u000D])|(${echarPattern.source}))*'`);\nexport const stringLiteral2Pattern = new RegExp(`\"(([^\\\\u0022\\\\u005C\\\\u000A\\\\u000D])|(${echarPattern.source}))*\"`);\nexport const stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\\\\\]|(${echarPattern.source})))*'''`);\nexport const stringLiteralLong2Pattern = new RegExp(`\"\"\"((\"|(\"\"))?([^\"\\\\\\\\]|(${echarPattern.source})))*\"\"\"`);\nexport const wsPattern = /[\\u0009\\u000A\\u000D ]/;\nexport const nilPattern = new RegExp(`\\\\((${wsPattern.source})*\\\\)`);\nexport const anonPattern = new RegExp(`\\\\[(${wsPattern.source})*\\\\]`);\nexport const commentPattern = /#[^\\n]*\\n/;\n\nexport const atLeastOneBlankPattern = new RegExp(`((${wsPattern.source}+)|(${commentPattern.source}))+`);\n"]}
1
+ {"version":3,"file":"lexerPatterns.js","sourceRoot":"","sources":["../../../../lib/lexer/lexerPatterns.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable require-unicode-regexp,no-misleading-character-class,max-len,no-control-regex */\n\nexport const pnCharsBasePattern = /[A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF]/;\nexport const pnCharsUPattern = new RegExp(`${pnCharsBasePattern.source}|_`);\nexport const varNamePattern = new RegExp(`((${pnCharsUPattern.source})|[0-9])((${pnCharsUPattern.source})|[0-9]|[\\u00B7\\u0300-\\u036F\\u203F-\\u2040])*`);\nexport const iriRefPattern = /<([^\\u0000-\\u0020\"<>\\\\^`{|}])*>/;\nexport const pnCharsPattern = new RegExp(`(${pnCharsUPattern.source})|[\\\\-0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]`);\nexport const pnPrefixPattern = new RegExp(`(${pnCharsBasePattern.source})(((${pnCharsPattern.source})|\\\\.)*(${pnCharsPattern.source}))?`);\nexport const pNameNsPattern = new RegExp(`(${pnPrefixPattern.source})?:`);\nexport const percentPattern = /%[\\dA-Fa-f]{2}/;\nexport const pnLocalEscPattern = /\\\\[!#$%&'()*+,./;=?@\\\\_~-]/;\nexport const plxPattern = new RegExp(`(${percentPattern.source})|(${pnLocalEscPattern.source})`);\nexport const pnLocalPattern = new RegExp(`((${pnCharsUPattern.source})|:|[0-9]|(${plxPattern.source}))(((${pnCharsPattern.source})|\\\\.|:|(${plxPattern.source}))*((${pnCharsPattern.source})|:|(${plxPattern.source})))?`);\nexport const pNameLnPattern = new RegExp(`(${pNameNsPattern.source})(${pnLocalPattern.source})`);\nexport const blankNodeLabelPattern = new RegExp(`_:((${pnCharsUPattern.source})|[0-9])(((${pnCharsPattern.source})|\\\\.)*(${pnCharsPattern.source}))?`);\nexport const var1Pattern = new RegExp(`\\\\?(${varNamePattern.source})`);\nexport const var2Pattern = new RegExp(`\\\\$(${varNamePattern.source})`);\nexport const langTagPattern = /@[A-Za-z]+(-[\\dA-Za-z]+)*/;\nexport const integerPattern = /\\d+/;\nexport const decimalPattern = /\\d+\\.\\d+/;\nexport const exponentPattern = /[Ee][+-]?\\d+/;\nexport const doublePattern = new RegExp(`([0-9]+\\\\.[0-9]*(${exponentPattern.source}))|(\\\\.[0-9]+(${exponentPattern.source}))|([0-9]+(${exponentPattern.source}))`);\nexport const integerPositivePattern = new RegExp(`\\\\+${integerPattern.source}`);\nexport const decimalPositivePattern = new RegExp(`\\\\+${decimalPattern.source}`);\nexport const doublePositivePattern = new RegExp(`\\\\+${doublePattern.source}`);\nexport const integerNegativePattern = new RegExp(`-${integerPattern.source}`);\nexport const decimalNegativePattern = new RegExp(`-${decimalPattern.source}`);\nexport const doubleNegativePattern = new RegExp(`-${doublePattern.source}`);\nexport const echarPattern = /\\\\[\"'\\\\bfnrt]/;\nexport const stringLiteral1Pattern = new RegExp(`'(([^\\\\u0027\\\\u005C\\\\u000A\\u000D])|(${echarPattern.source}))*'`);\nexport const stringLiteral2Pattern = new RegExp(`\"(([^\\\\u0022\\\\u005C\\\\u000A\\\\u000D])|(${echarPattern.source}))*\"`);\nexport const stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\\\\\]|(${echarPattern.source})))*'''`);\nexport const stringLiteralLong2Pattern = new RegExp(`\"\"\"((\"|(\"\"))?([^\"\\\\\\\\]|(${echarPattern.source})))*\"\"\"`);\nexport const wsPattern = /[\\u0009\\u000A\\u000D ]/;\nexport const nilPattern = new RegExp(`\\\\((${wsPattern.source})*\\\\)`);\nexport const anonPattern = new RegExp(`\\\\[(${wsPattern.source})*\\\\]`);\nexport const commentPattern = /#[^\\n]*/;\n// Need to ensure the blank closes\nexport const atLeastOneBlankPattern = new RegExp(`((${wsPattern.source}+)|(${commentPattern.source}\\n))+`);\n"]}
@@ -25,4 +25,4 @@ export declare const greaterThan: import("@traqula/core").NamedToken<"GreaterTha
25
25
  export declare const lessThanEqual: import("@traqula/core").NamedToken<"LessThanEqual">;
26
26
  export declare const greaterThanEqual: import("@traqula/core").NamedToken<"GreaterThanEqual">;
27
27
  export declare const hathat: import("@traqula/core").NamedToken<"Hathat">;
28
- export declare const allSymbols: LexerBuilder<"Semi" | "LCurly" | "RCurly" | "Dot" | "Star" | "LParen" | "RParen" | "Comma" | "LSquare" | "RSquare" | "Pipe" | "Slash" | "Hat" | "Question" | "OpPlus" | "OpMinus" | "Exclamation" | "LogicAnd" | "LogicOr" | "Equal" | "NotEqual" | "LessThan" | "GreaterThan" | "LessThanEqual" | "GreaterThanEqual" | "Hathat">;
28
+ export declare const allSymbols: LexerBuilder<"LCurly" | "RCurly" | "Dot" | "Comma" | "Semi" | "LParen" | "RParen" | "LSquare" | "RSquare" | "Pipe" | "Slash" | "Hat" | "Question" | "Star" | "OpPlus" | "OpMinus" | "Exclamation" | "LogicAnd" | "LogicOr" | "Equal" | "NotEqual" | "LessThan" | "GreaterThan" | "LessThanEqual" | "GreaterThanEqual" | "Hathat">;
@@ -92,4 +92,4 @@ export declare const nil: import("@traqula/core").NamedToken<"Nil">;
92
92
  * [[163]](https://www.w3.org/TR/sparql11-query/#rANON)
93
93
  */
94
94
  export declare const anon: import("@traqula/core").NamedToken<"Anon">;
95
- export declare const allTerminals: LexerBuilder<"Nil" | "IriRef" | "PNameLn" | "PNameNs" | "BlankNodeLabel" | "Var1" | "Var2" | "LangTag" | "Integer" | "Decimal" | "Double" | "IntegerPositive" | "DecimalPositive" | "DoublePositive" | "IntegerNegative" | "DecimalNegative" | "DoubleNegative" | "StringLiteral1" | "StringLiteral2" | "StringLiteralLong1" | "StringLiteralLong2" | "Ws" | "Comment" | "Anon">;
95
+ export declare const allTerminals: LexerBuilder<"IriRef" | "PNameLn" | "PNameNs" | "BlankNodeLabel" | "Var1" | "Var2" | "LangTag" | "Integer" | "Decimal" | "Double" | "IntegerPositive" | "DecimalPositive" | "DoublePositive" | "IntegerNegative" | "DecimalNegative" | "DoubleNegative" | "StringLiteral1" | "StringLiteral2" | "StringLiteralLong1" | "StringLiteralLong2" | "Ws" | "Comment" | "Nil" | "Anon">;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@traqula/rules-sparql-1-1",
3
3
  "type": "module",
4
- "version": "1.1.2",
4
+ "version": "1.1.4",
5
5
  "description": "TRAQULA Lexer and Grammar Rules for sparql 1.1",
6
6
  "lsd:module": true,
7
7
  "license": "MIT",
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@traqula/chevrotain": "^1.1.0",
45
- "@traqula/core": "^1.1.1"
45
+ "@traqula/core": "^1.1.4"
46
46
  },
47
- "gitHead": "4a8a40e902755a39eab0d9f4f144e2e46d44b4d2"
47
+ "gitHead": "b16440712fc8cd970b190900e7eb3e16fbd7f6e7"
48
48
  }