@traqula/parser-sparql-1-1 0.0.1-alpha.176 → 0.0.1

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.
package/lib/Parser.js CHANGED
@@ -1,24 +1,18 @@
1
1
  import { ParserBuilder } from '@traqula/core';
2
- import { sparqlCodepointEscape, gram, lex as l, SparqlParser } from '@traqula/rules-sparql-1-1';
2
+ import { sparqlCodepointEscape, lex as l, SparqlParser, gram, updateNoReuseBlankNodeLabels, } from '@traqula/rules-sparql-1-1';
3
3
  import { queryUnitParserBuilder } from './queryUnitParser';
4
4
  import { updateParserBuilder } from './updateUnitParser';
5
- // Create merge of
6
- // ```
7
- // Prologue
8
- // ( SelectQuery | ConstructQuery | DescribeQuery | AskQuery )
9
- // ValuesClause
10
- // ```
11
- // and:
12
- // ```
13
- // Prologue ( Update1 ( ';' Update )? )?
14
- // ```
5
+ /**
6
+ * Query or update, optimized for the Query case.
7
+ * One could implement a new rule that does not use BACKTRACK.
8
+ */
15
9
  const queryOrUpdate = {
16
10
  name: 'queryOrUpdate',
17
- impl: ({ ACTION, SUBRULE, SUBRULE2, OR1, OR2, CONSUME, OPTION1, MANY }) => () => {
11
+ impl: ({ ACTION, SUBRULE, OR1, OR2, MANY, OPTION1, CONSUME, SUBRULE2 }) => (C) => {
18
12
  const prologueValues = SUBRULE(gram.prologue, undefined);
19
13
  return OR1([
20
14
  { ALT: () => {
21
- const queryType = OR2([
15
+ const subType = OR2([
22
16
  { ALT: () => SUBRULE(gram.selectQuery, undefined) },
23
17
  { ALT: () => SUBRULE(gram.constructQuery, undefined) },
24
18
  { ALT: () => SUBRULE(gram.describeQuery, undefined) },
@@ -26,84 +20,51 @@ const queryOrUpdate = {
26
20
  ]);
27
21
  const values = SUBRULE(gram.valuesClause, undefined);
28
22
  return ACTION(() => ({
29
- ...prologueValues,
30
- ...queryType,
23
+ context: prologueValues,
24
+ ...subType,
31
25
  type: 'query',
32
26
  ...(values && { values }),
27
+ loc: C.factory.sourceLocation(prologueValues.at(0), subType, values),
33
28
  }));
34
29
  } },
35
30
  { ALT: () => {
36
- // Prologue ( Update1 ( ';' Update )? )?
37
- // Is equivalent to:
31
+ const updates = [];
32
+ updates.push({ context: prologueValues });
38
33
  let parsedSemi = true;
39
- const updateResult = {
40
- ...prologueValues,
41
- type: 'update',
42
- updates: [],
43
- };
44
34
  MANY({
45
35
  GATE: () => parsedSemi,
46
36
  DEF: () => {
47
37
  parsedSemi = false;
48
- const updateOperation = SUBRULE(gram.update1, undefined);
49
- updateResult.updates.push(updateOperation);
38
+ updates.at(-1).operation = SUBRULE(gram.update1, undefined);
50
39
  OPTION1(() => {
51
40
  CONSUME(l.symbols.semi);
52
- const prologueValues = SUBRULE2(gram.prologue, undefined);
53
- ACTION(() => {
54
- updateResult.base = prologueValues.base ?? updateResult.base;
55
- updateResult.prefixes = prologueValues.prefixes ?
56
- { ...updateResult.prefixes, ...prologueValues.prefixes } :
57
- updateResult.prefixes;
58
- });
59
41
  parsedSemi = true;
42
+ const innerPrologue = SUBRULE2(gram.prologue, undefined);
43
+ updates.push({ context: innerPrologue });
60
44
  });
61
45
  },
62
46
  });
63
- ACTION(() => {
64
- const blankLabelsUsedInInsertData = new Set();
65
- for (const updateOperation of updateResult.updates) {
66
- const iterBlankNodes = (callback) => {
67
- if ('updateType' in updateOperation && updateOperation.updateType === 'insert') {
68
- for (const quad of updateOperation.insert) {
69
- for (const triple of quad.triples) {
70
- for (const position of ['subject', 'object']) {
71
- if (triple[position].termType === 'BlankNode') {
72
- callback(triple[position].value);
73
- }
74
- }
75
- }
76
- }
77
- }
78
- };
79
- iterBlankNodes((label) => {
80
- if (blankLabelsUsedInInsertData.has(label)) {
81
- throw new Error('Detected reuse blank node across different INSERT DATA clauses');
82
- }
83
- });
84
- iterBlankNodes(label => blankLabelsUsedInInsertData.add(label));
85
- }
47
+ return ACTION(() => {
48
+ const update = {
49
+ type: 'update',
50
+ updates,
51
+ loc: C.factory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation),
52
+ };
53
+ updateNoReuseBlankNodeLabels(update);
54
+ return update;
86
55
  });
87
- return updateResult.updates.length > 0 ? updateResult : prologueValues;
88
56
  } },
89
57
  ]);
90
58
  },
91
59
  };
92
- export const sparql11ParserBuilder = ParserBuilder.createBuilder(queryUnitParserBuilder)
60
+ export const sparql11ParserBuilder = ParserBuilder.create(queryUnitParserBuilder)
93
61
  .merge(updateParserBuilder, [])
94
- .deleteRule('queryUnit')
95
- .deleteRule('query')
96
- .deleteRule('updateUnit')
97
- .deleteRule('update')
98
62
  .addRule(queryOrUpdate);
99
63
  export class Parser extends SparqlParser {
100
64
  constructor() {
101
65
  const parser = sparql11ParserBuilder.build({
102
66
  tokenVocabulary: l.sparql11Tokens.tokenVocabulary,
103
67
  queryPreProcessor: sparqlCodepointEscape,
104
- parserConfig: {
105
- skipValidations: true,
106
- },
107
68
  });
108
69
  super(parser);
109
70
  }
package/lib/Parser.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.js","sourceRoot":"","sources":["Parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ParserBuilder } from '@traqula/core';\nimport type { Query, SparqlQuery, Update, SparqlGrammarRule } from '@traqula/rules-sparql-1-1';\nimport { sparqlCodepointEscape, gram, lex as l, SparqlParser } from '@traqula/rules-sparql-1-1';\nimport { queryUnitParserBuilder } from './queryUnitParser';\nimport { updateParserBuilder } from './updateUnitParser';\n\n// Create merge of\n// ```\n// Prologue\n// ( SelectQuery | ConstructQuery | DescribeQuery | AskQuery )\n// ValuesClause\n// ```\n// and:\n// ```\n// Prologue ( Update1 ( ';' Update )? )?\n// ```\nconst queryOrUpdate: SparqlGrammarRule<'queryOrUpdate', Query | Update | Pick<Update, 'base' | 'prefixes'>> = {\n name: 'queryOrUpdate',\n impl: ({ ACTION, SUBRULE, SUBRULE2, OR1, OR2, CONSUME, OPTION1, MANY }) => () => {\n const prologueValues = SUBRULE(gram.prologue, undefined);\n return OR1<Query | Update | Pick<Update, 'base' | 'prefixes'>>([\n { ALT: () => {\n const queryType = OR2<Omit<Query, gram.HandledByBase>>([\n { ALT: () => SUBRULE(gram.selectQuery, undefined) },\n { ALT: () => SUBRULE(gram.constructQuery, undefined) },\n { ALT: () => SUBRULE(gram.describeQuery, undefined) },\n { ALT: () => SUBRULE(gram.askQuery, undefined) },\n ]);\n const values = SUBRULE(gram.valuesClause, undefined);\n return ACTION(() => (<Query>{\n ...prologueValues,\n ...queryType,\n type: 'query',\n ...(values && { values }),\n }));\n } },\n { ALT: () => {\n // Prologue ( Update1 ( ';' Update )? )?\n // Is equivalent to:\n\n let parsedSemi = true;\n const updateResult: Update = {\n ...prologueValues,\n type: 'update',\n updates: [],\n };\n MANY({\n GATE: () => parsedSemi,\n DEF: () => {\n parsedSemi = false;\n const updateOperation = SUBRULE(gram.update1, undefined);\n\n updateResult.updates.push(updateOperation);\n\n OPTION1(() => {\n CONSUME(l.symbols.semi);\n const prologueValues = SUBRULE2(gram.prologue, undefined);\n\n ACTION(() => {\n updateResult.base = prologueValues.base ?? updateResult.base;\n updateResult.prefixes = prologueValues.prefixes ?\n { ...updateResult.prefixes, ...prologueValues.prefixes } :\n updateResult.prefixes;\n });\n\n parsedSemi = true;\n });\n },\n });\n\n ACTION(() => {\n const blankLabelsUsedInInsertData = new Set<string>();\n for (const updateOperation of updateResult.updates) {\n const iterBlankNodes = (callback: (blankNodeLabel: string) => void): void => {\n if ('updateType' in updateOperation && updateOperation.updateType === 'insert') {\n for (const quad of updateOperation.insert) {\n for (const triple of quad.triples) {\n for (const position of <const> [ 'subject', 'object' ]) {\n if (triple[position].termType === 'BlankNode') {\n callback(triple[position].value);\n }\n }\n }\n }\n }\n };\n iterBlankNodes((label) => {\n if (blankLabelsUsedInInsertData.has(label)) {\n throw new Error('Detected reuse blank node across different INSERT DATA clauses');\n }\n });\n iterBlankNodes(label => blankLabelsUsedInInsertData.add(label));\n }\n });\n\n return updateResult.updates.length > 0 ? updateResult : prologueValues;\n } },\n ]);\n },\n};\n\nexport const sparql11ParserBuilder = ParserBuilder.createBuilder(queryUnitParserBuilder)\n .merge(updateParserBuilder, <const> [])\n .deleteRule('queryUnit')\n .deleteRule('query')\n .deleteRule('updateUnit')\n .deleteRule('update')\n .addRule(queryOrUpdate);\n\nexport class Parser extends SparqlParser<SparqlQuery> {\n public constructor() {\n const parser = sparql11ParserBuilder.build({\n tokenVocabulary: l.sparql11Tokens.tokenVocabulary,\n queryPreProcessor: sparqlCodepointEscape,\n parserConfig: {\n skipValidations: true,\n },\n });\n super(parser);\n }\n}\n"]}
1
+ {"version":3,"file":"Parser.js","sourceRoot":"","sources":["Parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ParserBuilder } from '@traqula/core';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport {\n sparqlCodepointEscape,\n lex as l,\n SparqlParser,\n gram,\n updateNoReuseBlankNodeLabels,\n} from '@traqula/rules-sparql-1-1';\nimport { queryUnitParserBuilder } from './queryUnitParser';\nimport { updateParserBuilder } from './updateUnitParser';\n\n/**\n * Query or update, optimized for the Query case.\n * One could implement a new rule that does not use BACKTRACK.\n */\nconst queryOrUpdate: T11.SparqlGrammarRule<'queryOrUpdate', T11.SparqlQuery> = {\n name: 'queryOrUpdate',\n impl: ({ ACTION, SUBRULE, OR1, OR2, MANY, OPTION1, CONSUME, SUBRULE2 }) => (C) => {\n const prologueValues = SUBRULE(gram.prologue, undefined);\n return OR1<T11.Query | T11.Update>([\n { ALT: () => {\n const subType = OR2<Omit<T11.Query, T11.gram.HandledByBase>>([\n { ALT: () => SUBRULE(gram.selectQuery, undefined) },\n { ALT: () => SUBRULE(gram.constructQuery, undefined) },\n { ALT: () => SUBRULE(gram.describeQuery, undefined) },\n { ALT: () => SUBRULE(gram.askQuery, undefined) },\n ]);\n const values = SUBRULE(gram.valuesClause, undefined);\n return ACTION(() => (<T11.Query>{\n context: prologueValues,\n ...subType,\n type: 'query',\n ...(values && { values }),\n loc: C.factory.sourceLocation(\n prologueValues.at(0),\n subType,\n values,\n ),\n }));\n } },\n { ALT: () => {\n const updates: T11.Update['updates'] = [];\n updates.push({ context: prologueValues });\n let parsedSemi = true;\n MANY({\n GATE: () => parsedSemi,\n DEF: () => {\n parsedSemi = false;\n updates.at(-1)!.operation = SUBRULE(gram.update1, undefined);\n\n OPTION1(() => {\n CONSUME(l.symbols.semi);\n\n parsedSemi = true;\n const innerPrologue = SUBRULE2(gram.prologue, undefined);\n updates.push({ context: innerPrologue });\n });\n },\n });\n return ACTION(() => {\n const update = {\n type: 'update',\n updates,\n loc: C.factory.sourceLocation(\n ...updates[0].context,\n updates[0].operation,\n ...updates.at(-1)!.context,\n updates.at(-1)?.operation,\n ),\n } satisfies T11.Update;\n updateNoReuseBlankNodeLabels(update);\n return update;\n });\n } },\n ]);\n },\n};\n\nexport const sparql11ParserBuilder = ParserBuilder.create(queryUnitParserBuilder)\n .merge(updateParserBuilder, <const> [])\n .addRule(queryOrUpdate);\n\nexport class Parser extends SparqlParser<T11.SparqlQuery> {\n public constructor() {\n const parser = sparql11ParserBuilder.build({\n tokenVocabulary: l.sparql11Tokens.tokenVocabulary,\n queryPreProcessor: sparqlCodepointEscape,\n });\n super(parser);\n }\n}\n"]}
@@ -1,13 +1,13 @@
1
1
  import { ParserBuilder } from '@traqula/core';
2
2
  import { gram } from '@traqula/rules-sparql-1-1';
3
- export declare const expressionParserBuilder: ParserBuilder<import("@traqula/rules-sparql-1-1").SparqlContext, "string" | "var" | "builtInStr" | "builtInLang" | "builtInLangmatches" | "builtInDatatype" | "builtInBound" | "builtInIri" | "builtInUri" | "builtInBnode" | "builtInRand" | "builtInAbs" | "builtInCeil" | "builtInFloor" | "builtInRound" | "builtInConcat" | "builtInStrlen" | "builtInUcase" | "builtInLcase" | "builtInEncode_for_uri" | "builtInContains" | "builtInStrstarts" | "builtInStrends" | "builtInStrbefore" | "builtInStrafter" | "builtInYear" | "builtInMonth" | "builtInDay" | "builtInHours" | "builtInMinutes" | "builtInSeconds" | "builtInTimezone" | "builtInTz" | "builtInNow" | "builtInUuid" | "builtInStruuid" | "builtInMd5" | "builtInSha1" | "builtInSha256" | "builtInSha384" | "builtInSha512" | "builtInCoalesce" | "builtInIf" | "builtInStrlang" | "builtInStrdt" | "builtInSameterm" | "builtInIsiri" | "builtInIsuri" | "builtInIsblank" | "builtInIsliteral" | "builtInIsnumeric" | "builtInRegex" | "builtInSubstr" | "builtInReplace" | "builtInCount" | "builtInSum" | "builtInMin" | "builtInMax" | "builtInAvg" | "builtInSample" | "builtInGroup_concat" | "aggregate" | "rdfLiteral" | "iri" | "numericLiteral" | "numericLiteralUnsigned" | "numericLiteralPositive" | "numericLiteralNegative" | "booleanLiteral" | "prefixedName" | "expression" | "brackettedExpression" | "builtInCall" | "argList" | "expressionList" | "conditionalOrExpression" | "iriOrFunction" | "conditionalAndExpression" | "valueLogical" | "relationalExpression" | "numericExpression" | "additiveExpression" | "multiplicativeExpression" | "unaryExpression" | "primaryExpression", {
4
- string: import("@traqula/core").ParserRule<any, "string"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "string", string, undefined> & import("@traqula/core").GeneratorRule<undefined, "string", string, undefined>;
5
- var: import("@traqula/core").ParserRule<any, "var"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "var", import("@rdfjs/types").Variable, undefined> & import("@traqula/core").GeneratorRule<undefined, "var", import("@rdfjs/types").Variable, undefined>;
3
+ export declare const expressionParserBuilder: ParserBuilder<import("@traqula/rules-sparql-1-1").SparqlContext, "string" | "var" | "builtInStr" | "builtInLang" | "builtInLangmatches" | "builtInDatatype" | "builtInBound" | "builtInIri" | "builtInUri" | "builtInBnode" | "builtInRand" | "builtInAbs" | "builtInCeil" | "builtInFloor" | "builtInRound" | "builtInConcat" | "builtInStrlen" | "builtInUcase" | "builtInLcase" | "builtInEncode_for_uri" | "builtInContains" | "builtInStrstarts" | "builtInStrends" | "builtInStrbefore" | "builtInStrafter" | "builtInYear" | "builtInMonth" | "builtInDay" | "builtInHours" | "builtInMinutes" | "builtInSeconds" | "builtInTimezone" | "builtInTz" | "builtInNow" | "builtInUuid" | "builtInStruuid" | "builtInMd5" | "builtInSha1" | "builtInSha256" | "builtInSha384" | "builtInSha512" | "builtInCoalesce" | "builtInIf" | "builtInStrlang" | "builtInStrdt" | "builtInSameterm" | "builtInIsiri" | "builtInIsuri" | "builtInIsblank" | "builtInIsliteral" | "builtInIsnumeric" | "builtInRegex" | "builtInSubstr" | "builtInReplace" | "builtInCount" | "builtInSum" | "builtInMin" | "builtInMax" | "builtInAvg" | "builtInSample" | "builtInGroup_concat" | "expression" | "aggregate" | "rdfLiteral" | "iri" | "numericLiteral" | "numericLiteralUnsigned" | "numericLiteralPositive" | "numericLiteralNegative" | "booleanLiteral" | "prefixedName" | "brackettedExpression" | "builtInCall" | "argList" | "expressionList" | "conditionalOrExpression" | "conditionalAndExpression" | "valueLogical" | "relationalExpression" | "numericExpression" | "additiveExpression" | "multiplicativeExpression" | "unaryExpression" | "primaryExpression" | "iriOrFunction", {
4
+ string: import("@traqula/core").ParserRule<any, "string"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"string", import("@traqula/rules-sparql-1-1").TermLiteralStr>;
5
+ var: import("@traqula/core").ParserRule<any, "var"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"var", import("@traqula/rules-sparql-1-1").TermVariable, undefined> & import("@traqula/rules-sparql-1-1").SparqlGeneratorRule<"var", import("@traqula/rules-sparql-1-1").TermVariable, undefined>;
6
6
  builtInStr: import("@traqula/core").ParserRule<any, "builtInStr"> & gram.RuleDefExpressionFunctionX<"builtInStr", [import("@traqula/rules-sparql-1-1").Expression]>;
7
7
  builtInLang: import("@traqula/core").ParserRule<any, "builtInLang"> & gram.RuleDefExpressionFunctionX<"builtInLang", [import("@traqula/rules-sparql-1-1").Expression]>;
8
8
  builtInLangmatches: import("@traqula/core").ParserRule<any, "builtInLangmatches"> & gram.RuleDefExpressionFunctionX<"builtInLangmatches", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
9
9
  builtInDatatype: import("@traqula/core").ParserRule<any, "builtInDatatype"> & gram.RuleDefExpressionFunctionX<"builtInDatatype", [import("@traqula/rules-sparql-1-1").Expression]>;
10
- builtInBound: import("@traqula/core").ParserRule<any, "builtInBound"> & gram.RuleDefExpressionFunctionX<"builtInBound", [import("@rdfjs/types").Variable]>;
10
+ builtInBound: import("@traqula/core").ParserRule<any, "builtInBound"> & gram.RuleDefExpressionFunctionX<"builtInBound", [import("@traqula/rules-sparql-1-1").TermVariable]>;
11
11
  builtInIri: import("@traqula/core").ParserRule<any, "builtInIri"> & gram.RuleDefExpressionFunctionX<"builtInIri", [import("@traqula/rules-sparql-1-1").Expression]>;
12
12
  builtInUri: import("@traqula/core").ParserRule<any, "builtInUri"> & gram.RuleDefExpressionFunctionX<"builtInUri", [import("@traqula/rules-sparql-1-1").Expression]>;
13
13
  builtInBnode: import("@traqula/core").ParserRule<any, "builtInBnode"> & gram.RuleDefExpressionFunctionX<"builtInBnode", [] | [import("@traqula/rules-sparql-1-1").Expression]>;
@@ -55,33 +55,28 @@ export declare const expressionParserBuilder: ParserBuilder<import("@traqula/rul
55
55
  builtInRegex: import("@traqula/core").ParserRule<any, "builtInRegex"> & gram.RuleDefExpressionFunctionX<"builtInRegex", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression] | [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
56
56
  builtInSubstr: import("@traqula/core").ParserRule<any, "builtInSubstr"> & gram.RuleDefExpressionFunctionX<"builtInSubstr", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression] | [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
57
57
  builtInReplace: import("@traqula/core").ParserRule<any, "builtInReplace"> & gram.RuleDefExpressionFunctionX<"builtInReplace", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression] | [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
58
- builtInCount: import("@traqula/core").ParserRule<any, "builtInCount"> & gram.RuleDefExpressionAggregatorX<"builtInCount">;
58
+ builtInCount: import("@traqula/core").ParserRule<any, "builtInCount"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"builtInCount", import("@traqula/rules-sparql-1-1").ExpressionAggregateDefault | import("@traqula/rules-sparql-1-1").ExpressionAggregateOnWildcard>;
59
59
  builtInSum: import("@traqula/core").ParserRule<any, "builtInSum"> & gram.RuleDefExpressionAggregatorX<"builtInSum">;
60
60
  builtInMin: import("@traqula/core").ParserRule<any, "builtInMin"> & gram.RuleDefExpressionAggregatorX<"builtInMin">;
61
61
  builtInMax: import("@traqula/core").ParserRule<any, "builtInMax"> & gram.RuleDefExpressionAggregatorX<"builtInMax">;
62
62
  builtInAvg: import("@traqula/core").ParserRule<any, "builtInAvg"> & gram.RuleDefExpressionAggregatorX<"builtInAvg">;
63
63
  builtInSample: import("@traqula/core").ParserRule<any, "builtInSample"> & gram.RuleDefExpressionAggregatorX<"builtInSample">;
64
- builtInGroup_concat: import("@traqula/core").ParserRule<any, "builtInGroup_concat"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"builtInGroup_concat", import("@traqula/rules-sparql-1-1").AggregateExpression>;
65
- aggregate: import("@traqula/core").ParserRule<any, "aggregate"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "aggregate", import("@traqula/rules-sparql-1-1").AggregateExpression, undefined> & import("@traqula/core").GeneratorRule<undefined, "aggregate", import("@traqula/rules-sparql-1-1").AggregateExpression, undefined>;
66
- rdfLiteral: import("@traqula/core").ParserRule<any, "rdfLiteral"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "rdfLiteral", import("@rdfjs/types").Literal, undefined> & import("@traqula/core").GeneratorRule<undefined, "rdfLiteral", import("@rdfjs/types").Literal, undefined>;
67
- iri: import("@traqula/core").ParserRule<any, "iri"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "iri", import("@traqula/rules-sparql-1-1").IriTerm, undefined> & import("@traqula/core").GeneratorRule<undefined, "iri", import("@traqula/rules-sparql-1-1").IriTerm, undefined>;
68
- numericLiteral: import("@traqula/core").ParserRule<any, "numericLiteral"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"numericLiteral", import("@rdfjs/types").Literal>;
69
- numericLiteralUnsigned: import("@traqula/core").ParserRule<any, "numericLiteralUnsigned"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"numericLiteralUnsigned", import("@rdfjs/types").Literal>;
70
- numericLiteralPositive: import("@traqula/core").ParserRule<any, "numericLiteralPositive"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"numericLiteralPositive", import("@rdfjs/types").Literal>;
71
- numericLiteralNegative: import("@traqula/core").ParserRule<any, "numericLiteralNegative"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"numericLiteralNegative", import("@rdfjs/types").Literal>;
72
- booleanLiteral: import("@traqula/core").ParserRule<any, "booleanLiteral"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"booleanLiteral", import("@rdfjs/types").Literal>;
73
- prefixedName: import("@traqula/core").ParserRule<any, "prefixedName"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"prefixedName", import("@traqula/rules-sparql-1-1").IriTerm>;
74
- expression: import("@traqula/core").ParserRule<any, "expression"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "expression", import("@traqula/rules-sparql-1-1").Expression, undefined> & import("@traqula/core").GeneratorRule<undefined, "expression", import("@traqula/rules-sparql-1-1").Expression, undefined>;
64
+ builtInGroup_concat: import("@traqula/core").ParserRule<any, "builtInGroup_concat"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"builtInGroup_concat", import("@traqula/rules-sparql-1-1").ExpressionAggregateDefault | import("@traqula/rules-sparql-1-1").ExpressionAggregateSeparator>;
65
+ expression: import("@traqula/core").ParserRule<any, "expression"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"expression", import("@traqula/rules-sparql-1-1").Expression, undefined> & import("@traqula/rules-sparql-1-1").SparqlGeneratorRule<"expression", import("@traqula/rules-sparql-1-1").Expression, undefined>;
66
+ aggregate: import("@traqula/core").ParserRule<any, "aggregate"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"aggregate", import("@traqula/rules-sparql-1-1").ExpressionAggregate, undefined> & import("@traqula/rules-sparql-1-1").SparqlGeneratorRule<"aggregate", import("@traqula/rules-sparql-1-1").ExpressionAggregate, undefined>;
67
+ rdfLiteral: import("@traqula/core").ParserRule<any, "rdfLiteral"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"rdfLiteral", import("@traqula/rules-sparql-1-1").TermLiteral, undefined> & import("@traqula/rules-sparql-1-1").SparqlGeneratorRule<"rdfLiteral", import("@traqula/rules-sparql-1-1").TermLiteral, undefined>;
68
+ iri: import("@traqula/core").ParserRule<any, "iri"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"iri", import("@traqula/rules-sparql-1-1").TermIri, undefined> & import("@traqula/rules-sparql-1-1").SparqlGeneratorRule<"iri", import("@traqula/rules-sparql-1-1").TermIri, undefined>;
69
+ numericLiteral: import("@traqula/core").ParserRule<any, "numericLiteral"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"numericLiteral", import("@traqula/rules-sparql-1-1").TermLiteralTyped>;
70
+ numericLiteralUnsigned: import("@traqula/core").ParserRule<any, "numericLiteralUnsigned"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"numericLiteralUnsigned", import("@traqula/rules-sparql-1-1").TermLiteralTyped>;
71
+ numericLiteralPositive: import("@traqula/core").ParserRule<any, "numericLiteralPositive"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"numericLiteralPositive", import("@traqula/rules-sparql-1-1").TermLiteralTyped>;
72
+ numericLiteralNegative: import("@traqula/core").ParserRule<any, "numericLiteralNegative"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"numericLiteralNegative", import("@traqula/rules-sparql-1-1").TermLiteralTyped>;
73
+ booleanLiteral: import("@traqula/core").ParserRule<any, "booleanLiteral"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"booleanLiteral", import("@traqula/rules-sparql-1-1").TermLiteralTyped>;
74
+ prefixedName: import("@traqula/core").ParserRule<any, "prefixedName"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"prefixedName", import("@traqula/rules-sparql-1-1").TermIriPrefixed, undefined> & import("@traqula/rules-sparql-1-1").SparqlGeneratorRule<"prefixedName", import("@traqula/rules-sparql-1-1").TermIriPrefixed, undefined>;
75
75
  brackettedExpression: import("@traqula/core").ParserRule<any, "brackettedExpression"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"brackettedExpression", import("@traqula/rules-sparql-1-1").Expression>;
76
76
  builtInCall: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "builtInCall", import("@traqula/rules-sparql-1-1").Expression, undefined>;
77
- argList: import("@traqula/core").ParserRule<any, "argList"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "argList", gram.IArgList, undefined> & import("@traqula/core").GeneratorRule<undefined, "argList", gram.IArgList, undefined>;
78
- expressionList: import("@traqula/core").ParserRule<any, "expressionList"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"expressionList", import("@traqula/rules-sparql-1-1").Expression[]>;
77
+ argList: import("@traqula/core").ParserRule<any, "argList"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"argList", import("@traqula/core").Wrap<gram.IArgList>, undefined> & import("@traqula/rules-sparql-1-1").SparqlGeneratorRule<"argList", import("@traqula/core").Wrap<gram.IArgList>, undefined>;
78
+ expressionList: import("@traqula/core").ParserRule<any, "expressionList"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"expressionList", import("@traqula/core").Wrap<import("@traqula/rules-sparql-1-1").Expression[]>>;
79
79
  conditionalOrExpression: import("@traqula/core").ParserRule<any, "conditionalOrExpression"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"conditionalOrExpression", import("@traqula/rules-sparql-1-1").Expression>;
80
- iriOrFunction: import("@traqula/core").ParserRule<any, "iriOrFunction"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "iriOrFunction", import("@traqula/rules-sparql-1-1").IriTerm | (gram.IArgList & {
81
- function: import("@traqula/rules-sparql-1-1").IriTerm;
82
- }), undefined> & import("@traqula/core").GeneratorRule<undefined, "iriOrFunction", import("@traqula/rules-sparql-1-1").IriTerm | (gram.IArgList & {
83
- function: import("@traqula/rules-sparql-1-1").IriTerm;
84
- }), undefined>;
85
80
  conditionalAndExpression: import("@traqula/core").ParserRule<any, "conditionalAndExpression"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"conditionalAndExpression", import("@traqula/rules-sparql-1-1").Expression>;
86
81
  valueLogical: import("@traqula/core").ParserRule<any, "valueLogical"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"valueLogical", import("@traqula/rules-sparql-1-1").Expression>;
87
82
  relationalExpression: import("@traqula/core").ParserRule<any, "relationalExpression"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"relationalExpression", import("@traqula/rules-sparql-1-1").Expression>;
@@ -90,4 +85,5 @@ export declare const expressionParserBuilder: ParserBuilder<import("@traqula/rul
90
85
  multiplicativeExpression: import("@traqula/core").ParserRule<any, "multiplicativeExpression"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"multiplicativeExpression", import("@traqula/rules-sparql-1-1").Expression>;
91
86
  unaryExpression: import("@traqula/core").ParserRule<any, "unaryExpression"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"unaryExpression", import("@traqula/rules-sparql-1-1").Expression>;
92
87
  primaryExpression: import("@traqula/core").ParserRule<any, "primaryExpression"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"primaryExpression", import("@traqula/rules-sparql-1-1").Expression>;
88
+ iriOrFunction: import("@traqula/core").ParserRule<any, "iriOrFunction"> & import("@traqula/rules-sparql-1-1").SparqlGrammarRule<"iriOrFunction", import("@traqula/rules-sparql-1-1").ExpressionFunctionCall | import("@traqula/rules-sparql-1-1").TermIri, undefined> & import("@traqula/rules-sparql-1-1").SparqlGeneratorRule<"iriOrFunction", import("@traqula/rules-sparql-1-1").ExpressionFunctionCall | import("@traqula/rules-sparql-1-1").TermIri, undefined>;
93
89
  }>;
@@ -45,7 +45,7 @@ const builtInPatch = {
45
45
  name: 'builtInCall',
46
46
  impl: ({ OR, SUBRULE }) => () => OR(gram.builtInCallList(SUBRULE).slice(0, -2)),
47
47
  };
48
- export const expressionParserBuilder = ParserBuilder.createBuilder(rulesNoBuiltIn)
48
+ export const expressionParserBuilder = ParserBuilder.create(rulesNoBuiltIn)
49
49
  .addMany(gram.builtInContains, gram.builtInStrstarts, gram.builtInStrends, gram.builtInStrbefore, gram.builtInStrafter, gram.builtInYear, gram.builtInMonth, gram.builtInDay, gram.builtInHours, gram.builtInMinutes, gram.builtInSeconds, gram.builtInTimezone, gram.builtInTz, gram.builtInNow, gram.builtInUuid, gram.builtInStruuid, gram.builtInMd5, gram.builtInSha1, gram.builtInSha256, gram.builtInSha384, gram.builtInSha512, gram.builtInCoalesce, gram.builtInIf, gram.builtInStrlang, gram.builtInStrdt, gram.builtInSameterm, gram.builtInIsiri, gram.builtInIsuri, gram.builtInIsblank, gram.builtInIsliteral, gram.builtInIsnumeric, gram.regexExpression, gram.substringExpression, gram.strReplaceExpression, gram.aggregateCount, gram.aggregateSum, gram.aggregateMin, gram.aggregateMax, gram.aggregateAvg, gram.aggregateSample, gram.aggregateGroup_concat, gram.aggregate, gram.iri, gram.prefixedName, gram.argList, gram.string)
50
50
  .addRule(builtInPatch);
51
51
  //# sourceMappingURL=expressionParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expressionParser.js","sourceRoot":"","sources":["expressionParser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ParserBuilder } from '@traqula/core';\nimport { gram } from '@traqula/rules-sparql-1-1';\n\nconst rulesNoBuiltIn = <const> [\n gram.expression,\n gram.conditionalOrExpression,\n gram.conditionalAndExpression,\n gram.valueLogical,\n gram.relationalExpression,\n gram.numericExpression,\n gram.expressionList,\n gram.additiveExpression,\n gram.multiplicativeExpression,\n gram.unaryExpression,\n gram.primaryExpression,\n gram.brackettedExpression,\n // BuiltInCall,\n gram.iriOrFunction,\n gram.rdfLiteral,\n gram.numericLiteral,\n gram.numericLiteralUnsigned,\n gram.numericLiteralPositive,\n gram.numericLiteralNegative,\n gram.booleanLiteral,\n gram.var_,\n gram.builtInStr,\n gram.builtInLang,\n gram.builtInLangmatches,\n gram.builtInDatatype,\n gram.builtInBound,\n gram.builtInIri,\n gram.builtInUri,\n gram.builtInBnodeSparqlJs,\n gram.builtInRand,\n gram.builtInAbs,\n gram.builtInCeil,\n gram.builtInFloor,\n gram.builtInRound,\n gram.builtInConcat,\n gram.builtInStrlen,\n gram.builtInUcase,\n gram.builtInLcase,\n gram.builtInEncode_for_uri,\n];\n\nconst builtInPatch: typeof gram.builtInCall = {\n name: 'builtInCall',\n impl: ({ OR, SUBRULE }) => () => OR(gram.builtInCallList(SUBRULE).slice(0, -2)),\n};\n\nexport const expressionParserBuilder = ParserBuilder.createBuilder(rulesNoBuiltIn)\n .addMany(\n gram.builtInContains,\n gram.builtInStrstarts,\n gram.builtInStrends,\n gram.builtInStrbefore,\n gram.builtInStrafter,\n gram.builtInYear,\n gram.builtInMonth,\n gram.builtInDay,\n gram.builtInHours,\n gram.builtInMinutes,\n gram.builtInSeconds,\n gram.builtInTimezone,\n gram.builtInTz,\n gram.builtInNow,\n gram.builtInUuid,\n gram.builtInStruuid,\n gram.builtInMd5,\n gram.builtInSha1,\n gram.builtInSha256,\n gram.builtInSha384,\n gram.builtInSha512,\n gram.builtInCoalesce,\n gram.builtInIf,\n gram.builtInStrlang,\n gram.builtInStrdt,\n gram.builtInSameterm,\n gram.builtInIsiri,\n gram.builtInIsuri,\n gram.builtInIsblank,\n gram.builtInIsliteral,\n gram.builtInIsnumeric,\n gram.regexExpression,\n gram.substringExpression,\n gram.strReplaceExpression,\n gram.aggregateCount,\n gram.aggregateSum,\n gram.aggregateMin,\n gram.aggregateMax,\n gram.aggregateAvg,\n gram.aggregateSample,\n gram.aggregateGroup_concat,\n gram.aggregate,\n gram.iri,\n gram.prefixedName,\n gram.argList,\n gram.string,\n )\n .addRule(builtInPatch);\n"]}
1
+ {"version":3,"file":"expressionParser.js","sourceRoot":"","sources":["expressionParser.ts"],"names":[],"mappings":"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","sourcesContent":["import { ParserBuilder } from '@traqula/core';\nimport { gram } from '@traqula/rules-sparql-1-1';\n\nconst rulesNoBuiltIn = <const> [\n gram.expression,\n gram.conditionalOrExpression,\n gram.conditionalAndExpression,\n gram.valueLogical,\n gram.relationalExpression,\n gram.numericExpression,\n gram.expressionList,\n gram.additiveExpression,\n gram.multiplicativeExpression,\n gram.unaryExpression,\n gram.primaryExpression,\n gram.brackettedExpression,\n // BuiltInCall,\n gram.iriOrFunction,\n gram.rdfLiteral,\n gram.numericLiteral,\n gram.numericLiteralUnsigned,\n gram.numericLiteralPositive,\n gram.numericLiteralNegative,\n gram.booleanLiteral,\n gram.var_,\n gram.builtInStr,\n gram.builtInLang,\n gram.builtInLangmatches,\n gram.builtInDatatype,\n gram.builtInBound,\n gram.builtInIri,\n gram.builtInUri,\n gram.builtInBnodeSparqlJs,\n gram.builtInRand,\n gram.builtInAbs,\n gram.builtInCeil,\n gram.builtInFloor,\n gram.builtInRound,\n gram.builtInConcat,\n gram.builtInStrlen,\n gram.builtInUcase,\n gram.builtInLcase,\n gram.builtInEncode_for_uri,\n];\n\nconst builtInPatch: typeof gram.builtInCall = {\n name: 'builtInCall',\n impl: ({ OR, SUBRULE }) => () => OR(gram.builtInCallList(SUBRULE).slice(0, -2)),\n};\n\nexport const expressionParserBuilder = ParserBuilder.create(rulesNoBuiltIn)\n .addMany(\n gram.builtInContains,\n gram.builtInStrstarts,\n gram.builtInStrends,\n gram.builtInStrbefore,\n gram.builtInStrafter,\n gram.builtInYear,\n gram.builtInMonth,\n gram.builtInDay,\n gram.builtInHours,\n gram.builtInMinutes,\n gram.builtInSeconds,\n gram.builtInTimezone,\n gram.builtInTz,\n gram.builtInNow,\n gram.builtInUuid,\n gram.builtInStruuid,\n gram.builtInMd5,\n gram.builtInSha1,\n gram.builtInSha256,\n gram.builtInSha384,\n gram.builtInSha512,\n gram.builtInCoalesce,\n gram.builtInIf,\n gram.builtInStrlang,\n gram.builtInStrdt,\n gram.builtInSameterm,\n gram.builtInIsiri,\n gram.builtInIsuri,\n gram.builtInIsblank,\n gram.builtInIsliteral,\n gram.builtInIsnumeric,\n gram.regexExpression,\n gram.substringExpression,\n gram.strReplaceExpression,\n gram.aggregateCount,\n gram.aggregateSum,\n gram.aggregateMin,\n gram.aggregateMax,\n gram.aggregateAvg,\n gram.aggregateSample,\n gram.aggregateGroup_concat,\n gram.aggregate,\n gram.iri,\n gram.prefixedName,\n gram.argList,\n gram.string,\n )\n .addRule(builtInPatch);\n"]}