@traqula/rules-sparql-1-1 0.0.1-alpha.137

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 (70) hide show
  1. package/LICENSE.txt +22 -0
  2. package/README.md +15 -0
  3. package/lib/Sparql11types.d.ts +246 -0
  4. package/lib/Sparql11types.js +2 -0
  5. package/lib/Sparql11types.js.map +1 -0
  6. package/lib/expressionHelpers.d.ts +55 -0
  7. package/lib/expressionHelpers.js +224 -0
  8. package/lib/expressionHelpers.js.map +1 -0
  9. package/lib/grammar/builtIn.d.ts +91 -0
  10. package/lib/grammar/builtIn.js +239 -0
  11. package/lib/grammar/builtIn.js.map +1 -0
  12. package/lib/grammar/dataSetClause.d.ts +22 -0
  13. package/lib/grammar/dataSetClause.js +37 -0
  14. package/lib/grammar/dataSetClause.js.map +1 -0
  15. package/lib/grammar/expression.d.ts +68 -0
  16. package/lib/grammar/expression.js +397 -0
  17. package/lib/grammar/expression.js.map +1 -0
  18. package/lib/grammar/general.d.ts +42 -0
  19. package/lib/grammar/general.js +161 -0
  20. package/lib/grammar/general.js.map +1 -0
  21. package/lib/grammar/index.d.ts +12 -0
  22. package/lib/grammar/index.js +13 -0
  23. package/lib/grammar/index.js.map +1 -0
  24. package/lib/grammar/literals.d.ts +53 -0
  25. package/lib/grammar/literals.js +179 -0
  26. package/lib/grammar/literals.js.map +1 -0
  27. package/lib/grammar/propertyPaths.d.ts +40 -0
  28. package/lib/grammar/propertyPaths.js +193 -0
  29. package/lib/grammar/propertyPaths.js.map +1 -0
  30. package/lib/grammar/queryUnit/queryUnit.d.ts +53 -0
  31. package/lib/grammar/queryUnit/queryUnit.js +405 -0
  32. package/lib/grammar/queryUnit/queryUnit.js.map +1 -0
  33. package/lib/grammar/solutionModifier.d.ts +44 -0
  34. package/lib/grammar/solutionModifier.js +203 -0
  35. package/lib/grammar/solutionModifier.js.map +1 -0
  36. package/lib/grammar/tripleBlock.d.ts +42 -0
  37. package/lib/grammar/tripleBlock.js +309 -0
  38. package/lib/grammar/tripleBlock.js.map +1 -0
  39. package/lib/grammar/updateUnit/updateUnit.d.ts +101 -0
  40. package/lib/grammar/updateUnit/updateUnit.js +448 -0
  41. package/lib/grammar/updateUnit/updateUnit.js.map +1 -0
  42. package/lib/grammar/whereClause.d.ts +76 -0
  43. package/lib/grammar/whereClause.js +383 -0
  44. package/lib/grammar/whereClause.js.map +1 -0
  45. package/lib/index.cjs +13088 -0
  46. package/lib/index.d.ts +5 -0
  47. package/lib/index.js +6 -0
  48. package/lib/index.js.map +1 -0
  49. package/lib/lexer/BuildinCalls.d.ts +248 -0
  50. package/lib/lexer/BuildinCalls.js +189 -0
  51. package/lib/lexer/BuildinCalls.js.map +1 -0
  52. package/lib/lexer/graph.d.ts +14 -0
  53. package/lib/lexer/graph.js +9 -0
  54. package/lib/lexer/graph.js.map +1 -0
  55. package/lib/lexer/index.d.ts +5 -0
  56. package/lib/lexer/index.js +6 -0
  57. package/lib/lexer/index.js.map +1 -0
  58. package/lib/lexer/lexer.d.ts +147 -0
  59. package/lib/lexer/lexer.js +67 -0
  60. package/lib/lexer/lexer.js.map +1 -0
  61. package/lib/lexer/symbols.d.ts +80 -0
  62. package/lib/lexer/symbols.js +30 -0
  63. package/lib/lexer/symbols.js.map +1 -0
  64. package/lib/lexer/terminals.d.ts +108 -0
  65. package/lib/lexer/terminals.js +76 -0
  66. package/lib/lexer/terminals.js.map +1 -0
  67. package/lib/utils.d.ts +3 -0
  68. package/lib/utils.js +7 -0
  69. package/lib/utils.js.map +1 -0
  70. package/package.json +45 -0
