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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +5 -3
  2. package/lib/Sparql11types.d.ts +48 -30
  3. package/lib/Sparql11types.js.map +1 -1
  4. package/lib/SparqlParser.d.ts +2 -2
  5. package/lib/SparqlParser.js +1 -1
  6. package/lib/SparqlParser.js.map +1 -1
  7. package/lib/Wildcard.d.ts +9 -0
  8. package/lib/Wildcard.js +19 -0
  9. package/lib/Wildcard.js.map +1 -0
  10. package/lib/expressionHelpers.d.ts +8 -6
  11. package/lib/expressionHelpers.js +3 -3
  12. package/lib/expressionHelpers.js.map +1 -1
  13. package/lib/grammar/builtIn.d.ts +6 -6
  14. package/lib/grammar/builtIn.js +19 -2
  15. package/lib/grammar/builtIn.js.map +1 -1
  16. package/lib/grammar/dataSetClause.d.ts +5 -5
  17. package/lib/grammar/dataSetClause.js +1 -0
  18. package/lib/grammar/dataSetClause.js.map +1 -1
  19. package/lib/grammar/expression.d.ts +16 -16
  20. package/lib/grammar/expression.js +60 -2
  21. package/lib/grammar/expression.js.map +1 -1
  22. package/lib/grammar/general.d.ts +10 -14
  23. package/lib/grammar/general.js +38 -30
  24. package/lib/grammar/general.js.map +1 -1
  25. package/lib/grammar/literals.d.ts +11 -11
  26. package/lib/grammar/literals.js +41 -6
  27. package/lib/grammar/literals.js.map +1 -1
  28. package/lib/grammar/propertyPaths.d.ts +11 -11
  29. package/lib/grammar/propertyPaths.js +27 -9
  30. package/lib/grammar/propertyPaths.js.map +1 -1
  31. package/lib/grammar/queryUnit/queryUnit.d.ts +13 -13
  32. package/lib/grammar/queryUnit/queryUnit.js +111 -15
  33. package/lib/grammar/queryUnit/queryUnit.js.map +1 -1
  34. package/lib/grammar/solutionModifier.d.ts +11 -11
  35. package/lib/grammar/solutionModifier.js +34 -0
  36. package/lib/grammar/solutionModifier.js.map +1 -1
  37. package/lib/grammar/tripleBlock.d.ts +26 -22
  38. package/lib/grammar/tripleBlock.js +48 -20
  39. package/lib/grammar/tripleBlock.js.map +1 -1
  40. package/lib/grammar/updateUnit/updateUnit.d.ts +25 -25
  41. package/lib/grammar/updateUnit/updateUnit.js +153 -17
  42. package/lib/grammar/updateUnit/updateUnit.js.map +1 -1
  43. package/lib/grammar/whereClause.d.ts +19 -19
  44. package/lib/grammar/whereClause.js +73 -2
  45. package/lib/grammar/whereClause.js.map +1 -1
  46. package/lib/grammar-helpers/utils.d.ts +16 -0
  47. package/lib/grammar-helpers/utils.js +53 -0
  48. package/lib/grammar-helpers/utils.js.map +1 -0
  49. package/lib/index.cjs +1002 -476
  50. package/lib/index.d.ts +2 -0
  51. package/lib/index.js +2 -0
  52. package/lib/index.js.map +1 -1
  53. package/lib/lexer/BuildinCalls.d.ts +62 -184
  54. package/lib/lexer/BuildinCalls.js +1 -2
  55. package/lib/lexer/BuildinCalls.js.map +1 -1
  56. package/lib/lexer/graph.d.ts +5 -13
  57. package/lib/lexer/graph.js +1 -2
  58. package/lib/lexer/graph.js.map +1 -1
  59. package/lib/lexer/lexer.d.ts +49 -143
  60. package/lib/lexer/lexer.js +1 -2
  61. package/lib/lexer/lexer.js.map +1 -1
  62. package/lib/lexer/symbols.d.ts +27 -79
  63. package/lib/lexer/symbols.js +1 -2
  64. package/lib/lexer/symbols.js.map +1 -1
  65. package/lib/lexer/terminals.d.ts +25 -73
  66. package/lib/lexer/terminals.js +14 -25
  67. package/lib/lexer/terminals.js.map +1 -1
  68. package/lib/utils.d.ts +6 -1
  69. package/lib/utils.js +23 -0
  70. package/lib/utils.js.map +1 -1
  71. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"builtIn.js","sourceRoot":"","sources":["builtIn.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IOrAlt } from '@chevrotain/types';\nimport * as l from '../lexer';\nimport type { ImplArgs } from '@traqula/core';\nimport type { RuleDefExpressionFunctionX } from '../expressionHelpers';\nimport {\n baseAggregateFunc,\n funcExpr1,\n funcExpr2,\n funcExpr2or3,\n funcExpr3,\n funcExpr3or4,\n funcExprList1,\n funcGroupGraphPattern,\n funcNil1,\n funcVar1,\n} from '../expressionHelpers';\nimport {\n unCapitalize,\n} from '@traqula/core';\nimport { expression } from './expression';\nimport { string } from './literals';\nimport type {AggregateExpression, Expression, SparqlRuleDef} from '../Sparql11types';\n\nexport const builtInStr = funcExpr1(l.builtIn.str);\nexport const builtInLang = funcExpr1(l.builtIn.lang);\nexport const builtInLangmatches = funcExpr2(l.builtIn.langmatches);\nexport const builtInDatatype = funcExpr1(l.builtIn.datatype);\nexport const builtInBound = funcVar1(l.builtIn.bound);\nexport const builtInIri = funcExpr1(l.builtIn.iri);\nexport const builtInUri = funcExpr1(l.builtIn.uri);\n// Todo: so ugly, just to be compatible with sparqlJS\nexport const builtInBnodeSparqlJs: RuleDefExpressionFunctionX<Uncapitalize<'builtInBnode'>, [] | [Expression]> = {\n name: 'builtInBnode',\n impl: ({ CONSUME, OR, SUBRULE }) => () => {\n const operator = CONSUME(l.builtIn.bnode);\n const args = OR<[] | [Expression]>([\n {\n ALT: () => {\n CONSUME(l.symbols.LParen);\n const arg = SUBRULE(expression, undefined);\n CONSUME(l.symbols.RParen);\n return [ arg ];\n },\n },\n {\n ALT: () => {\n CONSUME(l.terminals.nil);\n return [];\n },\n },\n ]);\n return {\n type: 'operation',\n operator: operator.image,\n args,\n };\n },\n};\n// Export const builtInBnode = funcExprOrNil1(l.builtIn.bnode);\nexport const builtInRand = funcNil1(l.builtIn.rand);\nexport const builtInAbs = funcExpr1(l.builtIn.abs);\nexport const builtInCeil = funcExpr1(l.builtIn.ceil);\nexport const builtInFloor = funcExpr1(l.builtIn.floor);\nexport const builtInRound = funcExpr1(l.builtIn.round);\nexport const builtInConcat = funcExprList1(l.builtIn.concat);\nexport const builtInStrlen = funcExpr1(l.builtIn.strlen);\nexport const builtInUcase = funcExpr1(l.builtIn.ucase);\nexport const builtInLcase = funcExpr1(l.builtIn.lcase);\nexport const builtInEncode_for_uri = funcExpr1(l.builtIn.encode_for_uri);\nexport const builtInContains = funcExpr2(l.builtIn.contains);\nexport const builtInStrstarts = funcExpr2(l.builtIn.strstarts);\nexport const builtInStrends = funcExpr2(l.builtIn.strends);\nexport const builtInStrbefore = funcExpr2(l.builtIn.strbefore);\nexport const builtInStrafter = funcExpr2(l.builtIn.strafter);\nexport const builtInYear = funcExpr1(l.builtIn.year);\nexport const builtInMonth = funcExpr1(l.builtIn.month);\nexport const builtInDay = funcExpr1(l.builtIn.day);\nexport const builtInHours = funcExpr1(l.builtIn.hours);\nexport const builtInMinutes = funcExpr1(l.builtIn.minutes);\nexport const builtInSeconds = funcExpr1(l.builtIn.seconds);\nexport const builtInTimezone = funcExpr1(l.builtIn.timezone);\nexport const builtInTz = funcExpr1(l.builtIn.tz);\nexport const builtInNow = funcNil1(l.builtIn.now);\nexport const builtInUuid = funcNil1(l.builtIn.uuid);\nexport const builtInStruuid = funcNil1(l.builtIn.struuid);\nexport const builtInMd5 = funcExpr1(l.builtIn.md5);\nexport const builtInSha1 = funcExpr1(l.builtIn.sha1);\nexport const builtInSha256 = funcExpr1(l.builtIn.sha256);\nexport const builtInSha384 = funcExpr1(l.builtIn.sha384);\nexport const builtInSha512 = funcExpr1(l.builtIn.sha512);\nexport const builtInCoalesce = funcExprList1(l.builtIn.coalesce);\nexport const builtInIf = funcExpr3(l.builtIn.if_);\nexport const builtInStrlang = funcExpr2(l.builtIn.strlang);\nexport const builtInStrdt = funcExpr2(l.builtIn.strdt);\nexport const builtInSameterm = funcExpr2(l.builtIn.sameterm);\nexport const builtInIsiri = funcExpr1(l.builtIn.isiri);\nexport const builtInIsuri = funcExpr1(l.builtIn.isuri);\nexport const builtInIsblank = funcExpr1(l.builtIn.isblank);\nexport const builtInIsliteral = funcExpr1(l.builtIn.isliteral);\nexport const builtInIsnumeric = funcExpr1(l.builtIn.isnumeric);\n\nexport function builtInCallList(SUBRULE: ImplArgs['SUBRULE']): IOrAlt<Expression>[] {\n return [\n { ALT: () => SUBRULE(aggregate, undefined) },\n { ALT: () => SUBRULE(builtInStr, undefined) },\n { ALT: () => SUBRULE(builtInLang, undefined) },\n { ALT: () => SUBRULE(builtInLangmatches, undefined) },\n { ALT: () => SUBRULE(builtInDatatype, undefined) },\n { ALT: () => SUBRULE(builtInBound, undefined) },\n { ALT: () => SUBRULE(builtInIri, undefined) },\n { ALT: () => SUBRULE(builtInUri, undefined) },\n { ALT: () => SUBRULE(builtInBnodeSparqlJs, undefined) },\n { ALT: () => SUBRULE(builtInRand, undefined) },\n { ALT: () => SUBRULE(builtInAbs, undefined) },\n { ALT: () => SUBRULE(builtInCeil, undefined) },\n { ALT: () => SUBRULE(builtInFloor, undefined) },\n { ALT: () => SUBRULE(builtInRound, undefined) },\n { ALT: () => SUBRULE(builtInConcat, undefined) },\n { ALT: () => SUBRULE(substringExpression, undefined) },\n { ALT: () => SUBRULE(builtInStrlen, undefined) },\n { ALT: () => SUBRULE(strReplaceExpression, undefined) },\n { ALT: () => SUBRULE(builtInUcase, undefined) },\n { ALT: () => SUBRULE(builtInLcase, undefined) },\n { ALT: () => SUBRULE(builtInEncode_for_uri, undefined) },\n { ALT: () => SUBRULE(builtInContains, undefined) },\n { ALT: () => SUBRULE(builtInStrstarts, undefined) },\n { ALT: () => SUBRULE(builtInStrends, undefined) },\n { ALT: () => SUBRULE(builtInStrbefore, undefined) },\n { ALT: () => SUBRULE(builtInStrafter, undefined) },\n { ALT: () => SUBRULE(builtInYear, undefined) },\n { ALT: () => SUBRULE(builtInMonth, undefined) },\n { ALT: () => SUBRULE(builtInDay, undefined) },\n { ALT: () => SUBRULE(builtInHours, undefined) },\n { ALT: () => SUBRULE(builtInMinutes, undefined) },\n { ALT: () => SUBRULE(builtInSeconds, undefined) },\n { ALT: () => SUBRULE(builtInTimezone, undefined) },\n { ALT: () => SUBRULE(builtInTz, undefined) },\n { ALT: () => SUBRULE(builtInNow, undefined) },\n { ALT: () => SUBRULE(builtInUuid, undefined) },\n { ALT: () => SUBRULE(builtInStruuid, undefined) },\n { ALT: () => SUBRULE(builtInMd5, undefined) },\n { ALT: () => SUBRULE(builtInSha1, undefined) },\n { ALT: () => SUBRULE(builtInSha256, undefined) },\n { ALT: () => SUBRULE(builtInSha384, undefined) },\n { ALT: () => SUBRULE(builtInSha512, undefined) },\n { ALT: () => SUBRULE(builtInCoalesce, undefined) },\n { ALT: () => SUBRULE(builtInIf, undefined) },\n { ALT: () => SUBRULE(builtInStrlang, undefined) },\n { ALT: () => SUBRULE(builtInStrdt, undefined) },\n { ALT: () => SUBRULE(builtInSameterm, undefined) },\n { ALT: () => SUBRULE(builtInIsiri, undefined) },\n { ALT: () => SUBRULE(builtInIsuri, undefined) },\n { ALT: () => SUBRULE(builtInIsblank, undefined) },\n { ALT: () => SUBRULE(builtInIsliteral, undefined) },\n { ALT: () => SUBRULE(builtInIsnumeric, undefined) },\n { ALT: () => SUBRULE(regexExpression, undefined) },\n { ALT: () => SUBRULE(existsFunc, undefined) },\n { ALT: () => SUBRULE(notExistsFunc, undefined) },\n ];\n}\n\n/**\n * [[121]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const builtInCall: SparqlRuleDef<'builtInCall', Expression> = <const> {\n name: 'builtInCall',\n impl: ({ OR, SUBRULE, cache }) => () => {\n const cached = <IOrAlt<Expression>[]>cache.get(builtInCall);\n if (cached) {\n return OR<Expression>(cached);\n }\n const builtIns = builtInCallList(SUBRULE);\n cache.set(builtInCall, builtIns);\n return OR<Expression>(builtIns);\n },\n};\n\n/**\n * [[122]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const regexExpression = funcExpr2or3(l.builtIn.regex);\n\n/**\n * [[123]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const substringExpression = funcExpr2or3(l.builtIn.substr);\n\n/**\n * [[124]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const strReplaceExpression = funcExpr3or4(l.builtIn.replace);\n\n/**\n * [[125]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const existsFunc = funcGroupGraphPattern(l.builtIn.exists);\n\n/**\n * [[126]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const notExistsFunc = funcGroupGraphPattern(l.builtIn.notexists);\n\nexport const aggregateCount = baseAggregateFunc(l.builtIn.count);\nexport const aggregateSum = baseAggregateFunc(l.builtIn.sum);\nexport const aggregateMin = baseAggregateFunc(l.builtIn.min);\nexport const aggregateMax = baseAggregateFunc(l.builtIn.max);\nexport const aggregateAvg = baseAggregateFunc(l.builtIn.avg);\nexport const aggregateSample = baseAggregateFunc(l.builtIn.sample);\nexport const aggregateGroup_concat: SparqlRuleDef<'builtInGroup_concat', AggregateExpression> = <const> {\n name: unCapitalize(l.builtIn.groupConcat.name),\n impl: ({ CONSUME, OPTION1, SUBRULE, OPTION2 }) => () => {\n CONSUME(l.builtIn.groupConcat);\n CONSUME(l.symbols.LParen);\n const distinct = OPTION1(() => CONSUME(l.distinct));\n const expr = SUBRULE(expression, undefined);\n const separator = OPTION2(() => {\n CONSUME(l.symbols.semi);\n CONSUME(l.separator);\n CONSUME(l.symbols.equal);\n return SUBRULE(string, undefined);\n }) ?? ' ';\n CONSUME(l.symbols.RParen);\n\n return {\n type: 'aggregate',\n aggregation: 'group_concat',\n expression: expr,\n distinct: Boolean(distinct),\n separator,\n };\n },\n};\n\n/**\n * [[127]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const aggregate: SparqlRuleDef<'aggregate', Expression> = <const> {\n name: 'aggregate',\n impl: ({ ACTION, SUBRULE, OR }) => (C) => {\n // https://www.w3.org/2013/sparql-errata#errata-query-5 - Or note 15 in SPARQL1.2 spec\n // An aggregate function is not allowed within an aggregate function.\n const wasInAggregate = ACTION(() => C.parseMode.has('inAggregate'));\n ACTION(() => C.parseMode.add('inAggregate'));\n const result = OR<Expression>([\n { ALT: () => SUBRULE(aggregateCount, undefined) },\n { ALT: () => SUBRULE(aggregateSum, undefined) },\n { ALT: () => SUBRULE(aggregateMin, undefined) },\n { ALT: () => SUBRULE(aggregateMax, undefined) },\n { ALT: () => SUBRULE(aggregateAvg, undefined) },\n { ALT: () => SUBRULE(aggregateSample, undefined) },\n { ALT: () => SUBRULE(aggregateGroup_concat, undefined) },\n ]);\n ACTION(() => !wasInAggregate && C.parseMode.delete('inAggregate'));\n\n ACTION(() => {\n if (!C.parseMode.has('canParseAggregate')) {\n throw new Error('Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.');\n }\n if (C.parseMode.has('inAggregate')) {\n throw new Error('An aggregate function is not allowed within an aggregate function.');\n }\n });\n\n return result;\n },\n};\n"]}
