@traqula/rules-sparql-1-1 0.0.1-alpha.145 → 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 +83 -32
  3. package/lib/Sparql11types.js.map +1 -1
  4. package/lib/SparqlParser.d.ts +14 -0
  5. package/lib/SparqlParser.js +29 -0
  6. package/lib/SparqlParser.js.map +1 -0
  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 -7
  11. package/lib/expressionHelpers.js +21 -21
  12. package/lib/expressionHelpers.js.map +1 -1
  13. package/lib/grammar/builtIn.d.ts +7 -9
  14. package/lib/grammar/builtIn.js +90 -75
  15. package/lib/grammar/builtIn.js.map +1 -1
  16. package/lib/grammar/dataSetClause.d.ts +5 -6
  17. package/lib/grammar/dataSetClause.js +6 -5
  18. package/lib/grammar/dataSetClause.js.map +1 -1
  19. package/lib/grammar/expression.d.ts +16 -17
  20. package/lib/grammar/expression.js +102 -44
  21. package/lib/grammar/expression.js.map +1 -1
  22. package/lib/grammar/general.d.ts +10 -16
  23. package/lib/grammar/general.js +71 -63
  24. package/lib/grammar/general.js.map +1 -1
  25. package/lib/grammar/literals.d.ts +11 -12
  26. package/lib/grammar/literals.js +101 -33
  27. package/lib/grammar/literals.js.map +1 -1
  28. package/lib/grammar/propertyPaths.d.ts +11 -12
  29. package/lib/grammar/propertyPaths.js +42 -24
  30. package/lib/grammar/propertyPaths.js.map +1 -1
  31. package/lib/grammar/queryUnit/queryUnit.d.ts +13 -14
  32. package/lib/grammar/queryUnit/queryUnit.js +146 -51
  33. package/lib/grammar/queryUnit/queryUnit.js.map +1 -1
  34. package/lib/grammar/solutionModifier.d.ts +11 -12
  35. package/lib/grammar/solutionModifier.js +61 -27
  36. package/lib/grammar/solutionModifier.js.map +1 -1
  37. package/lib/grammar/tripleBlock.d.ts +26 -23
  38. package/lib/grammar/tripleBlock.js +81 -55
  39. package/lib/grammar/tripleBlock.js.map +1 -1
  40. package/lib/grammar/updateUnit/updateUnit.d.ts +25 -26
  41. package/lib/grammar/updateUnit/updateUnit.js +208 -73
  42. package/lib/grammar/updateUnit/updateUnit.js.map +1 -1
  43. package/lib/grammar/whereClause.d.ts +19 -20
  44. package/lib/grammar/whereClause.js +113 -42
  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 +2284 -1424
  50. package/lib/index.d.ts +3 -0
  51. package/lib/index.js +3 -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 +16 -27
  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,6 +1,6 @@
1
- import * as l from '../lexer';
2
- import { baseAggregateFunc, funcExpr1, funcExpr2, funcExpr2or3, funcExpr3, funcExpr3or4, funcExprList1, funcGroupGraphPattern, funcNil1, funcVar1, } from '../expressionHelpers';
3
1
  import { unCapitalize, } from '@traqula/core';
2
+ import { baseAggregateFunc, funcExpr1, funcExpr2, funcExpr2or3, funcExpr3, funcExpr3or4, funcExprList1, funcGroupGraphPattern, funcNil1, funcVar1, } from '../expressionHelpers';
3
+ import * as l from '../lexer';
4
4
  import { expression } from './expression';
5
5
  import { string } from './literals';
6
6
  export const builtInStr = funcExpr1(l.builtIn.str);