@@ -0,0 +1,91 @@
1
+ import type { IOrAlt } from '@chevrotain/types';
2
+ import type { ImplArgs, RuleDef } from '@traqula/core';
3
+ import type { RuleDefExpressionFunctionX } from '../expressionHelpers';
4
+ import type { AggregateExpression, Expression } from '../Sparql11types';
5
+ export declare const builtInStr: RuleDefExpressionFunctionX<"builtInStr", [Expression]>;
6
+ export declare const builtInLang: RuleDefExpressionFunctionX<"builtInLang", [Expression]>;
7
+ export declare const builtInLangmatches: RuleDefExpressionFunctionX<"builtInLangmatches", [Expression, Expression]>;
8
+ export declare const builtInDatatype: RuleDefExpressionFunctionX<"builtInDatatype", [Expression]>;
9
+ export declare const builtInBound: RuleDefExpressionFunctionX<"builtInBound", [import("@rdfjs/types").Variable]>;
10
+ export declare const builtInIri: RuleDefExpressionFunctionX<"builtInIri", [Expression]>;
11
+ export declare const builtInUri: RuleDefExpressionFunctionX<"builtInUri", [Expression]>;
12
+ export declare const builtInBnodeSparqlJs: RuleDefExpressionFunctionX<Uncapitalize<'builtInBnode'>, [] | [Expression]>;
13
+ export declare const builtInRand: RuleDefExpressionFunctionX<"builtInRand", []>;
14
+ export declare const builtInAbs: RuleDefExpressionFunctionX<"builtInAbs", [Expression]>;
15
+ export declare const builtInCeil: RuleDefExpressionFunctionX<"builtInCeil", [Expression]>;
16
+ export declare const builtInFloor: RuleDefExpressionFunctionX<"builtInFloor", [Expression]>;
17
+ export declare const builtInRound: RuleDefExpressionFunctionX<"builtInRound", [Expression]>;
18
+ export declare const builtInConcat: RuleDefExpressionFunctionX<"builtInConcat", Expression[]>;
19
+ export declare const builtInStrlen: RuleDefExpressionFunctionX<"builtInStrlen", [Expression]>;
20
+ export declare const builtInUcase: RuleDefExpressionFunctionX<"builtInUcase", [Expression]>;
21
+ export declare const builtInLcase: RuleDefExpressionFunctionX<"builtInLcase", [Expression]>;
22
+ export declare const builtInEncode_for_uri: RuleDefExpressionFunctionX<"builtInEncode_for_uri", [Expression]>;
23
+ export declare const builtInContains: RuleDefExpressionFunctionX<"builtInContains", [Expression, Expression]>;
24
+ export declare const builtInStrstarts: RuleDefExpressionFunctionX<"builtInStrstarts", [Expression, Expression]>;
25
+ export declare const builtInStrends: RuleDefExpressionFunctionX<"builtInStrends", [Expression, Expression]>;
26
+ export declare const builtInStrbefore: RuleDefExpressionFunctionX<"builtInStrbefore", [Expression, Expression]>;
27
+ export declare const builtInStrafter: RuleDefExpressionFunctionX<"builtInStrafter", [Expression, Expression]>;
28
+ export declare const builtInYear: RuleDefExpressionFunctionX<"builtInYear", [Expression]>;
29
+ export declare const builtInMonth: RuleDefExpressionFunctionX<"builtInMonth", [Expression]>;
30
+ export declare const builtInDay: RuleDefExpressionFunctionX<"builtInDay", [Expression]>;
31
+ export declare const builtInHours: RuleDefExpressionFunctionX<"builtInHours", [Expression]>;
32
+ export declare const builtInMinutes: RuleDefExpressionFunctionX<"builtInMinutes", [Expression]>;
33
+ export declare const builtInSeconds: RuleDefExpressionFunctionX<"builtInSeconds", [Expression]>;
34
+ export declare const builtInTimezone: RuleDefExpressionFunctionX<"builtInTimezone", [Expression]>;
35
+ export declare const builtInTz: RuleDefExpressionFunctionX<"builtInTz", [Expression]>;
36
+ export declare const builtInNow: RuleDefExpressionFunctionX<"builtInNow", []>;
37
+ export declare const builtInUuid: RuleDefExpressionFunctionX<"builtInUuid", []>;
38
+ export declare const builtInStruuid: RuleDefExpressionFunctionX<"builtInStruuid", []>;
39
+ export declare const builtInMd5: RuleDefExpressionFunctionX<"builtInMd5", [Expression]>;
40
+ export declare const builtInSha1: RuleDefExpressionFunctionX<"builtInSha1", [Expression]>;
41
+ export declare const builtInSha256: RuleDefExpressionFunctionX<"builtInSha256", [Expression]>;
42
+ export declare const builtInSha384: RuleDefExpressionFunctionX<"builtInSha384", [Expression]>;
43
+ export declare const builtInSha512: RuleDefExpressionFunctionX<"builtInSha512", [Expression]>;
44
+ export declare const builtInCoalesce: RuleDefExpressionFunctionX<"builtInCoalesce", Expression[]>;
45
+ export declare const builtInIf: RuleDefExpressionFunctionX<"builtInIf", [Expression, Expression, Expression]>;
46
+ export declare const builtInStrlang: RuleDefExpressionFunctionX<"builtInStrlang", [Expression, Expression]>;
47
+ export declare const builtInStrdt: RuleDefExpressionFunctionX<"builtInStrdt", [Expression, Expression]>;
48
+ export declare const builtInSameterm: RuleDefExpressionFunctionX<"builtInSameterm", [Expression, Expression]>;
49
+ export declare const builtInIsiri: RuleDefExpressionFunctionX<"builtInIsiri", [Expression]>;
50
+ export declare const builtInIsuri: RuleDefExpressionFunctionX<"builtInIsuri", [Expression]>;
51
+ export declare const builtInIsblank: RuleDefExpressionFunctionX<"builtInIsblank", [Expression]>;
52
+ export declare const builtInIsliteral: RuleDefExpressionFunctionX<"builtInIsliteral", [Expression]>;
53
+ export declare const builtInIsnumeric: RuleDefExpressionFunctionX<"builtInIsnumeric", [Expression]>;
54
+ export declare function builtInCallList(SUBRULE: ImplArgs['SUBRULE']): IOrAlt<Expression>[];
55
+ /**
56
+ * [[121]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
57
+ */
58
+ export declare const builtInCall: RuleDef<'builtInCall', Expression>;
59
+ /**
60
+ * [[122]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
61
+ */
62
+ export declare const regexExpression: RuleDefExpressionFunctionX<"builtInRegex", [Expression, Expression] | [Expression, Expression, Expression]>;
63
+ /**
64
+ * [[123]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
65
+ */
66
+ export declare const substringExpression: RuleDefExpressionFunctionX<"builtInSubstr", [Expression, Expression] | [Expression, Expression, Expression]>;
67
+ /**
68
+ * [[124]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
69
+ */
70
+ export declare const strReplaceExpression: RuleDefExpressionFunctionX<"builtInReplace", [Expression, Expression, Expression] | [Expression, Expression, Expression, Expression]>;
71
+ /**
72
+ * [[125]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
73
+ */
74
+ export declare const existsFunc: RuleDefExpressionFunctionX<"builtInExists", import("..").Pattern[]>;
75
+ /**
76
+ * [[126]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
77
+ */
78
+ export declare const notExistsFunc: RuleDefExpressionFunctionX<"builtInNotexists", import("..").Pattern[]>;
79
+ export declare const aggregateCount: import(".").RuleDefExpressionAggregatorX<"builtInCount">;
80
+ export declare const aggregateSum: import(".").RuleDefExpressionAggregatorX<"builtInSum">;
81
+ export declare const aggregateMin: import(".").RuleDefExpressionAggregatorX<"builtInMin">;
82
+ export declare const aggregateMax: import(".").RuleDefExpressionAggregatorX<"builtInMax">;
83
+ export declare const aggregateAvg: import(".").RuleDefExpressionAggregatorX<"builtInAvg">;
84
+ export declare const aggregateSample: import(".").RuleDefExpressionAggregatorX<"builtInSample">;
85
+ export declare const aggregateGroup_concat: RuleDef<'builtInGroup_concat', AggregateExpression>;
86
+ export declare const canParseAggregate: unique symbol;
87
+ export declare const inAggregate: unique symbol;
88
+ /**
89
+ * [[127]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
90
+ */
91
+ export declare const aggregate: RuleDef<'aggregate', Expression>;
@@ -0,0 +1,239 @@
1
+ import * as l from '../lexer';
2
+ import { baseAggregateFunc, funcExpr1, funcExpr2, funcExpr2or3, funcExpr3, funcExpr3or4, funcExprList1, funcGroupGraphPattern, funcNil1, funcVar1, } from '../expressionHelpers';
3
+ import { unCapitalize, } from '@traqula/core';
4
+ import { expression } from './expression';
5
+ import { string } from './literals';
6
+ export const builtInStr = funcExpr1(l.builtIn.str);
7
+ export const builtInLang = funcExpr1(l.builtIn.lang);
8
+ export const builtInLangmatches = funcExpr2(l.builtIn.langmatches);
9
+ export const builtInDatatype = funcExpr1(l.builtIn.datatype);
10
+ export const builtInBound = funcVar1(l.builtIn.bound);
11
+ export const builtInIri = funcExpr1(l.builtIn.iri);
12
+ export const builtInUri = funcExpr1(l.builtIn.uri);
13
+ // Todo: so ugly, just to be compatible with sparqlJS
14
+ export const builtInBnodeSparqlJs = {
15
+ name: 'builtInBnode',
16
+ impl: ({ CONSUME, OR, SUBRULE }) => () => {
17
+ const operator = CONSUME(l.builtIn.bnode);
18
+ const args = OR([
19
+ {
20
+ ALT: () => {
21
+ CONSUME(l.symbols.LParen);
22
+ const arg = SUBRULE(expression);
23
+ CONSUME(l.symbols.RParen);
24
+ return [arg];
25
+ },
26
+ },
27
+ {
28
+ ALT: () => {
29
+ CONSUME(l.terminals.nil);
30
+ return [];
31
+ },
32
+ },
33
+ ]);
34
+ return {
35
+ type: 'operation',
36
+ operator: operator.image,
37
+ args,
38
+ };
39
+ },
40
+ };
41
+ // Export const builtInBnode = funcExprOrNil1(l.builtIn.bnode);
42
+ export const builtInRand = funcNil1(l.builtIn.rand);
43
+ export const builtInAbs = funcExpr1(l.builtIn.abs);
44
+ export const builtInCeil = funcExpr1(l.builtIn.ceil);
45
+ export const builtInFloor = funcExpr1(l.builtIn.floor);
46
+ export const builtInRound = funcExpr1(l.builtIn.round);
47
+ export const builtInConcat = funcExprList1(l.builtIn.concat);
48
+ export const builtInStrlen = funcExpr1(l.builtIn.strlen);
49
+ export const builtInUcase = funcExpr1(l.builtIn.ucase);
50
+ export const builtInLcase = funcExpr1(l.builtIn.lcase);
51
+ export const builtInEncode_for_uri = funcExpr1(l.builtIn.encode_for_uri);
52
+ export const builtInContains = funcExpr2(l.builtIn.contains);
53
+ export const builtInStrstarts = funcExpr2(l.builtIn.strstarts);
54
+ export const builtInStrends = funcExpr2(l.builtIn.strends);
55
+ export const builtInStrbefore = funcExpr2(l.builtIn.strbefore);
56
+ export const builtInStrafter = funcExpr2(l.builtIn.strafter);
57
+ export const builtInYear = funcExpr1(l.builtIn.year);
58
+ export const builtInMonth = funcExpr1(l.builtIn.month);
59
+ export const builtInDay = funcExpr1(l.builtIn.day);
60
+ export const builtInHours = funcExpr1(l.builtIn.hours);
61
+ export const builtInMinutes = funcExpr1(l.builtIn.minutes);
62
+ export const builtInSeconds = funcExpr1(l.builtIn.seconds);
63
+ export const builtInTimezone = funcExpr1(l.builtIn.timezone);
64
+ export const builtInTz = funcExpr1(l.builtIn.tz);
65
+ export const builtInNow = funcNil1(l.builtIn.now);
66
+ export const builtInUuid = funcNil1(l.builtIn.uuid);
67
+ export const builtInStruuid = funcNil1(l.builtIn.struuid);
68
+ export const builtInMd5 = funcExpr1(l.builtIn.md5);
69
+ export const builtInSha1 = funcExpr1(l.builtIn.sha1);
70
+ export const builtInSha256 = funcExpr1(l.builtIn.sha256);
71
+ export const builtInSha384 = funcExpr1(l.builtIn.sha384);
72
+ export const builtInSha512 = funcExpr1(l.builtIn.sha512);
73
+ export const builtInCoalesce = funcExprList1(l.builtIn.coalesce);
74
+ export const builtInIf = funcExpr3(l.builtIn.if_);
75
+ export const builtInStrlang = funcExpr2(l.builtIn.strlang);
76
+ export const builtInStrdt = funcExpr2(l.builtIn.strdt);
77
+ export const builtInSameterm = funcExpr2(l.builtIn.sameterm);
78
+ export const builtInIsiri = funcExpr1(l.builtIn.isiri);
79
+ export const builtInIsuri = funcExpr1(l.builtIn.isuri);
80
+ export const builtInIsblank = funcExpr1(l.builtIn.isblank);
81
+ export const builtInIsliteral = funcExpr1(l.builtIn.isliteral);
82
+ export const builtInIsnumeric = funcExpr1(l.builtIn.isnumeric);
83
+ export function builtInCallList(SUBRULE) {
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) },
140
+ ];
141
+ }
142
+ /**
143
+ * [[121]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
144
+ */
145
+ export const builtInCall = {
146
+ name: 'builtInCall',
147
+ impl: ({ OR, SUBRULE, cache }) => () => {
148
+ const cached = cache.get(builtInCall);
149
+ if (cached) {
150
+ return OR(cached);
151
+ }
152
+ const builtIns = builtInCallList(SUBRULE);
153
+ cache.set(builtInCall, builtIns);
154
+ return OR(builtIns);
155
+ },
156
+ };
157
+ /**
158
+ * [[122]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
159
+ */
160
+ export const regexExpression = funcExpr2or3(l.builtIn.regex);
161
+ /**
162
+ * [[123]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
163
+ */
164
+ export const substringExpression = funcExpr2or3(l.builtIn.substr);
165
+ /**
166
+ * [[124]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
167
+ */
168
+ export const strReplaceExpression = funcExpr3or4(l.builtIn.replace);
169
+ /**
170
+ * [[125]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
171
+ */
172
+ export const existsFunc = funcGroupGraphPattern(l.builtIn.exists);
173
+ /**
174
+ * [[126]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
175
+ */
176
+ export const notExistsFunc = funcGroupGraphPattern(l.builtIn.notexists);
177
+ export const aggregateCount = baseAggregateFunc(l.builtIn.count);
178
+ export const aggregateSum = baseAggregateFunc(l.builtIn.sum);
179
+ export const aggregateMin = baseAggregateFunc(l.builtIn.min);
180
+ export const aggregateMax = baseAggregateFunc(l.builtIn.max);
181
+ export const aggregateAvg = baseAggregateFunc(l.builtIn.avg);
182
+ export const aggregateSample = baseAggregateFunc(l.builtIn.sample);
183
+ export const aggregateGroup_concat = {
184
+ name: unCapitalize(l.builtIn.groupConcat.name),
185
+ impl: ({ CONSUME, OPTION1, SUBRULE, OPTION2 }) => () => {
186
+ CONSUME(l.builtIn.groupConcat);
187
+ CONSUME(l.symbols.LParen);
188
+ const distinct = OPTION1(() => CONSUME(l.distinct));
189
+ const expr = SUBRULE(expression);
190
+ const separator = OPTION2(() => {
191
+ CONSUME(l.symbols.semi);
192
+ CONSUME(l.separator);
193
+ CONSUME(l.symbols.equal);
194
+ return SUBRULE(string);
195
+ }) ?? ' ';
196
+ CONSUME(l.symbols.RParen);
197
+ return {
198
+ type: 'aggregate',
199
+ aggregation: 'group_concat',
200
+ expression: expr,
201
+ distinct: Boolean(distinct),
202
+ separator,
203
+ };
204
+ },
205
+ };
206
+ export const canParseAggregate = Symbol('canParseAggregate');
207
+ export const inAggregate = Symbol('inAggregate');
208
+ /**
209
+ * [[127]](https://www.w3.org/TR/sparql11-query/#rBuiltInCall)
210
+ */
211
+ export const aggregate = {
212
+ name: 'aggregate',
213
+ impl: ({ ACTION, SUBRULE, OR, context }) => () => {
214
+ // https://www.w3.org/2013/sparql-errata#errata-query-5 - Or note 15 in SPARQL1.2 spec
215
+ // An aggregate function is not allowed within an aggregate function.
216
+ const wasInAggregate = context.parseMode.has(inAggregate);
217
+ ACTION(() => context.parseMode.add(inAggregate));
218
+ 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) },
226
+ ]);
227
+ ACTION(() => !wasInAggregate && context.parseMode.delete(inAggregate));
228
+ ACTION(() => {
229
+ if (!context.parseMode.has(canParseAggregate)) {
230
+ throw new Error('Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.');
231
+ }
232
+ if (context.parseMode.has(inAggregate)) {
233
+ throw new Error('An aggregate function is not allowed within an aggregate function.');
234
+ }
235
+ });
236
+ return result;
237
+ },
238
+ };
239
+ //# sourceMappingURL=builtIn.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,22 @@
1
+ import type { RuleDef } from '@traqula/core';
2
+ import type { IriTerm } from '../Sparql11types';
3
+ /**
4
+ * [[13]](https://www.w3.org/TR/sparql11-query/#rDatasetClause)
5
+ */
6
+ export interface IDatasetClause {
7
+ value: IriTerm;
8
+ type: 'default' | 'named';
9
+ }
10
+ export declare const datasetClause: RuleDef<'datasetClause', IDatasetClause>;
11
+ /**
12
+ * [[14]](https://www.w3.org/TR/sparql11-query/#rDefaultGraphClause)
13
+ */
14
+ export declare const defaultGraphClause: RuleDef<'defaultGraphClause', IriTerm>;
15
+ /**
16
+ * [[15]](https://www.w3.org/TR/sparql11-query/#rNamedGraphClause)
17
+ */
18
+ export declare const namedGraphClause: RuleDef<'namedGraphClause', IriTerm>;
19
+ /**
20
+ * [[16]](https://www.w3.org/TR/sparql11-query/#rSourceSelector)
21
+ */
22
+ export declare const sourceSelector: RuleDef<'sourceSelector', IriTerm>;
@@ -0,0 +1,37 @@
1
+ import * as l from '../lexer';
2
+ import { iri } from './literals';
3
+ export const datasetClause = {
4
+ name: 'datasetClause',
5
+ impl: ({ SUBRULE, CONSUME, OR }) => () => {
6
+ CONSUME(l.from);
7
+ return OR([
8
+ { ALT: () => ({ value: SUBRULE(defaultGraphClause), type: 'default' }) },
9
+ { ALT: () => ({ value: SUBRULE(namedGraphClause), type: 'named' }) },
10
+ ]);
11
+ },
12
+ };
13
+ /**
14
+ * [[14]](https://www.w3.org/TR/sparql11-query/#rDefaultGraphClause)
15
+ */
16
+ export const defaultGraphClause = {
17
+ name: 'defaultGraphClause',
18
+ impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector),
19
+ };
20
+ /**
21
+ * [[15]](https://www.w3.org/TR/sparql11-query/#rNamedGraphClause)
22
+ */
23
+ export const namedGraphClause = {
24
+ name: 'namedGraphClause',
25
+ impl: ({ SUBRULE, CONSUME }) => () => {
26
+ CONSUME(l.graph.named);
27
+ return SUBRULE(sourceSelector);
28
+ },
29
+ };
30
+ /**
31
+ * [[16]](https://www.w3.org/TR/sparql11-query/#rSourceSelector)
32
+ */
33
+ export const sourceSelector = {
34
+ name: 'sourceSelector',
35
+ impl: ({ SUBRULE }) => () => SUBRULE(iri),
36
+ };
37
+ //# sourceMappingURL=dataSetClause.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,68 @@
1
+ import type { RuleDef } from '@traqula/core';
2
+ import type { Expression, IriTerm } from '../Sparql11types';
3
+ export type Operation = '||' | '&&' | RelationalOperator | AdditiveOperator | aggregatorOperator | buildInOperator;
4
+ export type RelationalOperator = '=' | '!=' | '<' | '>' | '<=' | '>=' | 'in' | 'notin';
5
+ export type AdditiveOperator = '+' | '-' | '*' | '/';
6
+ export type unaryOperator = '!' | '+' | '-';
7
+ export type buildInOperator = 'STR' | 'LANG' | 'LANGMATCHES' | 'DATATYPE' | 'BOUND' | 'IRI' | 'URI' | 'BNODE' | 'RAND' | 'ABS' | 'CEIL' | 'FLOOR' | 'ROUND' | 'CONCAT' | 'STRLEN' | 'UCASE' | 'LCASE' | 'ENCODE_FOR_URI' | 'CONTAINS' | 'STRSTARTS' | 'STRENDS' | 'STRBEFORE' | 'STRAFTER' | 'YEAR' | 'MONTH' | 'DAY' | 'HOURS' | 'MINUTES' | 'SECONDS' | 'TIMEZONE' | 'TZ' | 'NOW' | 'UUID' | 'STRUUID' | 'MD5' | 'SHA1' | 'SHA256' | 'SHA384' | 'SHA512' | 'COALESCE' | 'IF' | 'STRLANG' | 'STRDT' | 'sameTerm' | 'isIRI' | 'isURI' | 'isBLANK' | 'isLITERAL' | 'isNUMERIC' | 'REGEX' | 'SUBSTR' | 'REPLACE' | 'EXISTS' | 'NOT EXISTS';
8
+ export type aggregatorOperator = 'COUNT' | 'SUM' | 'MIN' | 'MAX' | 'AVG' | 'SAMPLE' | 'GROUP_CONCAT';
9
+ /**
10
+ * [[71]](https://www.w3.org/TR/sparql11-query/#rArgList)
11
+ */
12
+ export interface IArgList {
13
+ type: 'functionCall';
14
+ args: Expression[];
15
+ distinct: boolean;
16
+ }
17
+ export declare const argList: RuleDef<'argList', IArgList>;
18
+ export declare const expressionList: RuleDef<'expressionList', Expression[]>;
19
+ /**
20
+ * [[110]](https://www.w3.org/TR/sparql11-query/#rExpression)
21
+ */
22
+ export declare const expression: RuleDef<'expression', Expression>;
23
+ /**
24
+ * [[111]](https://www.w3.org/TR/sparql11-query/#rConditionalOrExpression)
25
+ */
26
+ export declare const conditionalOrExpression: RuleDef<'conditionalOrExpression', Expression>;
27
+ /**
28
+ * [[112]](https://www.w3.org/TR/sparql11-query/#rConditionalAndExpression)
29
+ */
30
+ export declare const conditionalAndExpression: RuleDef<'conditionalAndExpression', Expression>;
31
+ /**
32
+ * [[113]](https://www.w3.org/TR/sparql11-query/#rValueLogical)
33
+ */
34
+ export declare const valueLogical: RuleDef<'valueLogical', Expression>;
35
+ /**
36
+ * [[114]](https://www.w3.org/TR/sparql11-query/#rRelationalExpression)
37
+ */
38
+ export declare const relationalExpression: RuleDef<'relationalExpression', Expression>;
39
+ /**
40
+ * [[115]](https://www.w3.org/TR/sparql11-query/#rNumericExpression)
41
+ */
42
+ export declare const numericExpression: RuleDef<'numericExpression', Expression>;
43
+ /**
44
+ * [[116]](https://www.w3.org/TR/sparql11-query/#rAdditiveExpression)
45
+ */
46
+ export declare const additiveExpression: RuleDef<'additiveExpression', Expression>;
47
+ /**
48
+ * [[117]](https://www.w3.org/TR/sparql11-query/#rMultiplicativeExpression)
49
+ */
50
+ export declare const multiplicativeExpression: RuleDef<'multiplicativeExpression', Expression>;
51
+ /**
52
+ * [[118]](https://www.w3.org/TR/sparql11-query/#rUnaryExpression)
53
+ */
54
+ export declare const unaryExpression: RuleDef<'unaryExpression', Expression>;
55
+ /**
56
+ * [[119]](https://www.w3.org/TR/sparql11-query/#rPrimaryExpression)
57
+ */
58
+ export declare const primaryExpression: RuleDef<'primaryExpression', Expression>;
59
+ /**
60
+ * [[120]](https://www.w3.org/TR/sparql11-query/#rBrackettedExpression)
61
+ */
62
+ export declare const brackettedExpression: RuleDef<'brackettedExpression', Expression>;
63
+ /**
64
+ * [[128]](https://www.w3.org/TR/sparql11-query/#ririOrFunction)
65
+ */
66
+ export declare const iriOrFunction: RuleDef<'iriOrFunction', IriTerm | (IArgList & {
67
+ function: IriTerm;
68
+ })>;