1
+ {"version":3,"file":"builtIn.js","sourceRoot":"","sources":["builtIn.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IOrAlt } from '@chevrotain/types';\nimport type { ImplArgs } from '@traqula/core';\nimport {\n unCapitalize,\n} from '@traqula/core';\nimport type { RuleDefExpressionFunctionX } from '../expressionHelpers';\nimport {\n baseAggregateFunc,\n funcExpr1,\n funcExpr2,\n funcExpr2or3,\n funcExpr3,\n funcExpr3or4,\n funcExprList1,\n funcGroupGraphPattern,\n funcNil1,\n funcVar1,\n} from '../expressionHelpers';\nimport * as l from '../lexer';\nimport type { AggregateExpression, Expression, SparqlGrammarRule, SparqlRule } from '../Sparql11types';\nimport { expression } from './expression';\nimport { string } from './literals';\n\nexport const builtInStr = funcExpr1(l.builtIn.str);\nexport const builtInLang = funcExpr1(l.builtIn.lang);\nexport const builtInLangmatches = funcExpr2(l.builtIn.langmatches);\nexport const builtInDatatype = funcExpr1(l.builtIn.datatype);\nexport const builtInBound = funcVar1(l.builtIn.bound);\nexport const builtInIri = funcExpr1(l.builtIn.iri);\nexport const builtInUri = funcExpr1(l.builtIn.uri);\n// Todo: so ugly, just to be compatible with sparqlJS\nexport const builtInBnodeSparqlJs: RuleDefExpressionFunctionX<Uncapitalize<'builtInBnode'>, [] | [Expression]> = {\n name: 'builtInBnode',\n impl: ({ CONSUME, OR, SUBRULE }) => () => {\n const operator = CONSUME(l.builtIn.bnode);\n const args = OR<[] | [Expression]>([\n {\n ALT: () => {\n CONSUME(l.symbols.LParen);\n const arg = SUBRULE(expression, undefined);\n CONSUME(l.symbols.RParen);\n return [ arg ];\n },\n },\n {\n ALT: () => {\n CONSUME(l.terminals.nil);\n return [];\n },\n },\n ]);\n return {\n type: 'operation',\n operator: operator.image,\n args,\n };\n },\n};\n// Export const builtInBnode = funcExprOrNil1(l.builtIn.bnode);\nexport const builtInRand = funcNil1(l.builtIn.rand);\nexport const builtInAbs = funcExpr1(l.builtIn.abs);\nexport const builtInCeil = funcExpr1(l.builtIn.ceil);\nexport const builtInFloor = funcExpr1(l.builtIn.floor);\nexport const builtInRound = funcExpr1(l.builtIn.round);\nexport const builtInConcat = funcExprList1(l.builtIn.concat);\nexport const builtInStrlen = funcExpr1(l.builtIn.strlen);\nexport const builtInUcase = funcExpr1(l.builtIn.ucase);\nexport const builtInLcase = funcExpr1(l.builtIn.lcase);\nexport const builtInEncode_for_uri = funcExpr1(l.builtIn.encode_for_uri);\nexport const builtInContains = funcExpr2(l.builtIn.contains);\nexport const builtInStrstarts = funcExpr2(l.builtIn.strstarts);\nexport const builtInStrends = funcExpr2(l.builtIn.strends);\nexport const builtInStrbefore = funcExpr2(l.builtIn.strbefore);\nexport const builtInStrafter = funcExpr2(l.builtIn.strafter);\nexport const builtInYear = funcExpr1(l.builtIn.year);\nexport const builtInMonth = funcExpr1(l.builtIn.month);\nexport const builtInDay = funcExpr1(l.builtIn.day);\nexport const builtInHours = funcExpr1(l.builtIn.hours);\nexport const builtInMinutes = funcExpr1(l.builtIn.minutes);\nexport const builtInSeconds = funcExpr1(l.builtIn.seconds);\nexport const builtInTimezone = funcExpr1(l.builtIn.timezone);\nexport const builtInTz = funcExpr1(l.builtIn.tz);\nexport const builtInNow = funcNil1(l.builtIn.now);\nexport const builtInUuid = funcNil1(l.builtIn.uuid);\nexport const builtInStruuid = funcNil1(l.builtIn.struuid);\nexport const builtInMd5 = funcExpr1(l.builtIn.md5);\nexport const builtInSha1 = funcExpr1(l.builtIn.sha1);\nexport const builtInSha256 = funcExpr1(l.builtIn.sha256);\nexport const builtInSha384 = funcExpr1(l.builtIn.sha384);\nexport const builtInSha512 = funcExpr1(l.builtIn.sha512);\nexport const builtInCoalesce = funcExprList1(l.builtIn.coalesce);\nexport const builtInIf = funcExpr3(l.builtIn.if_);\nexport const builtInStrlang = funcExpr2(l.builtIn.strlang);\nexport const builtInStrdt = funcExpr2(l.builtIn.strdt);\nexport const builtInSameterm = funcExpr2(l.builtIn.sameterm);\nexport const builtInIsiri = funcExpr1(l.builtIn.isiri);\nexport const builtInIsuri = funcExpr1(l.builtIn.isuri);\nexport const builtInIsblank = funcExpr1(l.builtIn.isblank);\nexport const builtInIsliteral = funcExpr1(l.builtIn.isliteral);\nexport const builtInIsnumeric = funcExpr1(l.builtIn.isnumeric);\n\nexport function builtInCallList(SUBRULE: ImplArgs['SUBRULE']): IOrAlt<Expression>[] {\n return [\n { ALT: () => SUBRULE(aggregate, undefined) },\n { ALT: () => SUBRULE(builtInStr, undefined) },\n { ALT: () => SUBRULE(builtInLang, undefined) },\n { ALT: () => SUBRULE(builtInLangmatches, undefined) },\n { ALT: () => SUBRULE(builtInDatatype, undefined) },\n { ALT: () => SUBRULE(builtInBound, undefined) },\n { ALT: () => SUBRULE(builtInIri, undefined) },\n { ALT: () => SUBRULE(builtInUri, undefined) },\n { ALT: () => SUBRULE(builtInBnodeSparqlJs, undefined) },\n { ALT: () => SUBRULE(builtInRand, undefined) },\n { ALT: () => SUBRULE(builtInAbs, undefined) },\n { ALT: () => SUBRULE(builtInCeil, undefined) },\n { ALT: () => SUBRULE(builtInFloor, undefined) },\n { ALT: () => SUBRULE(builtInRound, undefined) },\n { ALT: () => SUBRULE(builtInConcat, undefined) },\n { ALT: () => SUBRULE(substringExpression, undefined) },\n { ALT: () => SUBRULE(builtInStrlen, undefined) },\n { ALT: () => SUBRULE(strReplaceExpression, undefined) },\n { ALT: () => SUBRULE(builtInUcase, undefined) },\n { ALT: () => SUBRULE(builtInLcase, undefined) },\n { ALT: () => SUBRULE(builtInEncode_for_uri, undefined) },\n { ALT: () => SUBRULE(builtInContains, undefined) },\n { ALT: () => SUBRULE(builtInStrstarts, undefined) },\n { ALT: () => SUBRULE(builtInStrends, undefined) },\n { ALT: () => SUBRULE(builtInStrbefore, undefined) },\n { ALT: () => SUBRULE(builtInStrafter, undefined) },\n { ALT: () => SUBRULE(builtInYear, undefined) },\n { ALT: () => SUBRULE(builtInMonth, undefined) },\n { ALT: () => SUBRULE(builtInDay, undefined) },\n { ALT: () => SUBRULE(builtInHours, undefined) },\n { ALT: () => SUBRULE(builtInMinutes, undefined) },\n { ALT: () => SUBRULE(builtInSeconds, undefined) },\n { ALT: () => SUBRULE(builtInTimezone, undefined) },\n { ALT: () => SUBRULE(builtInTz, undefined) },\n { ALT: () => SUBRULE(builtInNow, undefined) },\n { ALT: () => SUBRULE(builtInUuid, undefined) },\n { ALT: () => SUBRULE(builtInStruuid, undefined) },\n { ALT: () => SUBRULE(builtInMd5, undefined) },\n { ALT: () => SUBRULE(builtInSha1, undefined) },\n { ALT: () => SUBRULE(builtInSha256, undefined) },\n { ALT: () => SUBRULE(builtInSha384, undefined) },\n { ALT: () => SUBRULE(builtInSha512, undefined) },\n { ALT: () => SUBRULE(builtInCoalesce, undefined) },\n { ALT: () => SUBRULE(builtInIf, undefined) },\n { ALT: () => SUBRULE(builtInStrlang, undefined) },\n { ALT: () => SUBRULE(builtInStrdt, undefined) },\n { ALT: () => SUBRULE(builtInSameterm, undefined) },\n { ALT: () => SUBRULE(builtInIsiri, undefined) },\n { ALT: () => SUBRULE(builtInIsuri, undefined) },\n { ALT: () => SUBRULE(builtInIsblank, undefined) },\n { ALT: () => SUBRULE(builtInIsliteral, undefined) },\n { ALT: () => SUBRULE(builtInIsnumeric, undefined) },\n { ALT: () => SUBRULE(regexExpression, undefined) },\n { ALT: () => SUBRULE(existsFunc, undefined) },\n { ALT: () => SUBRULE(notExistsFunc, undefined) },\n ];\n}\n\n/**\n * [[121]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const builtInCall: SparqlGrammarRule<'builtInCall', Expression> = <const> {\n name: 'builtInCall',\n impl: ({ OR, SUBRULE, cache }) => () => {\n const cached = <IOrAlt<Expression>[]>cache.get(builtInCall);\n if (cached) {\n return OR<Expression>(cached);\n }\n const builtIns = builtInCallList(SUBRULE);\n cache.set(builtInCall, builtIns);\n return OR<Expression>(builtIns);\n },\n};\n\n/**\n * [[122]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const regexExpression = funcExpr2or3(l.builtIn.regex);\n\n/**\n * [[123]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const substringExpression = funcExpr2or3(l.builtIn.substr);\n\n/**\n * [[124]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const strReplaceExpression = funcExpr3or4(l.builtIn.replace);\n\n/**\n * [[125]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const existsFunc = funcGroupGraphPattern(l.builtIn.exists);\n\n/**\n * [[126]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const notExistsFunc = funcGroupGraphPattern(l.builtIn.notexists);\n\nexport const aggregateCount = baseAggregateFunc(l.builtIn.count);\nexport const aggregateSum = baseAggregateFunc(l.builtIn.sum);\nexport const aggregateMin = baseAggregateFunc(l.builtIn.min);\nexport const aggregateMax = baseAggregateFunc(l.builtIn.max);\nexport const aggregateAvg = baseAggregateFunc(l.builtIn.avg);\nexport const aggregateSample = baseAggregateFunc(l.builtIn.sample);\nexport const aggregateGroup_concat: SparqlGrammarRule<'builtInGroup_concat', AggregateExpression> = <const> {\n name: unCapitalize(l.builtIn.groupConcat.name),\n impl: ({ CONSUME, OPTION1, SUBRULE, OPTION2 }) => () => {\n CONSUME(l.builtIn.groupConcat);\n CONSUME(l.symbols.LParen);\n const distinct = OPTION1(() => CONSUME(l.distinct));\n const expr = SUBRULE(expression, undefined);\n const separator = OPTION2(() => {\n CONSUME(l.symbols.semi);\n CONSUME(l.separator);\n CONSUME(l.symbols.equal);\n return SUBRULE(string, undefined);\n }) ?? ' ';\n CONSUME(l.symbols.RParen);\n\n return {\n type: 'aggregate',\n aggregation: 'group_concat',\n expression: expr,\n distinct: Boolean(distinct),\n separator,\n };\n },\n};\n\n/**\n * [[127]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const aggregate: SparqlRule<'aggregate', AggregateExpression> = <const> {\n name: 'aggregate',\n impl: ({ ACTION, SUBRULE, OR }) => (C) => {\n // https://www.w3.org/2013/sparql-errata#errata-query-5 - Or note 15 in SPARQL1.2 spec\n // An aggregate function is not allowed within an aggregate function.\n const wasInAggregate = ACTION(() => C.parseMode.has('inAggregate'));\n ACTION(() => C.parseMode.add('inAggregate'));\n const result = OR<AggregateExpression>([\n { ALT: () => SUBRULE(aggregateCount, undefined) },\n { ALT: () => SUBRULE(aggregateSum, undefined) },\n { ALT: () => SUBRULE(aggregateMin, undefined) },\n { ALT: () => SUBRULE(aggregateMax, undefined) },\n { ALT: () => SUBRULE(aggregateAvg, undefined) },\n { ALT: () => SUBRULE(aggregateSample, undefined) },\n { ALT: () => SUBRULE(aggregateGroup_concat, undefined) },\n ]);\n ACTION(() => !wasInAggregate && C.parseMode.delete('inAggregate'));\n\n ACTION(() => {\n if (!C.parseMode.has('canParseAggregate')) {\n throw new Error('Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.');\n }\n if (C.parseMode.has('inAggregate')) {\n throw new Error('An aggregate function is not allowed within an aggregate function.');\n }\n });\n\n return result;\n },\n gImpl: ({ SUBRULE }) => (ast) => {\n const builder = [ ast.aggregation, '(' ];\n if (ast.distinct) {\n builder.push('DISTINCT');\n }\n if ('termType' in ast.expression && ast.expression.termType === 'Wildcard') {\n builder.push('*');\n } else {\n builder.push(SUBRULE(expression, ast.expression, undefined));\n }\n if (ast.separator !== undefined && ast.separator !== ' ') {\n builder.push(';', 'SEPARATOR', '=', SUBRULE(string, ast.separator, undefined));\n }\n builder.push(')');\n return builder.join(' ');\n },\n};\n"]}
@@ -1,4 +1,4 @@
1
- import type { IriTerm, SparqlRuleDef } from '../Sparql11types';
1
+ import type { IriTerm, SparqlGrammarRule, SparqlRule } from '../Sparql11types';
2
2
  /**
3
3
  * [[13]](https://www.w3.org/TR/sparql11-query/#rDatasetClause)
4
4
  */