@@ -19,7 +19,7 @@ export const builtInBnodeSparqlJs = {
19
19
  {
20
20
  ALT: () => {
21
21
  CONSUME(l.symbols.LParen);
22
- const arg = SUBRULE(expression);
22
+ const arg = SUBRULE(expression, undefined);
23
23
  CONSUME(l.symbols.RParen);
24
24
  return [arg];
25
25
  },
@@ -82,61 +82,61 @@ export const builtInIsliteral = funcExpr1(l.builtIn.isliteral);
82
82
  export const builtInIsnumeric = funcExpr1(l.builtIn.isnumeric);
83
83
  export function builtInCallList(SUBRULE) {
84
84
  return [
85
- { ALT: () => SUBRULE(aggregate) },
86
- { ALT: () => SUBRULE(builtInStr) },
87
- { ALT: () => SUBRULE(builtInLang) },
88
- { ALT: () => SUBRULE(builtInLangmatches) },
89
- { ALT: () => SUBRULE(builtInDatatype) },
90
- { ALT: () => SUBRULE(builtInBound) },
91
- { ALT: () => SUBRULE(builtInIri) },
92
- { ALT: () => SUBRULE(builtInUri) },
93
- { ALT: () => SUBRULE(builtInBnodeSparqlJs) },
94
- { ALT: () => SUBRULE(builtInRand) },
95
- { ALT: () => SUBRULE(builtInAbs) },
96
- { ALT: () => SUBRULE(builtInCeil) },
97
- { ALT: () => SUBRULE(builtInFloor) },
98
- { ALT: () => SUBRULE(builtInRound) },
99
- { ALT: () => SUBRULE(builtInConcat) },
100
- { ALT: () => SUBRULE(substringExpression) },
101
- { ALT: () => SUBRULE(builtInStrlen) },
102
- { ALT: () => SUBRULE(strReplaceExpression) },
103
- { ALT: () => SUBRULE(builtInUcase) },
104
- { ALT: () => SUBRULE(builtInLcase) },
105
- { ALT: () => SUBRULE(builtInEncode_for_uri) },
106
- { ALT: () => SUBRULE(builtInContains) },
107
- { ALT: () => SUBRULE(builtInStrstarts) },
108
- { ALT: () => SUBRULE(builtInStrends) },
109
- { ALT: () => SUBRULE(builtInStrbefore) },
110
- { ALT: () => SUBRULE(builtInStrafter) },
111
- { ALT: () => SUBRULE(builtInYear) },
112
- { ALT: () => SUBRULE(builtInMonth) },
113
- { ALT: () => SUBRULE(builtInDay) },
114
- { ALT: () => SUBRULE(builtInHours) },
115
- { ALT: () => SUBRULE(builtInMinutes) },
116
- { ALT: () => SUBRULE(builtInSeconds) },
117
- { ALT: () => SUBRULE(builtInTimezone) },
118
- { ALT: () => SUBRULE(builtInTz) },
119
- { ALT: () => SUBRULE(builtInNow) },
120
- { ALT: () => SUBRULE(builtInUuid) },
121
- { ALT: () => SUBRULE(builtInStruuid) },
122
- { ALT: () => SUBRULE(builtInMd5) },
123
- { ALT: () => SUBRULE(builtInSha1) },
124
- { ALT: () => SUBRULE(builtInSha256) },
125
- { ALT: () => SUBRULE(builtInSha384) },
126
- { ALT: () => SUBRULE(builtInSha512) },
127
- { ALT: () => SUBRULE(builtInCoalesce) },
128
- { ALT: () => SUBRULE(builtInIf) },
129
- { ALT: () => SUBRULE(builtInStrlang) },
130
- { ALT: () => SUBRULE(builtInStrdt) },
131
- { ALT: () => SUBRULE(builtInSameterm) },
132
- { ALT: () => SUBRULE(builtInIsiri) },
133
- { ALT: () => SUBRULE(builtInIsuri) },
134
- { ALT: () => SUBRULE(builtInIsblank) },
135
- { ALT: () => SUBRULE(builtInIsliteral) },
136
- { ALT: () => SUBRULE(builtInIsnumeric) },
137
- { ALT: () => SUBRULE(regexExpression) },
138
- { ALT: () => SUBRULE(existsFunc) },
139
- { ALT: () => SUBRULE(notExistsFunc) },
85
+ { ALT: () => SUBRULE(aggregate, undefined) },
86
+ { ALT: () => SUBRULE(builtInStr, undefined) },
87
+ { ALT: () => SUBRULE(builtInLang, undefined) },
88
+ { ALT: () => SUBRULE(builtInLangmatches, undefined) },
89
+ { ALT: () => SUBRULE(builtInDatatype, undefined) },
90
+ { ALT: () => SUBRULE(builtInBound, undefined) },
91
+ { ALT: () => SUBRULE(builtInIri, undefined) },
92
+ { ALT: () => SUBRULE(builtInUri, undefined) },
93
+ { ALT: () => SUBRULE(builtInBnodeSparqlJs, undefined) },
94
+ { ALT: () => SUBRULE(builtInRand, undefined) },
95
+ { ALT: () => SUBRULE(builtInAbs, undefined) },
96
+ { ALT: () => SUBRULE(builtInCeil, undefined) },
97
+ { ALT: () => SUBRULE(builtInFloor, undefined) },
98
+ { ALT: () => SUBRULE(builtInRound, undefined) },
99
+ { ALT: () => SUBRULE(builtInConcat, undefined) },
100
+ { ALT: () => SUBRULE(substringExpression, undefined) },
101
+ { ALT: () => SUBRULE(builtInStrlen, undefined) },
102
+ { ALT: () => SUBRULE(strReplaceExpression, undefined) },
103
+ { ALT: () => SUBRULE(builtInUcase, undefined) },
104
+ { ALT: () => SUBRULE(builtInLcase, undefined) },
105
+ { ALT: () => SUBRULE(builtInEncode_for_uri, undefined) },
106
+ { ALT: () => SUBRULE(builtInContains, undefined) },
107
+ { ALT: () => SUBRULE(builtInStrstarts, undefined) },
108
+ { ALT: () => SUBRULE(builtInStrends, undefined) },
109
+ { ALT: () => SUBRULE(builtInStrbefore, undefined) },
110
+ { ALT: () => SUBRULE(builtInStrafter, undefined) },
111
+ { ALT: () => SUBRULE(builtInYear, undefined) },
112
+ { ALT: () => SUBRULE(builtInMonth, undefined) },
113
+ { ALT: () => SUBRULE(builtInDay, undefined) },
114
+ { ALT: () => SUBRULE(builtInHours, undefined) },
115
+ { ALT: () => SUBRULE(builtInMinutes, undefined) },
116
+ { ALT: () => SUBRULE(builtInSeconds, undefined) },
117
+ { ALT: () => SUBRULE(builtInTimezone, undefined) },
118
+ { ALT: () => SUBRULE(builtInTz, undefined) },
119
+ { ALT: () => SUBRULE(builtInNow, undefined) },
120
+ { ALT: () => SUBRULE(builtInUuid, undefined) },
121
+ { ALT: () => SUBRULE(builtInStruuid, undefined) },
122
+ { ALT: () => SUBRULE(builtInMd5, undefined) },
123
+ { ALT: () => SUBRULE(builtInSha1, undefined) },
124
+ { ALT: () => SUBRULE(builtInSha256, undefined) },
125
+ { ALT: () => SUBRULE(builtInSha384, undefined) },
126
+ { ALT: () => SUBRULE(builtInSha512, undefined) },
127
+ { ALT: () => SUBRULE(builtInCoalesce, undefined) },
128
+ { ALT: () => SUBRULE(builtInIf, undefined) },
129
+ { ALT: () => SUBRULE(builtInStrlang, undefined) },
130
+ { ALT: () => SUBRULE(builtInStrdt, undefined) },
131
+ { ALT: () => SUBRULE(builtInSameterm, undefined) },
132
+ { ALT: () => SUBRULE(builtInIsiri, undefined) },
133
+ { ALT: () => SUBRULE(builtInIsuri, undefined) },
134
+ { ALT: () => SUBRULE(builtInIsblank, undefined) },
135
+ { ALT: () => SUBRULE(builtInIsliteral, undefined) },
136
+ { ALT: () => SUBRULE(builtInIsnumeric, undefined) },
137
+ { ALT: () => SUBRULE(regexExpression, undefined) },
138
+ { ALT: () => SUBRULE(existsFunc, undefined) },
139
+ { ALT: () => SUBRULE(notExistsFunc, undefined) },
140
140
  ];
141
141
  }
142
142
  /**
@@ -186,12 +186,12 @@ export const aggregateGroup_concat = {
186
186
  CONSUME(l.builtIn.groupConcat);
187
187
  CONSUME(l.symbols.LParen);
188
188
  const distinct = OPTION1(() => CONSUME(l.distinct));
189
- const expr = SUBRULE(expression);
189
+ const expr = SUBRULE(expression, undefined);
190
190
  const separator = OPTION2(() => {
191
191
  CONSUME(l.symbols.semi);
192
192
  CONSUME(l.separator);
193
193
  CONSUME(l.symbols.equal);
194
- return SUBRULE(string);
194
+ return SUBRULE(string, undefined);
195
195
  }) ?? ' ';
196
196
  CONSUME(l.symbols.RParen);
197
197
  return {
@@ -203,37 +203,52 @@ export const aggregateGroup_concat = {
203
203
  };
204
204
  },
205
205
  };
206
- export const canParseAggregate = Symbol('canParseAggregate');
207
- export const inAggregate = Symbol('inAggregate');
208
206
  /**
209
207
  * [[127]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
210
208
  */
211
209
  export const aggregate = {
212
210
  name: 'aggregate',
213
- impl: ({ ACTION, SUBRULE, OR, context }) => () => {
211
+ impl: ({ ACTION, SUBRULE, OR }) => (C) => {
214
212
  // https://www.w3.org/2013/sparql-errata#errata-query-5 - Or note 15 in SPARQL1.2 spec
215
213
  // An aggregate function is not allowed within an aggregate function.
216
- const wasInAggregate = context.parseMode.has(inAggregate);
217
- ACTION(() => context.parseMode.add(inAggregate));
214
+ const wasInAggregate = ACTION(() => C.parseMode.has('inAggregate'));
215
+ ACTION(() => C.parseMode.add('inAggregate'));
218
216
  const result = OR([
219
- { ALT: () => SUBRULE(aggregateCount) },
220
- { ALT: () => SUBRULE(aggregateSum) },
221
- { ALT: () => SUBRULE(aggregateMin) },
222
- { ALT: () => SUBRULE(aggregateMax) },
223
- { ALT: () => SUBRULE(aggregateAvg) },
224
- { ALT: () => SUBRULE(aggregateSample) },
225
- { ALT: () => SUBRULE(aggregateGroup_concat) },
217
+ { ALT: () => SUBRULE(aggregateCount, undefined) },
218
+ { ALT: () => SUBRULE(aggregateSum, undefined) },
219
+ { ALT: () => SUBRULE(aggregateMin, undefined) },
220
+ { ALT: () => SUBRULE(aggregateMax, undefined) },
221
+ { ALT: () => SUBRULE(aggregateAvg, undefined) },
222
+ { ALT: () => SUBRULE(aggregateSample, undefined) },
223
+ { ALT: () => SUBRULE(aggregateGroup_concat, undefined) },
226
224
  ]);
227
- ACTION(() => !wasInAggregate && context.parseMode.delete(inAggregate));
225
+ ACTION(() => !wasInAggregate && C.parseMode.delete('inAggregate'));
228
226
  ACTION(() => {
229
- if (!context.parseMode.has(canParseAggregate)) {
227
+ if (!C.parseMode.has('canParseAggregate')) {
230
228
  throw new Error('Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.');
231
229
  }
232
- if (context.parseMode.has(inAggregate)) {
230
+ if (C.parseMode.has('inAggregate')) {
233
231
  throw new Error('An aggregate function is not allowed within an aggregate function.');
234
232
  }
235
233
  });
236
234
  return result;
237
235
  },
236
+ gImpl: ({ SUBRULE }) => (ast) => {
237
+ const builder = [ast.aggregation, '('];
238
+ if (ast.distinct) {
239
+ builder.push('DISTINCT');
240
+ }
241
+ if ('termType' in ast.expression && ast.expression.termType === 'Wildcard') {
242
+ builder.push('*');
243
+ }
244
+ else {
245
+ builder.push(SUBRULE(expression, ast.expression, undefined));
246
+ }
247
+ if (ast.separator !== undefined && ast.separator !== ' ') {
248
+ builder.push(';', 'SEPARATOR', '=', SUBRULE(string, ast.separator, undefined));
249
+ }
250
+ builder.push(')');
251
+ return builder.join(' ');
252
+ },
238
253
  };
239
254
  //# sourceMappingURL=builtIn.js.map
@@ -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, RuleDef } 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 } 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);\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) },\n { ALT: () => SUBRULE(builtInStr) },\n { ALT: () => SUBRULE(builtInLang) },\n { ALT: () => SUBRULE(builtInLangmatches) },\n { ALT: () => SUBRULE(builtInDatatype) },\n { ALT: () => SUBRULE(builtInBound) },\n { ALT: () => SUBRULE(builtInIri) },\n { ALT: () => SUBRULE(builtInUri) },\n { ALT: () => SUBRULE(builtInBnodeSparqlJs) },\n { ALT: () => SUBRULE(builtInRand) },\n { ALT: () => SUBRULE(builtInAbs) },\n { ALT: () => SUBRULE(builtInCeil) },\n { ALT: () => SUBRULE(builtInFloor) },\n { ALT: () => SUBRULE(builtInRound) },\n { ALT: () => SUBRULE(builtInConcat) },\n { ALT: () => SUBRULE(substringExpression) },\n { ALT: () => SUBRULE(builtInStrlen) },\n { ALT: () => SUBRULE(strReplaceExpression) },\n { ALT: () => SUBRULE(builtInUcase) },\n { ALT: () => SUBRULE(builtInLcase) },\n { ALT: () => SUBRULE(builtInEncode_for_uri) },\n { ALT: () => SUBRULE(builtInContains) },\n { ALT: () => SUBRULE(builtInStrstarts) },\n { ALT: () => SUBRULE(builtInStrends) },\n { ALT: () => SUBRULE(builtInStrbefore) },\n { ALT: () => SUBRULE(builtInStrafter) },\n { ALT: () => SUBRULE(builtInYear) },\n { ALT: () => SUBRULE(builtInMonth) },\n { ALT: () => SUBRULE(builtInDay) },\n { ALT: () => SUBRULE(builtInHours) },\n { ALT: () => SUBRULE(builtInMinutes) },\n { ALT: () => SUBRULE(builtInSeconds) },\n { ALT: () => SUBRULE(builtInTimezone) },\n { ALT: () => SUBRULE(builtInTz) },\n { ALT: () => SUBRULE(builtInNow) },\n { ALT: () => SUBRULE(builtInUuid) },\n { ALT: () => SUBRULE(builtInStruuid) },\n { ALT: () => SUBRULE(builtInMd5) },\n { ALT: () => SUBRULE(builtInSha1) },\n { ALT: () => SUBRULE(builtInSha256) },\n { ALT: () => SUBRULE(builtInSha384) },\n { ALT: () => SUBRULE(builtInSha512) },\n { ALT: () => SUBRULE(builtInCoalesce) },\n { ALT: () => SUBRULE(builtInIf) },\n { ALT: () => SUBRULE(builtInStrlang) },\n { ALT: () => SUBRULE(builtInStrdt) },\n { ALT: () => SUBRULE(builtInSameterm) },\n { ALT: () => SUBRULE(builtInIsiri) },\n { ALT: () => SUBRULE(builtInIsuri) },\n { ALT: () => SUBRULE(builtInIsblank) },\n { ALT: () => SUBRULE(builtInIsliteral) },\n { ALT: () => SUBRULE(builtInIsnumeric) },\n { ALT: () => SUBRULE(regexExpression) },\n { ALT: () => SUBRULE(existsFunc) },\n { ALT: () => SUBRULE(notExistsFunc) },\n ];\n}\n\n/**\n * [[121]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const builtInCall: RuleDef<'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: RuleDef<'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);\n const separator = OPTION2(() => {\n CONSUME(l.symbols.semi);\n CONSUME(l.separator);\n CONSUME(l.symbols.equal);\n return SUBRULE(string);\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\nexport const canParseAggregate = Symbol('canParseAggregate');\nexport const inAggregate = Symbol('inAggregate');\n/**\n * [[127]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)\n */\nexport const aggregate: RuleDef<'aggregate', Expression> = <const> {\n name: 'aggregate',\n impl: ({ ACTION, SUBRULE, OR, context }) => () => {\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 = context.parseMode.has(inAggregate);\n ACTION(() => context.parseMode.add(inAggregate));\n const result = OR<Expression>([\n { ALT: () => SUBRULE(aggregateCount) },\n { ALT: () => SUBRULE(aggregateSum) },\n { ALT: () => SUBRULE(aggregateMin) },\n { ALT: () => SUBRULE(aggregateMax) },\n { ALT: () => SUBRULE(aggregateAvg) },\n { ALT: () => SUBRULE(aggregateSample) },\n { ALT: () => SUBRULE(aggregateGroup_concat) },\n ]);\n ACTION(() => !wasInAggregate && context.parseMode.delete(inAggregate));\n\n ACTION(() => {\n if (!context.parseMode.has(canParseAggregate)) {\n throw new Error('Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.');\n }\n if (context.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,5 +1,4 @@
1
- import type { RuleDef } from '@traqula/core';
2
- import type { IriTerm } from '../Sparql11types';
1
+ import type { IriTerm, SparqlGrammarRule, SparqlRule } from '../Sparql11types';
3
2
  /**
4
3
  * [[13]](https://www.w3.org/TR/sparql11-query/#rDatasetClause)
5
4
  */
@@ -7,16 +6,16 @@ export interface IDatasetClause {
7
6
  value: IriTerm;
8
7
  type: 'default' | 'named';
9
8
  }
10
- export declare const datasetClause: RuleDef<'datasetClause', IDatasetClause>;
9
+ export declare const datasetClause: SparqlRule<'datasetClause', IDatasetClause>;
11
10
  /**
12
11
  * [[14]](https://www.w3.org/TR/sparql11-query/#rDefaultGraphClause)
13
12
  */
14
- export declare const defaultGraphClause: RuleDef<'defaultGraphClause', IriTerm>;
13
+ export declare const defaultGraphClause: SparqlGrammarRule<'defaultGraphClause', IriTerm>;
15
14
  /**
16
15
  * [[15]](https://www.w3.org/TR/sparql11-query/#rNamedGraphClause)
17
16
  */
18
- export declare const namedGraphClause: RuleDef<'namedGraphClause', IriTerm>;
17
+ export declare const namedGraphClause: SparqlGrammarRule<'namedGraphClause', IriTerm>;
19
18
  /**
20
19
  * [[16]](https://www.w3.org/TR/sparql11-query/#rSourceSelector)
21
20
  */
22
- export declare const sourceSelector: RuleDef<'sourceSelector', IriTerm>;
21
+ export declare const sourceSelector: SparqlGrammarRule<'sourceSelector', IriTerm>;
@@ -5,17 +5,18 @@ export const datasetClause = {
5
5
  impl: ({ SUBRULE, CONSUME, OR }) => () => {
6
6
  CONSUME(l.from);
7
7
  return OR([
8
- { ALT: () => ({ value: SUBRULE(defaultGraphClause), type: 'default' }) },
9
- { ALT: () => ({ value: SUBRULE(namedGraphClause), type: 'named' }) },
8
+ { ALT: () => ({ value: SUBRULE(defaultGraphClause, undefined), type: 'default' }) },
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)
15
16
  */
16
17
  export const defaultGraphClause = {
17
18
  name: 'defaultGraphClause',
18
- impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector),
19
+ impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector, undefined),
19
20
  };
20
21
  /**
21
22
  * [[15]](https://www.w3.org/TR/sparql11-query/#rNamedGraphClause)
@@ -24,7 +25,7 @@ export const namedGraphClause = {
24
25
  name: 'namedGraphClause',
25
26
  impl: ({ SUBRULE, CONSUME }) => () => {
26
27
  CONSUME(l.graph.named);
27
- return SUBRULE(sourceSelector);
28
+ return SUBRULE(sourceSelector, undefined);
28
29
  },
29
30
  };
30
31
  /**
@@ -32,6 +33,6 @@ export const namedGraphClause = {
32
33
  */
33
34
  export const sourceSelector = {
34
35
  name: 'sourceSelector',
35
- impl: ({ SUBRULE }) => () => SUBRULE(iri),
36
+ impl: ({ SUBRULE }) => () => SUBRULE(iri, undefined),
36
37
  };
37
38
  //# sourceMappingURL=dataSetClause.js.map
@@ -1 +1 @@
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;AAUjC,MAAM,CAAC,MAAM,aAAa,GAAqD;IAC7E,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,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;YACxE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;SACrE,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAmD;IAChF,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAiD;IAC5E,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,CAAC,CAAC;IACjC,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAA+C;IACxE,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;CAC1C,CAAC","sourcesContent":["import * as l from '../lexer';\nimport type { RuleDef } from '@traqula/core';\nimport { iri } from './literals';\nimport type { IriTerm } 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: RuleDef<'datasetClause', IDatasetClause> = <const> {\n name: 'datasetClause',\n impl: ({ SUBRULE, CONSUME, OR }) => () => {\n CONSUME(l.from);\n return OR<IDatasetClause>([\n { ALT: () => ({ value: SUBRULE(defaultGraphClause), type: 'default' }) },\n { ALT: () => ({ value: SUBRULE(namedGraphClause), type: 'named' }) },\n ]);\n },\n};\n\n/**\n * [[14]](https://www.w3.org/TR/sparql11-query/#rDefaultGraphClause)\n */\nexport const defaultGraphClause: RuleDef<'defaultGraphClause', IriTerm> = <const> {\n name: 'defaultGraphClause',\n impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector),\n};\n\n/**\n * [[15]](https://www.w3.org/TR/sparql11-query/#rNamedGraphClause)\n */\nexport const namedGraphClause: RuleDef<'namedGraphClause', IriTerm> = <const> {\n name: 'namedGraphClause',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.graph.named);\n return SUBRULE(sourceSelector);\n },\n};\n\n/**\n * [[16]](https://www.w3.org/TR/sparql11-query/#rSourceSelector)\n */\nexport const sourceSelector: RuleDef<'sourceSelector', IriTerm> = <const> {\n name: 'sourceSelector',\n impl: ({ SUBRULE }) => () => SUBRULE(iri),\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,5 +1,4 @@
1
- import type { RuleDef } from '@traqula/core';
2
- import type { Expression, IriTerm } from '../Sparql11types';
1
+ import type { Expression, IriTerm, SparqlGrammarRule, SparqlRule } from '../Sparql11types';
3
2
  export type Operation = '||' | '&&' | RelationalOperator | AdditiveOperator | aggregatorOperator | buildInOperator;
4
3
  export type RelationalOperator = '=' | '!=' | '<' | '>' | '<=' | '>=' | 'in' | 'notin';
5
4
  export type AdditiveOperator = '+' | '-' | '*' | '/';
@@ -12,57 +11,57 @@ export type aggregatorOperator = 'COUNT' | 'SUM' | 'MIN' | 'MAX' | 'AVG' | 'SAMP
12
11
  export interface IArgList {
13
12
  type: 'functionCall';
14
13
  args: Expression[];
15
- distinct: boolean;
14
+ distinct?: boolean;
16
15
  }
17
- export declare const argList: RuleDef<'argList', IArgList>;
18
- export declare const expressionList: RuleDef<'expressionList', Expression[]>;
16
+ export declare const argList: SparqlRule<'argList', IArgList>;
17
+ export declare const expressionList: SparqlGrammarRule<'expressionList', Expression[]>;
19
18
  /**
20
19
  * [[110]](https://www.w3.org/TR/sparql11-query/#rExpression)
21
20
  */
22
- export declare const expression: RuleDef<'expression', Expression>;
21
+ export declare const expression: SparqlRule<'expression', Expression>;
23
22
  /**
24
23
  * [[111]](https://www.w3.org/TR/sparql11-query/#rConditionalOrExpression)
25
24
  */
26
- export declare const conditionalOrExpression: RuleDef<'conditionalOrExpression', Expression>;
25
+ export declare const conditionalOrExpression: SparqlGrammarRule<'conditionalOrExpression', Expression>;
27
26
  /**
28
27
  * [[112]](https://www.w3.org/TR/sparql11-query/#rConditionalAndExpression)
29
28
  */
30
- export declare const conditionalAndExpression: RuleDef<'conditionalAndExpression', Expression>;
29
+ export declare const conditionalAndExpression: SparqlGrammarRule<'conditionalAndExpression', Expression>;
31
30
  /**
32
31
  * [[113]](https://www.w3.org/TR/sparql11-query/#rValueLogical)
33
32
  */
34
- export declare const valueLogical: RuleDef<'valueLogical', Expression>;
33
+ export declare const valueLogical: SparqlGrammarRule<'valueLogical', Expression>;
35
34
  /**
36
35
  * [[114]](https://www.w3.org/TR/sparql11-query/#rRelationalExpression)
37
36
  */
38
- export declare const relationalExpression: RuleDef<'relationalExpression', Expression>;
37
+ export declare const relationalExpression: SparqlGrammarRule<'relationalExpression', Expression>;
39
38
  /**
40
39
  * [[115]](https://www.w3.org/TR/sparql11-query/#rNumericExpression)
41
40
  */
42
- export declare const numericExpression: RuleDef<'numericExpression', Expression>;
41
+ export declare const numericExpression: SparqlGrammarRule<'numericExpression', Expression>;
43
42
  /**
44
43
  * [[116]](https://www.w3.org/TR/sparql11-query/#rAdditiveExpression)
45
44
  */
46
- export declare const additiveExpression: RuleDef<'additiveExpression', Expression>;
45
+ export declare const additiveExpression: SparqlGrammarRule<'additiveExpression', Expression>;
47
46
  /**
48
47
  * [[117]](https://www.w3.org/TR/sparql11-query/#rMultiplicativeExpression)
49
48
  */
50
- export declare const multiplicativeExpression: RuleDef<'multiplicativeExpression', Expression>;
49
+ export declare const multiplicativeExpression: SparqlGrammarRule<'multiplicativeExpression', Expression>;
51
50
  /**
52
51
  * [[118]](https://www.w3.org/TR/sparql11-query/#rUnaryExpression)
53
52
  */
54
- export declare const unaryExpression: RuleDef<'unaryExpression', Expression>;
53
+ export declare const unaryExpression: SparqlGrammarRule<'unaryExpression', Expression>;
55
54
  /**
56
55
  * [[119]](https://www.w3.org/TR/sparql11-query/#rPrimaryExpression)
57
56
  */
58
- export declare const primaryExpression: RuleDef<'primaryExpression', Expression>;
57
+ export declare const primaryExpression: SparqlGrammarRule<'primaryExpression', Expression>;
59
58
  /**
60
59
  * [[120]](https://www.w3.org/TR/sparql11-query/#rBrackettedExpression)
61
60
  */
62
- export declare const brackettedExpression: RuleDef<'brackettedExpression', Expression>;
61
+ export declare const brackettedExpression: SparqlGrammarRule<'brackettedExpression', Expression>;
63
62
  /**
64
63
  * [[128]](https://www.w3.org/TR/sparql11-query/#ririOrFunction)
65
64
  */
66
- export declare const iriOrFunction: RuleDef<'iriOrFunction', IriTerm | (IArgList & {
65
+ export declare const iriOrFunction: SparqlRule<'iriOrFunction', IriTerm | (IArgList & {
67
66
  function: IriTerm;
68
67
  })>;