@@ -6,16 +6,16 @@ export interface IDatasetClause {
6
6
  value: IriTerm;
7
7
  type: 'default' | 'named';
8
8
  }
9
- export declare const datasetClause: SparqlRuleDef<'datasetClause', IDatasetClause>;
9
+ export declare const datasetClause: SparqlRule<'datasetClause', IDatasetClause>;
10
10
  /**
11
11
  * [[14]](https://www.w3.org/TR/sparql11-query/#rDefaultGraphClause)
12
12
  */
13
- export declare const defaultGraphClause: SparqlRuleDef<'defaultGraphClause', IriTerm>;
13
+ export declare const defaultGraphClause: SparqlGrammarRule<'defaultGraphClause', IriTerm>;
14
14
  /**
15
15
  * [[15]](https://www.w3.org/TR/sparql11-query/#rNamedGraphClause)
16
16
  */
17
- export declare const namedGraphClause: SparqlRuleDef<'namedGraphClause', IriTerm>;
17
+ export declare const namedGraphClause: SparqlGrammarRule<'namedGraphClause', IriTerm>;
18
18
  /**
19
19
  * [[16]](https://www.w3.org/TR/sparql11-query/#rSourceSelector)
20
20
  */
21
- export declare const sourceSelector: SparqlRuleDef<'sourceSelector', IriTerm>;
21
+ export declare const sourceSelector: SparqlGrammarRule<'sourceSelector', IriTerm>;
@@ -9,6 +9,7 @@ export const datasetClause = {
9
9
  { ALT: () => ({ value: SUBRULE(namedGraphClause, undefined), type: 'named' }) },
10
10
  ]);
11
11
  },
12
+ gImpl: () => ast => `FROM ${ast.type}`,
12
13
  };
13
14
  /**
14
15
  * [[14]](https://www.w3.org/TR/sparql11-query/#rDefaultGraphClause)
@@ -1 +1 @@
1
- {"version":3,"file":"dataSetClause.js","sourceRoot":"","sources":["dataSetClause.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAUjC,MAAM,CAAC,MAAM,aAAa,GAA2D;IACnF,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE;QACvC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,EAAE,CAAiB;YACxB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;YACnF,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;SAChF,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAyD;IACtF,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC;CAChE,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAuD;IAClF,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE;QACnC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAqD;IAC9E,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC;CACrD,CAAC","sourcesContent":["import * as l from '../lexer';\nimport { iri } from './literals';\nimport type {IriTerm, SparqlRuleDef} from '../Sparql11types';\n\n/**\n * [[13]](https://www.w3.org/TR/sparql11-query/#rDatasetClause)\n */\nexport interface IDatasetClause {\n value: IriTerm;\n type: 'default' | 'named';\n}\nexport const datasetClause: SparqlRuleDef<'datasetClause', IDatasetClause> = <const> {\n name: 'datasetClause',\n impl: ({ SUBRULE, CONSUME, OR }) => () => {\n CONSUME(l.from);\n return OR<IDatasetClause>([\n { ALT: () => ({ value: SUBRULE(defaultGraphClause, undefined), type: 'default' }) },\n { ALT: () => ({ value: SUBRULE(namedGraphClause, undefined), type: 'named' }) },\n ]);\n },\n};\n\n/**\n * [[14]](https://www.w3.org/TR/sparql11-query/#rDefaultGraphClause)\n */\nexport const defaultGraphClause: SparqlRuleDef<'defaultGraphClause', IriTerm> = <const> {\n name: 'defaultGraphClause',\n impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector, undefined),\n};\n\n/**\n * [[15]](https://www.w3.org/TR/sparql11-query/#rNamedGraphClause)\n */\nexport const namedGraphClause: SparqlRuleDef<'namedGraphClause', IriTerm> = <const> {\n name: 'namedGraphClause',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.graph.named);\n return SUBRULE(sourceSelector, undefined);\n },\n};\n\n/**\n * [[16]](https://www.w3.org/TR/sparql11-query/#rSourceSelector)\n */\nexport const sourceSelector: SparqlRuleDef<'sourceSelector', IriTerm> = <const> {\n name: 'sourceSelector',\n impl: ({ SUBRULE }) => () => SUBRULE(iri, undefined),\n};\n"]}
1
+ {"version":3,"file":"dataSetClause.js","sourceRoot":"","sources":["dataSetClause.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AASjC,MAAM,CAAC,MAAM,aAAa,GAAwD;IAChF,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE;QACvC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,EAAE,CAAiB;YACxB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;YACnF,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;SAChF,CAAC,CAAC;IACL,CAAC;IACD,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE;CACvC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA6D;IAC1F,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC;CAChE,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2D;IACtF,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE;QACnC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAyD;IAClF,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC;CACrD,CAAC","sourcesContent":["import * as l from '../lexer';\nimport type { IriTerm, SparqlGrammarRule, SparqlRule } from '../Sparql11types';\nimport { iri } from './literals';\n\n/**\n * [[13]](https://www.w3.org/TR/sparql11-query/#rDatasetClause)\n */\nexport interface IDatasetClause {\n value: IriTerm;\n type: 'default' | 'named';\n}\nexport const datasetClause: SparqlRule<'datasetClause', IDatasetClause> = <const> {\n name: 'datasetClause',\n impl: ({ SUBRULE, CONSUME, OR }) => () => {\n CONSUME(l.from);\n return OR<IDatasetClause>([\n { ALT: () => ({ value: SUBRULE(defaultGraphClause, undefined), type: 'default' }) },\n { ALT: () => ({ value: SUBRULE(namedGraphClause, undefined), type: 'named' }) },\n ]);\n },\n gImpl: () => ast => `FROM ${ast.type}`,\n};\n\n/**\n * [[14]](https://www.w3.org/TR/sparql11-query/#rDefaultGraphClause)\n */\nexport const defaultGraphClause: SparqlGrammarRule<'defaultGraphClause', IriTerm> = <const> {\n name: 'defaultGraphClause',\n impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector, undefined),\n};\n\n/**\n * [[15]](https://www.w3.org/TR/sparql11-query/#rNamedGraphClause)\n */\nexport const namedGraphClause: SparqlGrammarRule<'namedGraphClause', IriTerm> = <const> {\n name: 'namedGraphClause',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.graph.named);\n return SUBRULE(sourceSelector, undefined);\n },\n};\n\n/**\n * [[16]](https://www.w3.org/TR/sparql11-query/#rSourceSelector)\n */\nexport const sourceSelector: SparqlGrammarRule<'sourceSelector', IriTerm> = <const> {\n name: 'sourceSelector',\n impl: ({ SUBRULE }) => () => SUBRULE(iri, undefined),\n};\n"]}
@@ -1,4 +1,4 @@
1
- import type { Expression, IriTerm, SparqlRuleDef } from '../Sparql11types';
1
+ import type { Expression, IriTerm, SparqlGrammarRule, SparqlRule } from '../Sparql11types';
2
2
  export type Operation = '||' | '&&' | RelationalOperator | AdditiveOperator | aggregatorOperator | buildInOperator;
3
3
  export type RelationalOperator = '=' | '!=' | '<' | '>' | '<=' | '>=' | 'in' | 'notin';
4
4
  export type AdditiveOperator = '+' | '-' | '*' | '/';
@@ -11,57 +11,57 @@ export type aggregatorOperator = 'COUNT' | 'SUM' | 'MIN' | 'MAX' | 'AVG' | 'SAMP
11
11
  export interface IArgList {
12
12
  type: 'functionCall';
13
13
  args: Expression[];
14
- distinct: boolean;
14
+ distinct?: boolean;
15
15
  }
16
- export declare const argList: SparqlRuleDef<'argList', IArgList>;
17
- export declare const expressionList: SparqlRuleDef<'expressionList', Expression[]>;
16
+ export declare const argList: SparqlRule<'argList', IArgList>;
17
+ export declare const expressionList: SparqlGrammarRule<'expressionList', Expression[]>;
18
18
  /**
19
19
  * [[110]](https://www.w3.org/TR/sparql11-query/#rExpression)
20
20
  */
21
- export declare const expression: SparqlRuleDef<'expression', Expression>;
21
+ export declare const expression: SparqlRule<'expression', Expression>;
22
22
  /**
23
23
  * [[111]](https://www.w3.org/TR/sparql11-query/#rConditionalOrExpression)
24
24
  */
25
- export declare const conditionalOrExpression: SparqlRuleDef<'conditionalOrExpression', Expression>;
25
+ export declare const conditionalOrExpression: SparqlGrammarRule<'conditionalOrExpression', Expression>;
26
26
  /**
27
27
  * [[112]](https://www.w3.org/TR/sparql11-query/#rConditionalAndExpression)
28
28
  */
29
- export declare const conditionalAndExpression: SparqlRuleDef<'conditionalAndExpression', Expression>;
29
+ export declare const conditionalAndExpression: SparqlGrammarRule<'conditionalAndExpression', Expression>;
30
30
  /**
31
31
  * [[113]](https://www.w3.org/TR/sparql11-query/#rValueLogical)
32
32
  */
33
- export declare const valueLogical: SparqlRuleDef<'valueLogical', Expression>;
33
+ export declare const valueLogical: SparqlGrammarRule<'valueLogical', Expression>;
34
34
  /**
35
35
  * [[114]](https://www.w3.org/TR/sparql11-query/#rRelationalExpression)
36
36
  */
37
- export declare const relationalExpression: SparqlRuleDef<'relationalExpression', Expression>;
37
+ export declare const relationalExpression: SparqlGrammarRule<'relationalExpression', Expression>;
38
38
  /**
39
39
  * [[115]](https://www.w3.org/TR/sparql11-query/#rNumericExpression)
40
40
  */
41
- export declare const numericExpression: SparqlRuleDef<'numericExpression', Expression>;
41
+ export declare const numericExpression: SparqlGrammarRule<'numericExpression', Expression>;
42
42
  /**
43
43
  * [[116]](https://www.w3.org/TR/sparql11-query/#rAdditiveExpression)
44
44
  */
45
- export declare const additiveExpression: SparqlRuleDef<'additiveExpression', Expression>;
45
+ export declare const additiveExpression: SparqlGrammarRule<'additiveExpression', Expression>;
46
46
  /**
47
47
  * [[117]](https://www.w3.org/TR/sparql11-query/#rMultiplicativeExpression)
48
48
  */
49
- export declare const multiplicativeExpression: SparqlRuleDef<'multiplicativeExpression', Expression>;
49
+ export declare const multiplicativeExpression: SparqlGrammarRule<'multiplicativeExpression', Expression>;
50
50
  /**
51
51
  * [[118]](https://www.w3.org/TR/sparql11-query/#rUnaryExpression)
52
52
  */
53
- export declare const unaryExpression: SparqlRuleDef<'unaryExpression', Expression>;
53
+ export declare const unaryExpression: SparqlGrammarRule<'unaryExpression', Expression>;
54
54
  /**
55
55
  * [[119]](https://www.w3.org/TR/sparql11-query/#rPrimaryExpression)
56
56
  */
57
- export declare const primaryExpression: SparqlRuleDef<'primaryExpression', Expression>;
57
+ export declare const primaryExpression: SparqlGrammarRule<'primaryExpression', Expression>;
58
58
  /**
59
59
  * [[120]](https://www.w3.org/TR/sparql11-query/#rBrackettedExpression)
60
60
  */
61
- export declare const brackettedExpression: SparqlRuleDef<'brackettedExpression', Expression>;
61
+ export declare const brackettedExpression: SparqlGrammarRule<'brackettedExpression', Expression>;
62
62
  /**
63
63
  * [[128]](https://www.w3.org/TR/sparql11-query/#ririOrFunction)
64
64
  */
65
- export declare const iriOrFunction: SparqlRuleDef<'iriOrFunction', IriTerm | (IArgList & {
65
+ export declare const iriOrFunction: SparqlRule<'iriOrFunction', IriTerm | (IArgList & {
66
66
  function: IriTerm;
67
67
  })>;
@@ -1,7 +1,8 @@
1
1
  import * as l from '../lexer';
2
- import { builtInCall } from './builtIn';
3
- import { var_, } from './general';
2
+ import { aggregate, builtInCall } from './builtIn';
3
+ import { var_, varOrTerm, } from './general';
4
4
  import { booleanLiteral, iri, numericLiteral, numericLiteralNegative, numericLiteralPositive, rdfLiteral, } from './literals';
5
+ import { groupGraphPattern } from './whereClause';
5
6
  export const argList = {
6
7
  name: 'argList',
7
8
  impl: ({ CONSUME, SUBRULE1, OPTION, OR, MANY_SEP }) => () => OR([
@@ -33,6 +34,16 @@ export const argList = {
33
34
  },
34
35
  },
35
36
  ]),
37
+ gImpl: ({ SUBRULE }) => (ast) => {
38
+ const builder = ['('];
39
+ if (ast.distinct) {
40
+ builder.push('DISTINCT');
41
+ }
42
+ // Slice brackets
43
+ builder.push(SUBRULE(expression, ast.args, undefined).slice(1, -1));
44
+ builder.push(')');
45
+ return builder.join(' ');
46
+ },
36
47
  };
37
48
  export const expressionList = {
38
49
  name: 'expressionList',
@@ -65,6 +76,47 @@ export const expressionList = {
65
76
  export const expression = {
66
77
  name: 'expression',
67
78
  impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression, undefined),
79
+ gImpl: ({ SUBRULE }) => (ast) => {
80
+ if (Array.isArray(ast)) {
81
+ return `( ${ast.map(arg => SUBRULE(expression, arg, undefined)).join(', ')} )`;
82
+ }
83
+ if ('type' in ast) {
84
+ if (ast.type === 'operation') {
85
+ if (['||', '&&', '=', '!=', '<', '>', '<=', '>=', 'in', '+', '-', '*', '/'].includes(ast.operator)) {
86
+ const [left, right] = ast.args;
87
+ return `( ${SUBRULE(expression, left, undefined)} ${ast.operator} ${SUBRULE(expression, right, undefined)} )`;
88
+ }
89
+ if (ast.operator === 'notin') {
90
+ const [left, right] = ast.args;
91
+ return `( ${SUBRULE(expression, left, undefined)} NOT IN ${SUBRULE(expression, right, undefined)} )`;
92
+ }
93
+ if (['!', 'UPLUS', 'UMINUS'].includes(ast.operator)) {
94
+ const [expr] = ast.args;
95
+ return `${ast.operator}${SUBRULE(expression, expr, undefined)}`;
96
+ }
97
+ if (['in', 'notin'].includes(ast.operator)) {
98
+ // ExpressionList
99
+ const [first, rest] = ast.args;
100
+ const operator = ast.operator === 'in' ? 'IN' : 'NOT IN';
101
+ return `${SUBRULE(expression, first, undefined)} ${operator} ( ${SUBRULE(expression, rest, undefined)} )`;
102
+ }
103
+ if (['exists', 'notexists'].includes(ast.operator)) {
104
+ const patterns = ast.args;
105
+ const operator = ast.operator === 'exists' ? 'EXISTS' : 'NOT EXISTS';
106
+ return `${operator} ${SUBRULE(groupGraphPattern, { type: 'group', patterns }, undefined)}`;
107
+ }
108
+ // It's a builtin function
109
+ return `${ast.operator}( ${ast.args.map(arg => SUBRULE(expression, arg, undefined)).join(', ')} )`;
110
+ }
111
+ if (ast.type === 'functionCall') {
112
+ return SUBRULE(iriOrFunction, ast, undefined);
113
+ }
114
+ if (ast.type === 'aggregate') {
115
+ return SUBRULE(aggregate, ast, undefined);
116
+ }
117
+ }
118
+ return SUBRULE(varOrTerm, ast, undefined);
119
+ },
68
120
  };
69
121
  function constructLeftDeep(startGenerator, restGenerator, ACTION, MANY) {
70
122
  // By using iterExpression, we avoid creating unnecessary arrays
@@ -393,5 +445,11 @@ export const iriOrFunction = {
393
445
  } :
394
446
  iriVal;
395
447
  },
448
+ gImpl: ({ SUBRULE }) => (ast) => {
449
+ if ('function' in ast) {
450
+ return `${SUBRULE(iri, ast.function, undefined)}${SUBRULE(argList, ast, undefined)}`;
451
+ }
452
+ return SUBRULE(iri, ast, undefined);
453
+ },
396
454
  };
397
455
  //# sourceMappingURL=expression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["expression.ts"],"names":[],"mappings":"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","sourcesContent":["import * as l from '../lexer';\nimport type { ImplArgs } from '@traqula/core';\nimport { builtInCall } from './builtIn';\nimport {\n var_,\n} from './general';\nimport {\n booleanLiteral,\n iri,\n numericLiteral,\n numericLiteralNegative,\n numericLiteralPositive,\n rdfLiteral,\n} from './literals';\nimport type {Expression, IriTerm, SparqlRuleDef} from '../Sparql11types';\n\nexport type Operation = '||' | '&&' | RelationalOperator | AdditiveOperator | aggregatorOperator | buildInOperator;\nexport type RelationalOperator = '=' | '!=' | '<' | '>' | '<=' | '>=' | 'in' | 'notin';\nexport type AdditiveOperator = '+' | '-' | '*' | '/';\nexport type unaryOperator = '!' | '+' | '-';\nexport type buildInOperator = 'STR' | 'LANG' | 'LANGMATCHES' | 'DATATYPE' | 'BOUND' | 'IRI' | 'URI' | 'BNODE' |\n 'RAND' | 'ABS' | 'CEIL' | 'FLOOR' | 'ROUND' | 'CONCAT' | 'STRLEN' | 'UCASE' | 'LCASE' | 'ENCODE_FOR_URI' |\n 'CONTAINS' | 'STRSTARTS' | 'STRENDS' | 'STRBEFORE' | 'STRAFTER' | 'YEAR' | 'MONTH' | 'DAY' | 'HOURS' | 'MINUTES' |\n 'SECONDS' | 'TIMEZONE' | 'TZ' | 'NOW' | 'UUID' | 'STRUUID' | 'MD5' | 'SHA1' | 'SHA256' | 'SHA384' | 'SHA512' |\n 'COALESCE' | 'IF' | 'STRLANG' | 'STRDT' | 'sameTerm' | 'isIRI' | 'isURI' | 'isBLANK' | 'isLITERAL' | 'isNUMERIC' |\n 'REGEX' | 'SUBSTR' | 'REPLACE' | 'EXISTS' | 'NOT EXISTS';\nexport type aggregatorOperator = 'COUNT' | 'SUM' | 'MIN' | 'MAX' | 'AVG' | 'SAMPLE' | 'GROUP_CONCAT';\n\n/**\n * [[71]](https://www.w3.org/TR/sparql11-query/#rArgList)\n */\nexport interface IArgList {\n type: 'functionCall';\n args: Expression[];\n distinct: boolean;\n}\nexport const argList: SparqlRuleDef<'argList', IArgList> = <const> {\n name: 'argList',\n impl: ({ CONSUME, SUBRULE1, OPTION, OR, MANY_SEP }) => () => OR<IArgList>([\n {\n ALT: () => {\n CONSUME(l.terminals.nil);\n return {\n type: 'functionCall',\n args: [],\n distinct: false,\n };\n },\n },\n {\n ALT: () => {\n const args: Expression[] = [];\n CONSUME(l.symbols.LParen);\n const distinct = OPTION(() => CONSUME(l.distinct)) && true;\n\n MANY_SEP({\n DEF: () => args.push(SUBRULE1(expression, undefined)),\n SEP: l.symbols.comma,\n });\n CONSUME(l.symbols.RParen);\n\n return {\n type: 'functionCall',\n args,\n distinct: Boolean(distinct),\n };\n },\n },\n ]),\n};\n\nexport const expressionList: SparqlRuleDef<'expressionList', Expression[]> = <const> {\n name: 'expressionList',\n impl: ({ CONSUME, SUBRULE, MANY_SEP, OR }) => () => OR([\n {\n ALT: () => {\n CONSUME(l.terminals.nil);\n return [];\n },\n },\n {\n ALT: () => {\n const args: Expression[] = [];\n CONSUME(l.symbols.LParen);\n MANY_SEP({\n SEP: l.symbols.comma,\n DEF: () => {\n args.push(SUBRULE(expression, undefined));\n },\n });\n CONSUME(l.symbols.RParen);\n return args;\n },\n },\n ]),\n};\n\n/**\n * [[110]](https://www.w3.org/TR/sparql11-query/#rExpression)\n */\nexport const expression: SparqlRuleDef<'expression', Expression> = <const> {\n name: 'expression',\n impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression, undefined),\n};\n\ninterface LeftDeepBuildArgs<T extends string = string> {\n expr: Expression;\n operator: T;\n}\n\nfunction constructLeftDeep<T extends string = string>(\n startGenerator: () => Expression,\n restGenerator: () => LeftDeepBuildArgs<T>,\n ACTION: ImplArgs['ACTION'],\n MANY: ImplArgs['MANY'],\n): Expression {\n// By using iterExpression, we avoid creating unnecessary arrays\n let iterExpr = startGenerator();\n MANY(() => {\n const res = restGenerator();\n ACTION(() => {\n iterExpr = {\n type: 'operation',\n operator: res.operator,\n args: [ iterExpr, res.expr ],\n };\n });\n });\n return iterExpr;\n}\n\n/**\n * [[111]](https://www.w3.org/TR/sparql11-query/#rConditionalOrExpression)\n */\nexport const conditionalOrExpression: SparqlRuleDef<'conditionalOrExpression', Expression> = <const> {\n name: 'conditionalOrExpression',\n impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => () =>\n constructLeftDeep(() => SUBRULE1(conditionalAndExpression, undefined), () => {\n CONSUME(l.symbols.logicOr);\n return {\n expr: SUBRULE2(conditionalAndExpression, undefined),\n operator: '||',\n };\n }, ACTION, MANY)\n ,\n};\n\n/**\n * [[112]](https://www.w3.org/TR/sparql11-query/#rConditionalAndExpression)\n */\nexport const conditionalAndExpression: SparqlRuleDef<'conditionalAndExpression', Expression> = <const> {\n name: 'conditionalAndExpression',\n impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => () => constructLeftDeep(\n () => SUBRULE1(valueLogical, undefined),\n () => {\n CONSUME(l.symbols.logicAnd);\n return {\n expr: SUBRULE2(valueLogical, undefined),\n operator: '&&',\n };\n },\n ACTION,\n MANY,\n ),\n};\n\n/**\n * [[113]](https://www.w3.org/TR/sparql11-query/#rValueLogical)\n */\nexport const valueLogical: SparqlRuleDef<'valueLogical', Expression> = <const> {\n name: 'valueLogical',\n impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression, undefined),\n};\n\n/**\n * [[114]](https://www.w3.org/TR/sparql11-query/#rRelationalExpression)\n */\nexport const relationalExpression: SparqlRuleDef<'relationalExpression', Expression> = <const> {\n name: 'relationalExpression',\n impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR, SUBRULE3, SUBRULE4, SUBRULE5, SUBRULE6, SUBRULE7 }) =>\n () => {\n const args1 = SUBRULE1(numericExpression, undefined);\n const arg2 = OPTION(() => OR<{ operator: RelationalOperator; args: Expression }>([\n {\n ALT: () => {\n CONSUME(l.symbols.equal);\n const expr = SUBRULE2(numericExpression, undefined);\n return { operator: '=', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.notEqual);\n const expr = SUBRULE3(numericExpression, undefined);\n return { operator: '!=', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.lessThan);\n const expr = SUBRULE4(numericExpression, undefined);\n return { operator: '<', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.greaterThan);\n const expr = SUBRULE5(numericExpression, undefined);\n return { operator: '>', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.lessThanEqual);\n const expr = SUBRULE6(numericExpression, undefined);\n return { operator: '<=', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.greaterThanEqual);\n const expr = SUBRULE7(numericExpression, undefined);\n return { operator: '>=', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.in_);\n const args = SUBRULE1(expressionList, undefined);\n return { operator: 'in', args };\n },\n },\n {\n ALT: () => {\n CONSUME(l.notIn);\n const args = SUBRULE2(expressionList, undefined);\n return { operator: 'notin', args };\n },\n },\n ]));\n if (!arg2) {\n return args1;\n }\n return ACTION(() => ({\n type: 'operation',\n operator: arg2.operator,\n args: [ args1, arg2.args ],\n }));\n },\n};\n\n/**\n * [[115]](https://www.w3.org/TR/sparql11-query/#rNumericExpression)\n */\nexport const numericExpression: SparqlRuleDef<'numericExpression', Expression> = <const> {\n name: 'numericExpression',\n impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression, undefined),\n};\n\n/**\n * [[116]](https://www.w3.org/TR/sparql11-query/#rAdditiveExpression)\n */\nexport const additiveExpression: SparqlRuleDef<'additiveExpression', Expression> = <const> {\n name: 'additiveExpression',\n impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, MANY1, MANY2, OR1, OR2, OR3 }) => () =>\n constructLeftDeep(\n () => SUBRULE1(multiplicativeExpression, undefined),\n () => OR1([\n {\n ALT: () => {\n CONSUME(l.symbols.opPlus);\n return {\n operator: '+',\n expr: SUBRULE2(multiplicativeExpression, undefined),\n };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.opMinus);\n return {\n operator: '-',\n expr: SUBRULE3(multiplicativeExpression, undefined),\n };\n },\n },\n {\n ALT: () => {\n // The operator of this alternative is actually parsed as part of the signed numeric literal. (note #6)\n const { operator, args } = OR2([\n {\n ALT: () => {\n // Note #6. No spaces are allowed between the sign and a number.\n // In this rule however, we do not want to care about this.\n const integer = SUBRULE(numericLiteralPositive, undefined);\n return ACTION(() => {\n integer.value = integer.value.replace(/^\\+/u, '');\n return {\n operator: '+',\n args: [ integer ],\n };\n });\n },\n },\n {\n ALT: () => {\n const integer = SUBRULE(numericLiteralNegative, undefined);\n return ACTION(() => {\n integer.value = integer.value.replace(/^-/u, '');\n return {\n operator: '-',\n args: [ integer ],\n };\n });\n },\n },\n ]);\n const expr = constructLeftDeep(\n () => ACTION(() => args[0]),\n () => OR3<{ expr: Expression; operator: string }>([\n {\n ALT: () => {\n CONSUME(l.symbols.star);\n const expr = SUBRULE1(unaryExpression, undefined);\n return {\n operator: '*',\n expr,\n };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.slash);\n const expr = SUBRULE2(unaryExpression, undefined);\n return {\n operator: '/',\n expr,\n };\n },\n },\n ]),\n ACTION,\n MANY2,\n );\n return {\n operator,\n expr,\n };\n },\n },\n ]),\n ACTION,\n MANY1,\n ),\n};\n\n/**\n * [[117]](https://www.w3.org/TR/sparql11-query/#rMultiplicativeExpression)\n */\nexport const multiplicativeExpression: SparqlRuleDef<'multiplicativeExpression', Expression> = <const> {\n name: 'multiplicativeExpression',\n impl: ({ ACTION, CONSUME, MANY, SUBRULE1, SUBRULE2, SUBRULE3, OR }) => () => constructLeftDeep(\n () => SUBRULE1(unaryExpression, undefined),\n () => OR<LeftDeepBuildArgs>([\n {\n ALT: () => {\n CONSUME(l.symbols.star);\n const expr = SUBRULE2(unaryExpression, undefined);\n return {\n operator: '*',\n expr,\n };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.slash);\n const expr = SUBRULE3(unaryExpression, undefined);\n return {\n operator: '/',\n expr,\n };\n },\n },\n ]),\n ACTION,\n MANY,\n ),\n};\n\n/**\n * [[118]](https://www.w3.org/TR/sparql11-query/#rUnaryExpression)\n */\nexport const unaryExpression: SparqlRuleDef<'unaryExpression', Expression> = <const> {\n name: 'unaryExpression',\n impl: ({ CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, SUBRULE4, OR }) => () => OR<Expression>([\n {\n ALT: () => {\n CONSUME(l.symbols.exclamation);\n const expr = SUBRULE1(primaryExpression, undefined);\n return {\n type: 'operation',\n operator: '!',\n args: [ expr ],\n };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.opPlus);\n const expr = SUBRULE2(primaryExpression, undefined);\n return {\n type: 'operation',\n operator: 'UPLUS',\n args: [ expr ],\n };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.opMinus);\n const expr = SUBRULE3(primaryExpression, undefined);\n return {\n type: 'operation',\n operator: 'UMINUS',\n args: [ expr ],\n };\n },\n },\n { ALT: () => SUBRULE4(primaryExpression, undefined) },\n ]),\n};\n\n/**\n * [[119]](https://www.w3.org/TR/sparql11-query/#rPrimaryExpression)\n */\nexport const primaryExpression: SparqlRuleDef<'primaryExpression', Expression> = <const> {\n name: 'primaryExpression',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(brackettedExpression, undefined) },\n { ALT: () => SUBRULE(builtInCall, undefined) },\n { ALT: () => SUBRULE(iriOrFunction, undefined) },\n { ALT: () => SUBRULE(rdfLiteral, undefined) },\n { ALT: () => SUBRULE(numericLiteral, undefined) },\n { ALT: () => SUBRULE(booleanLiteral, undefined) },\n { ALT: () => SUBRULE(var_, undefined) },\n ]),\n};\n\n/**\n * [[120]](https://www.w3.org/TR/sparql11-query/#rBrackettedExpression)\n */\nexport const brackettedExpression: SparqlRuleDef<'brackettedExpression', Expression> = <const> {\n name: 'brackettedExpression',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.symbols.LParen);\n const expr = SUBRULE(expression, undefined);\n CONSUME(l.symbols.RParen);\n\n return expr;\n },\n};\n\n/**\n * [[128]](https://www.w3.org/TR/sparql11-query/#ririOrFunction)\n */\nexport const iriOrFunction: SparqlRuleDef<'iriOrFunction', IriTerm | (IArgList & { function: IriTerm })> = <const> {\n name: 'iriOrFunction',\n impl: ({ SUBRULE, OPTION }) => () => {\n const iriVal = SUBRULE(iri, undefined);\n const args = OPTION(() => SUBRULE(argList, undefined));\n return args ?\n {\n ...args,\n function: iriVal,\n } :\n iriVal;\n },\n};\n"]}
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["expression.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ImplArgs } from '@traqula/core';\nimport * as l from '../lexer';\nimport type {\n Expression,\n IriTerm,\n Pattern,\n SparqlGrammarRule,\n SparqlRule,\n} from '../Sparql11types';\nimport { aggregate, builtInCall } from './builtIn';\nimport {\n var_,\n varOrTerm,\n} from './general';\nimport {\n booleanLiteral,\n iri,\n numericLiteral,\n numericLiteralNegative,\n numericLiteralPositive,\n rdfLiteral,\n} from './literals';\nimport { groupGraphPattern } from './whereClause';\n\nexport type Operation = '||' | '&&' | RelationalOperator | AdditiveOperator | aggregatorOperator | buildInOperator;\nexport type RelationalOperator = '=' | '!=' | '<' | '>' | '<=' | '>=' | 'in' | 'notin';\nexport type AdditiveOperator = '+' | '-' | '*' | '/';\nexport type unaryOperator = '!' | '+' | '-';\nexport type buildInOperator = 'STR' | 'LANG' | 'LANGMATCHES' | 'DATATYPE' | 'BOUND' | 'IRI' | 'URI' | 'BNODE' |\n 'RAND' | 'ABS' | 'CEIL' | 'FLOOR' | 'ROUND' | 'CONCAT' | 'STRLEN' | 'UCASE' | 'LCASE' | 'ENCODE_FOR_URI' |\n 'CONTAINS' | 'STRSTARTS' | 'STRENDS' | 'STRBEFORE' | 'STRAFTER' | 'YEAR' | 'MONTH' | 'DAY' | 'HOURS' | 'MINUTES' |\n 'SECONDS' | 'TIMEZONE' | 'TZ' | 'NOW' | 'UUID' | 'STRUUID' | 'MD5' | 'SHA1' | 'SHA256' | 'SHA384' | 'SHA512' |\n 'COALESCE' | 'IF' | 'STRLANG' | 'STRDT' | 'sameTerm' | 'isIRI' | 'isURI' | 'isBLANK' | 'isLITERAL' | 'isNUMERIC' |\n 'REGEX' | 'SUBSTR' | 'REPLACE' | 'EXISTS' | 'NOT EXISTS';\nexport type aggregatorOperator = 'COUNT' | 'SUM' | 'MIN' | 'MAX' | 'AVG' | 'SAMPLE' | 'GROUP_CONCAT';\n\n/**\n * [[71]](https://www.w3.org/TR/sparql11-query/#rArgList)\n */\nexport interface IArgList {\n type: 'functionCall';\n args: Expression[];\n distinct?: boolean;\n}\nexport const argList: SparqlRule<'argList', IArgList> = <const> {\n name: 'argList',\n impl: ({ CONSUME, SUBRULE1, OPTION, OR, MANY_SEP }) => () => OR<IArgList>([\n {\n ALT: () => {\n CONSUME(l.terminals.nil);\n return {\n type: 'functionCall',\n args: [],\n distinct: false,\n };\n },\n },\n {\n ALT: () => {\n const args: Expression[] = [];\n CONSUME(l.symbols.LParen);\n const distinct = OPTION(() => CONSUME(l.distinct)) && true;\n\n MANY_SEP({\n DEF: () => args.push(SUBRULE1(expression, undefined)),\n SEP: l.symbols.comma,\n });\n CONSUME(l.symbols.RParen);\n\n return {\n type: 'functionCall',\n args,\n distinct: Boolean(distinct),\n };\n },\n },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n const builder = [ '(' ];\n if (ast.distinct) {\n builder.push('DISTINCT');\n }\n // Slice brackets\n builder.push(SUBRULE(expression, ast.args, undefined).slice(1, -1));\n builder.push(')');\n return builder.join(' ');\n },\n};\n\nexport const expressionList: SparqlGrammarRule<'expressionList', Expression[]> = <const> {\n name: 'expressionList',\n impl: ({ CONSUME, SUBRULE, MANY_SEP, OR }) => () => OR([\n {\n ALT: () => {\n CONSUME(l.terminals.nil);\n return [];\n },\n },\n {\n ALT: () => {\n const args: Expression[] = [];\n CONSUME(l.symbols.LParen);\n MANY_SEP({\n SEP: l.symbols.comma,\n DEF: () => {\n args.push(SUBRULE(expression, undefined));\n },\n });\n CONSUME(l.symbols.RParen);\n return args;\n },\n },\n ]),\n};\n\n/**\n * [[110]](https://www.w3.org/TR/sparql11-query/#rExpression)\n */\nexport const expression: SparqlRule<'expression', Expression> = <const> {\n name: 'expression',\n impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression, undefined),\n gImpl: ({ SUBRULE }) => (ast) => {\n if (Array.isArray(ast)) {\n return `( ${ast.map(arg => SUBRULE(expression, arg, undefined)).join(', ')} )`;\n }\n if ('type' in ast) {\n if (ast.type === 'operation') {\n if ([ '||', '&&', '=', '!=', '<', '>', '<=', '>=', 'in', '+', '-', '*', '/' ].includes(ast.operator)) {\n const [ left, right ] = <[Expression, Expression]>ast.args;\n return `( ${SUBRULE(expression, left, undefined)} ${ast.operator} ${SUBRULE(expression, right, undefined)} )`;\n }\n if (ast.operator === 'notin') {\n const [ left, right ] = <[Expression, Expression]>ast.args;\n return `( ${SUBRULE(expression, left, undefined)} NOT IN ${SUBRULE(expression, right, undefined)} )`;\n }\n if ([ '!', 'UPLUS', 'UMINUS' ].includes(ast.operator)) {\n const [ expr ] = <[Expression]>ast.args;\n return `${ast.operator}${SUBRULE(expression, expr, undefined)}`;\n }\n if ([ 'in', 'notin' ].includes(ast.operator)) {\n // ExpressionList\n const [ first, rest ] = <Expression[]>ast.args;\n const operator = ast.operator === 'in' ? 'IN' : 'NOT IN';\n return `${SUBRULE(expression, first, undefined)} ${operator} ( ${SUBRULE(expression, rest, undefined)} )`;\n }\n if ([ 'exists', 'notexists' ].includes(ast.operator)) {\n const patterns = <[Pattern]>ast.args;\n const operator = ast.operator === 'exists' ? 'EXISTS' : 'NOT EXISTS';\n return `${operator} ${SUBRULE(groupGraphPattern, { type: 'group', patterns }, undefined)}`;\n }\n // It's a builtin function\n return `${ast.operator}( ${ast.args.map(arg => SUBRULE(expression, <Expression>arg, undefined)).join(', ')} )`;\n }\n if (ast.type === 'functionCall') {\n return SUBRULE(iriOrFunction, ast, undefined);\n }\n if (ast.type === 'aggregate') {\n return SUBRULE(aggregate, ast, undefined);\n }\n }\n return SUBRULE(varOrTerm, ast, undefined);\n },\n};\n\ninterface LeftDeepBuildArgs<T extends string = string> {\n expr: Expression;\n operator: T;\n}\n\nfunction constructLeftDeep<T extends string = string>(\n startGenerator: () => Expression,\n restGenerator: () => LeftDeepBuildArgs<T>,\n ACTION: ImplArgs['ACTION'],\n MANY: ImplArgs['MANY'],\n): Expression {\n// By using iterExpression, we avoid creating unnecessary arrays\n let iterExpr = startGenerator();\n MANY(() => {\n const res = restGenerator();\n ACTION(() => {\n iterExpr = {\n type: 'operation',\n operator: res.operator,\n args: [ iterExpr, res.expr ],\n };\n });\n });\n return iterExpr;\n}\n\n/**\n * [[111]](https://www.w3.org/TR/sparql11-query/#rConditionalOrExpression)\n */\nexport const conditionalOrExpression: SparqlGrammarRule<'conditionalOrExpression', Expression> = <const> {\n name: 'conditionalOrExpression',\n impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => () =>\n constructLeftDeep(() => SUBRULE1(conditionalAndExpression, undefined), () => {\n CONSUME(l.symbols.logicOr);\n return {\n expr: SUBRULE2(conditionalAndExpression, undefined),\n operator: '||',\n };\n }, ACTION, MANY),\n};\n\n/**\n * [[112]](https://www.w3.org/TR/sparql11-query/#rConditionalAndExpression)\n */\nexport const conditionalAndExpression: SparqlGrammarRule<'conditionalAndExpression', Expression> = <const> {\n name: 'conditionalAndExpression',\n impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => () => constructLeftDeep(\n () => SUBRULE1(valueLogical, undefined),\n () => {\n CONSUME(l.symbols.logicAnd);\n return {\n expr: SUBRULE2(valueLogical, undefined),\n operator: '&&',\n };\n },\n ACTION,\n MANY,\n ),\n};\n\n/**\n * [[113]](https://www.w3.org/TR/sparql11-query/#rValueLogical)\n */\nexport const valueLogical: SparqlGrammarRule<'valueLogical', Expression> = <const> {\n name: 'valueLogical',\n impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression, undefined),\n};\n\n/**\n * [[114]](https://www.w3.org/TR/sparql11-query/#rRelationalExpression)\n */\nexport const relationalExpression: SparqlGrammarRule<'relationalExpression', Expression> = <const> {\n name: 'relationalExpression',\n impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR, SUBRULE3, SUBRULE4, SUBRULE5, SUBRULE6, SUBRULE7 }) =>\n () => {\n const args1 = SUBRULE1(numericExpression, undefined);\n const arg2 = OPTION(() => OR<{ operator: RelationalOperator; args: Expression }>([\n {\n ALT: () => {\n CONSUME(l.symbols.equal);\n const expr = SUBRULE2(numericExpression, undefined);\n return { operator: '=', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.notEqual);\n const expr = SUBRULE3(numericExpression, undefined);\n return { operator: '!=', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.lessThan);\n const expr = SUBRULE4(numericExpression, undefined);\n return { operator: '<', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.greaterThan);\n const expr = SUBRULE5(numericExpression, undefined);\n return { operator: '>', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.lessThanEqual);\n const expr = SUBRULE6(numericExpression, undefined);\n return { operator: '<=', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.greaterThanEqual);\n const expr = SUBRULE7(numericExpression, undefined);\n return { operator: '>=', args: expr };\n },\n },\n {\n ALT: () => {\n CONSUME(l.in_);\n const args = SUBRULE1(expressionList, undefined);\n return { operator: 'in', args };\n },\n },\n {\n ALT: () => {\n CONSUME(l.notIn);\n const args = SUBRULE2(expressionList, undefined);\n return { operator: 'notin', args };\n },\n },\n ]));\n if (!arg2) {\n return args1;\n }\n return ACTION(() => ({\n type: 'operation',\n operator: arg2.operator,\n args: [ args1, arg2.args ],\n }));\n },\n};\n\n/**\n * [[115]](https://www.w3.org/TR/sparql11-query/#rNumericExpression)\n */\nexport const numericExpression: SparqlGrammarRule<'numericExpression', Expression> = <const> {\n name: 'numericExpression',\n impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression, undefined),\n};\n\n/**\n * [[116]](https://www.w3.org/TR/sparql11-query/#rAdditiveExpression)\n */\nexport const additiveExpression: SparqlGrammarRule<'additiveExpression', Expression> = <const> {\n name: 'additiveExpression',\n impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, MANY1, MANY2, OR1, OR2, OR3 }) => () =>\n constructLeftDeep(\n () => SUBRULE1(multiplicativeExpression, undefined),\n () => OR1([\n {\n ALT: () => {\n CONSUME(l.symbols.opPlus);\n return {\n operator: '+',\n expr: SUBRULE2(multiplicativeExpression, undefined),\n };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.opMinus);\n return {\n operator: '-',\n expr: SUBRULE3(multiplicativeExpression, undefined),\n };\n },\n },\n {\n ALT: () => {\n // The operator of this alternative is actually parsed as part of the signed numeric literal. (note #6)\n const { operator, args } = OR2([\n {\n ALT: () => {\n // Note #6. No spaces are allowed between the sign and a number.\n // In this rule however, we do not want to care about this.\n const integer = SUBRULE(numericLiteralPositive, undefined);\n return ACTION(() => {\n integer.value = integer.value.replace(/^\\+/u, '');\n return {\n operator: '+',\n args: [ integer ],\n };\n });\n },\n },\n {\n ALT: () => {\n const integer = SUBRULE(numericLiteralNegative, undefined);\n return ACTION(() => {\n integer.value = integer.value.replace(/^-/u, '');\n return {\n operator: '-',\n args: [ integer ],\n };\n });\n },\n },\n ]);\n const expr = constructLeftDeep(\n () => ACTION(() => args[0]),\n () => OR3<{ expr: Expression; operator: string }>([\n {\n ALT: () => {\n CONSUME(l.symbols.star);\n const expr = SUBRULE1(unaryExpression, undefined);\n return {\n operator: '*',\n expr,\n };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.slash);\n const expr = SUBRULE2(unaryExpression, undefined);\n return {\n operator: '/',\n expr,\n };\n },\n },\n ]),\n ACTION,\n MANY2,\n );\n return {\n operator,\n expr,\n };\n },\n },\n ]),\n ACTION,\n MANY1,\n ),\n};\n\n/**\n * [[117]](https://www.w3.org/TR/sparql11-query/#rMultiplicativeExpression)\n */\nexport const multiplicativeExpression: SparqlGrammarRule<'multiplicativeExpression', Expression> = <const> {\n name: 'multiplicativeExpression',\n impl: ({ ACTION, CONSUME, MANY, SUBRULE1, SUBRULE2, SUBRULE3, OR }) => () => constructLeftDeep(\n () => SUBRULE1(unaryExpression, undefined),\n () => OR<LeftDeepBuildArgs>([\n {\n ALT: () => {\n CONSUME(l.symbols.star);\n const expr = SUBRULE2(unaryExpression, undefined);\n return {\n operator: '*',\n expr,\n };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.slash);\n const expr = SUBRULE3(unaryExpression, undefined);\n return {\n operator: '/',\n expr,\n };\n },\n },\n ]),\n ACTION,\n MANY,\n ),\n};\n\n/**\n * [[118]](https://www.w3.org/TR/sparql11-query/#rUnaryExpression)\n */\nexport const unaryExpression: SparqlGrammarRule<'unaryExpression', Expression> = <const> {\n name: 'unaryExpression',\n impl: ({ CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, SUBRULE4, OR }) => () => OR<Expression>([\n {\n ALT: () => {\n CONSUME(l.symbols.exclamation);\n const expr = SUBRULE1(primaryExpression, undefined);\n return {\n type: 'operation',\n operator: '!',\n args: [ expr ],\n };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.opPlus);\n const expr = SUBRULE2(primaryExpression, undefined);\n return {\n type: 'operation',\n operator: 'UPLUS',\n args: [ expr ],\n };\n },\n },\n {\n ALT: () => {\n CONSUME(l.symbols.opMinus);\n const expr = SUBRULE3(primaryExpression, undefined);\n return {\n type: 'operation',\n operator: 'UMINUS',\n args: [ expr ],\n };\n },\n },\n { ALT: () => SUBRULE4(primaryExpression, undefined) },\n ]),\n};\n\n/**\n * [[119]](https://www.w3.org/TR/sparql11-query/#rPrimaryExpression)\n */\nexport const primaryExpression: SparqlGrammarRule<'primaryExpression', Expression> = <const> {\n name: 'primaryExpression',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(brackettedExpression, undefined) },\n { ALT: () => SUBRULE(builtInCall, undefined) },\n { ALT: () => SUBRULE(iriOrFunction, undefined) },\n { ALT: () => SUBRULE(rdfLiteral, undefined) },\n { ALT: () => SUBRULE(numericLiteral, undefined) },\n { ALT: () => SUBRULE(booleanLiteral, undefined) },\n { ALT: () => SUBRULE(var_, undefined) },\n ]),\n};\n\n/**\n * [[120]](https://www.w3.org/TR/sparql11-query/#rBrackettedExpression)\n */\nexport const brackettedExpression: SparqlGrammarRule<'brackettedExpression', Expression> = <const> {\n name: 'brackettedExpression',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.symbols.LParen);\n const expr = SUBRULE(expression, undefined);\n CONSUME(l.symbols.RParen);\n\n return expr;\n },\n};\n\n/**\n * [[128]](https://www.w3.org/TR/sparql11-query/#ririOrFunction)\n */\nexport const iriOrFunction: SparqlRule<'iriOrFunction', IriTerm | (IArgList & { function: IriTerm })> = <const> {\n name: 'iriOrFunction',\n impl: ({ SUBRULE, OPTION }) => () => {\n const iriVal = SUBRULE(iri, undefined);\n const args = OPTION(() => SUBRULE(argList, undefined));\n return args ?\n {\n ...args,\n function: iriVal,\n } :\n iriVal;\n },\n gImpl: ({ SUBRULE }) => (ast) => {\n if ('function' in ast) {\n return `${SUBRULE(iri, ast.function, undefined)}${SUBRULE(argList, ast, undefined)}`;\n }\n return SUBRULE(iri, ast, undefined);\n },\n};\n"]}
@@ -1,40 +1,36 @@
1
- import type { GraphTerm, Term, Triple, VerbA, IriTerm, VariableTerm, BaseQuery, SparqlRuleDef } from '../Sparql11types';
1
+ import type { GraphTerm, Term, VerbA, IriTerm, VariableTerm, BaseQuery, SparqlGrammarRule, SparqlRule } from '../Sparql11types';
2
2
  /**
3
3
  * [[4]](https://www.w3.org/TR/sparql11-query/#rPrologue)
4
4
  */
5
- export declare const prologue: SparqlRuleDef<'prologue', Pick<BaseQuery, 'base' | 'prefixes'>>;
5
+ export declare const prologue: SparqlRule<'prologue', Pick<BaseQuery, 'base' | 'prefixes'>>;
6
6
  /**
7
7
  * Registers base IRI in the context and returns it.
8
8
  * [[5]](https://www.w3.org/TR/sparql11-query/#rBaseDecl)
9
9
  */
10
- export declare const baseDecl: SparqlRuleDef<'baseDecl', string>;
10
+ export declare const baseDecl: SparqlGrammarRule<'baseDecl', string>;
11
11
  /**
12
12
  * Registers prefix in the context and returns registered key-value-pair.
13
13
  * [[6]](https://www.w3.org/TR/sparql11-query/#rPrefixDecl)
14
14
  */
15
- export declare const prefixDecl: SparqlRuleDef<'prefixDecl', [string, string]>;
16
- /**
17
- * [[52]](https://www.w3.org/TR/sparql11-query/#rTriplesTemplate)
18
- */
19
- export declare const triplesTemplate: SparqlRuleDef<'triplesTemplate', Triple[]>;
15
+ export declare const prefixDecl: SparqlGrammarRule<'prefixDecl', [string, string]>;
20
16
  /**
21
17
  * [[78]](https://www.w3.org/TR/sparql11-query/#rVerb)
22
18
  */
23
- export declare const verb: SparqlRuleDef<'verb', VariableTerm | IriTerm>;
24
- export declare const verbA: SparqlRuleDef<'VerbA', VerbA>;
19
+ export declare const verb: SparqlGrammarRule<'verb', VariableTerm | IriTerm>;
20
+ export declare const verbA: SparqlGrammarRule<'VerbA', VerbA>;
25
21
  /**
26
22
  * [[106]](https://www.w3.org/TR/sparql11-query/#rVarOrTerm)
27
23
  */
28
- export declare const varOrTerm: SparqlRuleDef<'varOrTerm', Term>;
24
+ export declare const varOrTerm: SparqlRule<'varOrTerm', Term>;
29
25
  /**
30
26
  * [[107]](https://www.w3.org/TR/sparql11-query/#rVarOrIri)
31
27
  */
32
- export declare const varOrIri: SparqlRuleDef<'varOrIri', IriTerm | VariableTerm>;
28
+ export declare const varOrIri: SparqlGrammarRule<'varOrIri', IriTerm | VariableTerm>;
33
29
  /**
34
30
  * [[108]](https://www.w3.org/TR/sparql11-query/#rVar)
35
31
  */
36
- export declare const var_: SparqlRuleDef<'var', VariableTerm>;
32
+ export declare const var_: SparqlRule<'var', VariableTerm>;
37
33
  /**
38
34
  * [[109]](https://www.w3.org/TR/sparql11-query/#rGraphTerm)
39
35
  */
40
- export declare const graphTerm: SparqlRuleDef<'graphTerm', GraphTerm>;
36
+ export declare const graphTerm: SparqlRule<'graphTerm', GraphTerm>;