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

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 (115) hide show
  1. package/LICENSE.txt +22 -0
  2. package/README.md +17 -0
  3. package/lib/RoundTripTypes.d.ts +379 -0
  4. package/lib/RoundTripTypes.js +2 -0
  5. package/lib/RoundTripTypes.js.map +1 -0
  6. package/lib/Sparql11types.d.ts +68 -0
  7. package/lib/Sparql11types.js +2 -0
  8. package/lib/Sparql11types.js.map +1 -0
  9. package/lib/SparqlParser.d.ts +23 -0
  10. package/lib/SparqlParser.js +32 -0
  11. package/lib/SparqlParser.js.map +1 -0
  12. package/lib/expressionHelpers.d.ts +45 -0
  13. package/lib/expressionHelpers.js +161 -0
  14. package/lib/expressionHelpers.js.map +1 -0
  15. package/lib/factory.d.ts +447 -0
  16. package/lib/factory.js +105 -0
  17. package/lib/factory.js.map +1 -0
  18. package/lib/factoryMixins/ContextFactory.d.ts +38 -0
  19. package/lib/factoryMixins/ContextFactory.js +30 -0
  20. package/lib/factoryMixins/ContextFactory.js.map +1 -0
  21. package/lib/factoryMixins/ExpressionFactory.d.ts +60 -0
  22. package/lib/factoryMixins/ExpressionFactory.js +83 -0
  23. package/lib/factoryMixins/ExpressionFactory.js.map +1 -0
  24. package/lib/factoryMixins/GraphRefFactory.d.ts +43 -0
  25. package/lib/factoryMixins/GraphRefFactory.js +51 -0
  26. package/lib/factoryMixins/GraphRefFactory.js.map +1 -0
  27. package/lib/factoryMixins/PathFactory.d.ts +51 -0
  28. package/lib/factoryMixins/PathFactory.js +68 -0
  29. package/lib/factoryMixins/PathFactory.js.map +1 -0
  30. package/lib/factoryMixins/Patternfactory.d.ts +55 -0
  31. package/lib/factoryMixins/Patternfactory.js +98 -0
  32. package/lib/factoryMixins/Patternfactory.js.map +1 -0
  33. package/lib/factoryMixins/QueryFactory.d.ts +41 -0
  34. package/lib/factoryMixins/QueryFactory.js +43 -0
  35. package/lib/factoryMixins/QueryFactory.js.map +1 -0
  36. package/lib/factoryMixins/SolutionModifiersFactory.d.ts +43 -0
  37. package/lib/factoryMixins/SolutionModifiersFactory.js +55 -0
  38. package/lib/factoryMixins/SolutionModifiersFactory.js.map +1 -0
  39. package/lib/factoryMixins/TermFactory.d.ts +76 -0
  40. package/lib/factoryMixins/TermFactory.js +84 -0
  41. package/lib/factoryMixins/TermFactory.js.map +1 -0
  42. package/lib/factoryMixins/UpdateOperationFactory.d.ts +68 -0
  43. package/lib/factoryMixins/UpdateOperationFactory.js +126 -0
  44. package/lib/factoryMixins/UpdateOperationFactory.js.map +1 -0
  45. package/lib/factoryMixins/mixins.d.ts +14 -0
  46. package/lib/factoryMixins/mixins.js +20 -0
  47. package/lib/factoryMixins/mixins.js.map +1 -0
  48. package/lib/grammar/builtIn.d.ts +89 -0
  49. package/lib/grammar/builtIn.js +247 -0
  50. package/lib/grammar/builtIn.js.map +1 -0
  51. package/lib/grammar/dataSetClause.d.ts +34 -0
  52. package/lib/grammar/dataSetClause.js +81 -0
  53. package/lib/grammar/dataSetClause.js.map +1 -0
  54. package/lib/grammar/expression.d.ts +63 -0
  55. package/lib/grammar/expression.js +383 -0
  56. package/lib/grammar/expression.js.map +1 -0
  57. package/lib/grammar/general.d.ts +36 -0
  58. package/lib/grammar/general.js +145 -0
  59. package/lib/grammar/general.js.map +1 -0
  60. package/lib/grammar/index.d.ts +12 -0
  61. package/lib/grammar/index.js +13 -0
  62. package/lib/grammar/index.js.map +1 -0
  63. package/lib/grammar/literals.d.ts +55 -0
  64. package/lib/grammar/literals.js +258 -0
  65. package/lib/grammar/literals.js.map +1 -0
  66. package/lib/grammar/propertyPaths.d.ts +43 -0
  67. package/lib/grammar/propertyPaths.js +182 -0
  68. package/lib/grammar/propertyPaths.js.map +1 -0
  69. package/lib/grammar/queryUnit/queryUnit.d.ts +48 -0
  70. package/lib/grammar/queryUnit/queryUnit.js +366 -0
  71. package/lib/grammar/queryUnit/queryUnit.js.map +1 -0
  72. package/lib/grammar/solutionModifier.d.ts +44 -0
  73. package/lib/grammar/solutionModifier.js +253 -0
  74. package/lib/grammar/solutionModifier.js.map +1 -0
  75. package/lib/grammar/tripleBlock.d.ts +36 -0
  76. package/lib/grammar/tripleBlock.js +357 -0
  77. package/lib/grammar/tripleBlock.js.map +1 -0
  78. package/lib/grammar/updateUnit/updateUnit.d.ts +95 -0
  79. package/lib/grammar/updateUnit/updateUnit.js +493 -0
  80. package/lib/grammar/updateUnit/updateUnit.js.map +1 -0
  81. package/lib/grammar/whereClause.d.ts +76 -0
  82. package/lib/grammar/whereClause.js +441 -0
  83. package/lib/grammar/whereClause.js.map +1 -0
  84. package/lib/grammar-helpers/utils.d.ts +12 -0
  85. package/lib/grammar-helpers/utils.js +16 -0
  86. package/lib/grammar-helpers/utils.js.map +1 -0
  87. package/lib/index.cjs +14565 -0
  88. package/lib/index.d.ts +10 -0
  89. package/lib/index.js +11 -0
  90. package/lib/index.js.map +1 -0
  91. package/lib/lexer/BuildinCalls.d.ts +126 -0
  92. package/lib/lexer/BuildinCalls.js +188 -0
  93. package/lib/lexer/BuildinCalls.js.map +1 -0
  94. package/lib/lexer/graph.d.ts +6 -0
  95. package/lib/lexer/graph.js +8 -0
  96. package/lib/lexer/graph.js.map +1 -0
  97. package/lib/lexer/index.d.ts +5 -0
  98. package/lib/lexer/index.js +6 -0
  99. package/lib/lexer/index.js.map +1 -0
  100. package/lib/lexer/lexer.d.ts +54 -0
  101. package/lib/lexer/lexer.js +70 -0
  102. package/lib/lexer/lexer.js.map +1 -0
  103. package/lib/lexer/symbols.d.ts +28 -0
  104. package/lib/lexer/symbols.js +29 -0
  105. package/lib/lexer/symbols.js.map +1 -0
  106. package/lib/lexer/terminals.d.ts +26 -0
  107. package/lib/lexer/terminals.js +63 -0
  108. package/lib/lexer/terminals.js.map +1 -0
  109. package/lib/utils.d.ts +5 -0
  110. package/lib/utils.js +24 -0
  111. package/lib/utils.js.map +1 -0
  112. package/lib/validation/validators.d.ts +14 -0
  113. package/lib/validation/validators.js +235 -0
  114. package/lib/validation/validators.js.map +1 -0
  115. package/package.json +48 -0
@@ -0,0 +1,36 @@
1
+ import type { ContextDefinition, ContextDefinitionBase, ContextDefinitionPrefix, GraphTerm, Term, TermIri, TermVariable } from '../RoundTripTypes';
2
+ import type { SparqlGrammarRule, SparqlRule } from '../Sparql11types';
3
+ /**
4
+ * [[4]](https://www.w3.org/TR/sparql11-query/#rPrologue)
5
+ */
6
+ export declare const prologue: SparqlRule<'prologue', ContextDefinition[]>;
7
+ /**
8
+ * Registers base IRI in the context and returns it.
9
+ * [[5]](https://www.w3.org/TR/sparql11-query/#rBaseDecl)
10
+ */
11
+ export declare const baseDecl: SparqlRule<'baseDecl', ContextDefinitionBase>;
12
+ /**
13
+ * Registers prefix in the context and returns registered key-value-pair.
14
+ * [[6]](https://www.w3.org/TR/sparql11-query/#rPrefixDecl)
15
+ */
16
+ export declare const prefixDecl: SparqlRule<'prefixDecl', ContextDefinitionPrefix>;
17
+ /**
18
+ * [[78]](https://www.w3.org/TR/sparql11-query/#rVerb)
19
+ */
20
+ export declare const verb: SparqlGrammarRule<'verb', TermVariable | TermIri>;
21
+ /**
22
+ * [[106]](https://www.w3.org/TR/sparql11-query/#rVarOrTerm)
23
+ */
24
+ export declare const varOrTerm: SparqlRule<'varOrTerm', Term>;
25
+ /**
26
+ * [[107]](https://www.w3.org/TR/sparql11-query/#rVarOrIri)
27
+ */
28
+ export declare const varOrIri: SparqlGrammarRule<'varOrIri', TermIri | TermVariable>;
29
+ /**
30
+ * [[108]](https://www.w3.org/TR/sparql11-query/#rVar)
31
+ */
32
+ export declare const var_: SparqlRule<'var', TermVariable>;
33
+ /**
34
+ * [[109]](https://www.w3.org/TR/sparql11-query/#rGraphTerm)
35
+ */
36
+ export declare const graphTerm: SparqlRule<'graphTerm', GraphTerm>;
@@ -0,0 +1,145 @@
1
+ import { CommonIRIs } from '../grammar-helpers/utils';
2
+ import * as l from '../lexer';
3
+ import { blankNode, booleanLiteral, iri, iriFull, numericLiteral, rdfLiteral, verbA } from './literals';
4
+ /**
5
+ * [[4]](https://www.w3.org/TR/sparql11-query/#rPrologue)
6
+ */
7
+ export const prologue = {
8
+ name: 'prologue',
9
+ impl: ({ SUBRULE, MANY, OR }) => () => {
10
+ const result = [];
11
+ MANY(() => OR([
12
+ { ALT: () => result.push(SUBRULE(baseDecl, undefined)) },
13
+ // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
14
+ // We might need to check this.
15
+ { ALT: () => result.push(SUBRULE(prefixDecl, undefined)) },
16
+ ]));
17
+ return result;
18
+ },
19
+ gImpl: ({ SUBRULE }) => (ast, { factory: F }) => {
20
+ for (const context of ast) {
21
+ if (F.isContextDefinitionBase(context)) {
22
+ SUBRULE(baseDecl, context, undefined);
23
+ }
24
+ else if (F.isContextDefinitionPrefix(context)) {
25
+ SUBRULE(prefixDecl, context, undefined);
26
+ }
27
+ }
28
+ },
29
+ };
30
+ /**
31
+ * Registers base IRI in the context and returns it.
32
+ * [[5]](https://www.w3.org/TR/sparql11-query/#rBaseDecl)
33
+ */
34
+ export const baseDecl = {
35
+ name: 'baseDecl',
36
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
37
+ const base = CONSUME(l.baseDecl);
38
+ const val = SUBRULE(iriFull, undefined);
39
+ return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
40
+ },
41
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {
42
+ F.printFilter(ast, () => PRINT_WORD('BASE'));
43
+ SUBRULE(iri, ast.value, undefined);
44
+ },
45
+ };
46
+ /**
47
+ * Registers prefix in the context and returns registered key-value-pair.
48
+ * [[6]](https://www.w3.org/TR/sparql11-query/#rPrefixDecl)
49
+ */
50
+ export const prefixDecl = {
51
+ name: 'prefixDecl',
52
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
53
+ const prefix = CONSUME(l.prefixDecl);
54
+ const name = CONSUME(l.terminals.pNameNs).image.slice(0, -1);
55
+ const value = SUBRULE(iriFull, undefined);
56
+ return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
57
+ },
58
+ gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F }) => {
59
+ F.printFilter(ast, () => {
60
+ PRINT_WORDS('PREFIX', `${ast.key}:`);
61
+ });
62
+ SUBRULE(iri, ast.value, undefined);
63
+ },
64
+ };
65
+ /**
66
+ * [[78]](https://www.w3.org/TR/sparql11-query/#rVerb)
67
+ */
68
+ export const verb = {
69
+ name: 'verb',
70
+ impl: ({ SUBRULE, OR }) => () => OR([
71
+ { ALT: () => SUBRULE(varOrIri, undefined) },
72
+ { ALT: () => SUBRULE(verbA, undefined) },
73
+ ]),
74
+ };
75
+ /**
76
+ * [[106]](https://www.w3.org/TR/sparql11-query/#rVarOrTerm)
77
+ */
78
+ export const varOrTerm = {
79
+ name: 'varOrTerm',
80
+ impl: ({ SUBRULE, OR }) => C => OR([
81
+ { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(var_, undefined) },
82
+ { ALT: () => SUBRULE(graphTerm, undefined) },
83
+ ]),
84
+ gImpl: ({ SUBRULE }) => (ast, { factory: F }) => {
85
+ if (F.isTermVariable(ast)) {
86
+ return SUBRULE(var_, ast, undefined);
87
+ }
88
+ return SUBRULE(graphTerm, ast, undefined);
89
+ },
90
+ };
91
+ /**
92
+ * [[107]](https://www.w3.org/TR/sparql11-query/#rVarOrIri)
93
+ */
94
+ export const varOrIri = {
95
+ name: 'varOrIri',
96
+ impl: ({ SUBRULE, OR }) => C => OR([
97
+ { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(var_, undefined) },
98
+ { ALT: () => SUBRULE(iri, undefined) },
99
+ ]),
100
+ };
101
+ /**
102
+ * [[108]](https://www.w3.org/TR/sparql11-query/#rVar)
103
+ */
104
+ export const var_ = {
105
+ name: 'var',
106
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
107
+ const varToken = OR([
108
+ { ALT: () => CONSUME(l.terminals.var1) },
109
+ { ALT: () => CONSUME(l.terminals.var2) },
110
+ ]);
111
+ return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
112
+ },
113
+ gImpl: ({ PRINT_WORD }) => (ast, { factory: F }) => {
114
+ F.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
115
+ },
116
+ };
117
+ /**
118
+ * [[109]](https://www.w3.org/TR/sparql11-query/#rGraphTerm)
119
+ */
120
+ export const graphTerm = {
121
+ name: 'graphTerm',
122
+ impl: ({ ACTION, SUBRULE, CONSUME, OR }) => C => OR([
123
+ { ALT: () => SUBRULE(iri, undefined) },
124
+ { ALT: () => SUBRULE(rdfLiteral, undefined) },
125
+ { ALT: () => SUBRULE(numericLiteral, undefined) },
126
+ { ALT: () => SUBRULE(booleanLiteral, undefined) },
127
+ { GATE: () => C.parseMode.has('canCreateBlankNodes'), ALT: () => SUBRULE(blankNode, undefined) },
128
+ { ALT: () => {
129
+ const tokenNil = CONSUME(l.terminals.nil);
130
+ return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), CommonIRIs.NIL));
131
+ } },
132
+ ]),
133
+ gImpl: ({ SUBRULE }) => (ast, { factory: F }) => {
134
+ if (F.isTermNamed(ast)) {
135
+ SUBRULE(iri, ast, undefined);
136
+ }
137
+ else if (F.isTermLiteral(ast)) {
138
+ SUBRULE(rdfLiteral, ast, undefined);
139
+ }
140
+ else if (F.isTermBlank(ast)) {
141
+ SUBRULE(blankNode, ast, undefined);
142
+ }
143
+ },
144
+ };
145
+ //# sourceMappingURL=general.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["general.ts"],"names":[],"mappings":"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","sourcesContent":["import { CommonIRIs } from '../grammar-helpers/utils';\nimport * as l from '../lexer';\nimport type {\n ContextDefinition,\n ContextDefinitionBase,\n ContextDefinitionPrefix,\n GraphTerm,\n Term,\n TermIri,\n TermVariable,\n} from '../RoundTripTypes';\nimport type { SparqlGrammarRule, SparqlRule } from '../Sparql11types';\nimport { blankNode, booleanLiteral, iri, iriFull, numericLiteral, rdfLiteral, verbA } from './literals';\n\n/**\n * [[4]](https://www.w3.org/TR/sparql11-query/#rPrologue)\n */\nexport const prologue: SparqlRule<'prologue', ContextDefinition[]> = <const> {\n name: 'prologue',\n impl: ({ SUBRULE, MANY, OR }) => () => {\n const result: ContextDefinition[] = [];\n MANY(() => OR([\n { ALT: () => result.push(SUBRULE(baseDecl, undefined)) },\n // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.\n // We might need to check this.\n { ALT: () => result.push(SUBRULE(prefixDecl, undefined)) },\n ]));\n return result;\n },\n gImpl: ({ SUBRULE }) => (ast, { factory: F }) => {\n for (const context of ast) {\n if (F.isContextDefinitionBase(context)) {\n SUBRULE(baseDecl, context, undefined);\n } else if (F.isContextDefinitionPrefix(context)) {\n SUBRULE(prefixDecl, context, undefined);\n }\n }\n },\n};\n\n/**\n * Registers base IRI in the context and returns it.\n * [[5]](https://www.w3.org/TR/sparql11-query/#rBaseDecl)\n */\nexport const baseDecl: SparqlRule<'baseDecl', ContextDefinitionBase> = <const> {\n name: 'baseDecl',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n const base = CONSUME(l.baseDecl);\n const val = SUBRULE(iriFull, undefined);\n return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('BASE'));\n SUBRULE(iri, ast.value, undefined);\n },\n};\n\n/**\n * Registers prefix in the context and returns registered key-value-pair.\n * [[6]](https://www.w3.org/TR/sparql11-query/#rPrefixDecl)\n */\nexport const prefixDecl: SparqlRule<'prefixDecl', ContextDefinitionPrefix> = <const> {\n name: 'prefixDecl',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n const prefix = CONSUME(l.prefixDecl);\n const name = CONSUME(l.terminals.pNameNs).image.slice(0, -1);\n const value = SUBRULE(iriFull, undefined);\n\n return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));\n },\n gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORDS('PREFIX', `${ast.key}:`);\n });\n SUBRULE(iri, ast.value, undefined);\n },\n};\n\n/**\n * [[78]](https://www.w3.org/TR/sparql11-query/#rVerb)\n */\nexport const verb: SparqlGrammarRule<'verb', TermVariable | TermIri> = <const> {\n name: 'verb',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(varOrIri, undefined) },\n { ALT: () => SUBRULE(verbA, undefined) },\n ]),\n};\n\n/**\n * [[106]](https://www.w3.org/TR/sparql11-query/#rVarOrTerm)\n */\nexport const varOrTerm: SparqlRule<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ SUBRULE, OR }) => C => OR<Term>([\n { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(var_, undefined) },\n { ALT: () => SUBRULE(graphTerm, undefined) },\n ]),\n gImpl: ({ SUBRULE }) => (ast, { factory: F }) => {\n if (F.isTermVariable(ast)) {\n return SUBRULE(var_, ast, undefined);\n }\n return SUBRULE(graphTerm, ast, undefined);\n },\n};\n\n/**\n * [[107]](https://www.w3.org/TR/sparql11-query/#rVarOrIri)\n */\nexport const varOrIri: SparqlGrammarRule<'varOrIri', TermIri | TermVariable> = <const> {\n name: 'varOrIri',\n impl: ({ SUBRULE, OR }) => C => OR<TermIri | TermVariable>([\n { GATE: () => C.parseMode.has('canParseVars'), ALT: () => SUBRULE(var_, undefined) },\n { ALT: () => SUBRULE(iri, undefined) },\n ]),\n};\n\n/**\n * [[108]](https://www.w3.org/TR/sparql11-query/#rVar)\n */\nexport const var_: SparqlRule<'var', TermVariable> = <const> {\n name: 'var',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const varToken = OR([\n { ALT: () => CONSUME(l.terminals.var1) },\n { ALT: () => CONSUME(l.terminals.var2) },\n ]);\n return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));\n },\n gImpl: ({ PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));\n },\n};\n\n/**\n * [[109]](https://www.w3.org/TR/sparql11-query/#rGraphTerm)\n */\nexport const graphTerm: SparqlRule<'graphTerm', GraphTerm> = <const> {\n name: 'graphTerm',\n impl: ({ ACTION, SUBRULE, CONSUME, OR }) => C => OR<GraphTerm>([\n { ALT: () => SUBRULE(iri, undefined) },\n { ALT: () => SUBRULE(rdfLiteral, undefined) },\n { ALT: () => SUBRULE(numericLiteral, undefined) },\n { ALT: () => SUBRULE(booleanLiteral, undefined) },\n { GATE: () => C.parseMode.has('canCreateBlankNodes'), ALT: () => SUBRULE(blankNode, undefined) },\n { ALT: () => {\n const tokenNil = CONSUME(l.terminals.nil);\n return ACTION(() =>\n C.factory.namedNode(C.factory.sourceLocation(tokenNil), CommonIRIs.NIL));\n } },\n ]),\n gImpl: ({ SUBRULE }) => (ast, { factory: F }) => {\n if (F.isTermNamed(ast)) {\n SUBRULE(iri, ast, undefined);\n } else if (F.isTermLiteral(ast)) {\n SUBRULE(rdfLiteral, ast, undefined);\n } else if (F.isTermBlank(ast)) {\n SUBRULE(blankNode, ast, undefined);\n }\n },\n};\n"]}
@@ -0,0 +1,12 @@
1
+ export * from './queryUnit/queryUnit';
2
+ export * from './updateUnit/updateUnit';
3
+ export * from './builtIn';
4
+ export * from './dataSetClause';
5
+ export * from './expression';
6
+ export * from '../expressionHelpers';
7
+ export * from './general';
8
+ export * from './literals';
9
+ export * from './propertyPaths';
10
+ export * from './solutionModifier';
11
+ export * from './tripleBlock';
12
+ export * from './whereClause';
@@ -0,0 +1,13 @@
1
+ export * from './queryUnit/queryUnit';
2
+ export * from './updateUnit/updateUnit';
3
+ export * from './builtIn';
4
+ export * from './dataSetClause';
5
+ export * from './expression';
6
+ export * from '../expressionHelpers';
7
+ export * from './general';
8
+ export * from './literals';
9
+ export * from './propertyPaths';
10
+ export * from './solutionModifier';
11
+ export * from './tripleBlock';
12
+ export * from './whereClause';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC","sourcesContent":["export * from './queryUnit/queryUnit';\nexport * from './updateUnit/updateUnit';\nexport * from './builtIn';\nexport * from './dataSetClause';\nexport * from './expression';\nexport * from '../expressionHelpers';\nexport * from './general';\nexport * from './literals';\nexport * from './propertyPaths';\nexport * from './solutionModifier';\nexport * from './tripleBlock';\nexport * from './whereClause';\n"]}
@@ -0,0 +1,55 @@
1
+ import type { TermBlank, TermIri, TermIriFull, TermIriPrefixed, TermLiteral, TermLiteralStr, TermLiteralTyped } from '../RoundTripTypes';
2
+ import type { SparqlGrammarRule, SparqlRule } from '../Sparql11types';
3
+ export declare function stringEscapedLexical(str: string): string;
4
+ /**
5
+ * [[120]](https://www.w3.org/TR/sparql11-query/#rRDFLiteral)
6
+ */
7
+ export declare const rdfLiteral: SparqlRule<'rdfLiteral', TermLiteral>;
8
+ /**
9
+ * Parses a numeric literal.
10
+ * [[130]](https://www.w3.org/TR/sparql11-query/#rNumericLiteral)
11
+ */
12
+ export declare const numericLiteral: SparqlGrammarRule<'numericLiteral', TermLiteralTyped>;
13
+ /**
14
+ * Parses an unsigned numeric literal.
15
+ * [[131]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralUnsigned)
16
+ */
17
+ export declare const numericLiteralUnsigned: SparqlGrammarRule<'numericLiteralUnsigned', TermLiteralTyped>;
18
+ /**
19
+ * Parses a positive numeric literal.
20
+ * [[132]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralPositive)
21
+ */
22
+ export declare const numericLiteralPositive: SparqlGrammarRule<'numericLiteralPositive', TermLiteralTyped>;
23
+ /**
24
+ * Parses a negative numeric literal.
25
+ * [[133]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralNegative)
26
+ */
27
+ export declare const numericLiteralNegative: SparqlGrammarRule<'numericLiteralNegative', TermLiteralTyped>;
28
+ /**
29
+ * Parses a boolean literal.
30
+ * [[134]](https://www.w3.org/TR/sparql11-query/#rBooleanLiteral)
31
+ */
32
+ export declare const booleanLiteral: SparqlGrammarRule<'booleanLiteral', TermLiteralTyped>;
33
+ /**
34
+ * Parses a string literal.
35
+ * [[135]](https://www.w3.org/TR/sparql11-query/#rString)
36
+ */
37
+ export declare const string: SparqlGrammarRule<'string', TermLiteralStr>;
38
+ /**
39
+ * Parses a named node, either as an IRI or as a prefixed name.
40
+ * [[136]](https://www.w3.org/TR/sparql11-query/#riri)
41
+ */
42
+ export declare const iri: SparqlRule<'iri', TermIri>;
43
+ export declare const iriFull: SparqlRule<'iriFull', TermIriFull>;
44
+ /**
45
+ * Parses a named node with a prefix. Looks up the prefix in the context and returns the full IRI.
46
+ * [[137]](https://www.w3.org/TR/sparql11-query/#rPrefixedName)
47
+ */
48
+ export declare const prefixedName: SparqlRule<'prefixedName', TermIriPrefixed>;
49
+ export declare const canCreateBlankNodes: unique symbol;
50
+ /**
51
+ * Parses blank note and throws an error if 'canCreateBlankNodes' is not in the current parserMode.
52
+ * [[138]](https://www.w3.org/TR/sparql11-query/#rBlankNode)
53
+ */
54
+ export declare const blankNode: SparqlRule<'blankNode', TermBlank>;
55
+ export declare const verbA: SparqlGrammarRule<'VerbA', TermIriFull>;
@@ -0,0 +1,258 @@
1
+ import { CommonIRIs } from '../grammar-helpers/utils';
2
+ import * as l from '../lexer';
3
+ export function stringEscapedLexical(str) {
4
+ const lexical = str.replaceAll(/["\\\t\n\r\b\f]/gu, (char) => {
5
+ switch (char) {
6
+ case '\t':
7
+ return '\\t';
8
+ case '\n':
9
+ return '\\n';
10
+ case '\r':
11
+ return '\\r';
12
+ case '\b':
13
+ return '\\b';
14
+ case '\f':
15
+ return '\\f';
16
+ case '"':
17
+ return '\\"';
18
+ case '\\':
19
+ return '\\\\';
20
+ default:
21
+ return char;
22
+ }
23
+ });
24
+ return `"${lexical}"`;
25
+ }
26
+ /**
27
+ * [[120]](https://www.w3.org/TR/sparql11-query/#rRDFLiteral)
28
+ */
29
+ export const rdfLiteral = {
30
+ name: 'rdfLiteral',
31
+ impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => {
32
+ const value = SUBRULE1(string, undefined);
33
+ return OPTION(() => OR([
34
+ { ALT: () => {
35
+ const lang = CONSUME(l.terminals.langTag);
36
+ return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, lang), value.value, lang.image.slice(1).toLowerCase()));
37
+ } },
38
+ { ALT: () => {
39
+ CONSUME(l.symbols.hathat);
40
+ const iriVal = SUBRULE1(iri, undefined);
41
+ return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, iriVal), value.value, iriVal));
42
+ } },
43
+ ])) ?? value;
44
+ },
45
+ gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { factory }) => {
46
+ factory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
47
+ if (ast.langOrIri) {
48
+ if (typeof ast.langOrIri === 'string') {
49
+ factory.printFilter(ast, () => PRINT('@', ast.langOrIri));
50
+ }
51
+ else {
52
+ factory.printFilter(ast, () => PRINT('^^'));
53
+ SUBRULE(iri, ast.langOrIri, undefined);
54
+ }
55
+ }
56
+ },
57
+ };
58
+ /**
59
+ * Parses a numeric literal.
60
+ * [[130]](https://www.w3.org/TR/sparql11-query/#rNumericLiteral)
61
+ */
62
+ export const numericLiteral = {
63
+ name: 'numericLiteral',
64
+ impl: ({ SUBRULE, OR }) => () => OR([
65
+ { ALT: () => SUBRULE(numericLiteralUnsigned, undefined) },
66
+ { ALT: () => SUBRULE(numericLiteralPositive, undefined) },
67
+ { ALT: () => SUBRULE(numericLiteralNegative, undefined) },
68
+ ]),
69
+ };
70
+ /**
71
+ * Parses an unsigned numeric literal.
72
+ * [[131]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralUnsigned)
73
+ */
74
+ export const numericLiteralUnsigned = {
75
+ name: 'numericLiteralUnsigned',
76
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
77
+ const parsed = OR([
78
+ { ALT: () => [CONSUME(l.terminals.integer), CommonIRIs.INTEGER] },
79
+ { ALT: () => [CONSUME(l.terminals.decimal), CommonIRIs.DECIMAL] },
80
+ { ALT: () => [CONSUME(l.terminals.double), CommonIRIs.DOUBLE] },
81
+ ]);
82
+ return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
83
+ },
84
+ };
85
+ /**
86
+ * Parses a positive numeric literal.
87
+ * [[132]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralPositive)
88
+ */
89
+ export const numericLiteralPositive = {
90
+ name: 'numericLiteralPositive',
91
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
92
+ const parsed = OR([
93
+ { ALT: () => [CONSUME(l.terminals.integerPositive), CommonIRIs.INTEGER] },
94
+ { ALT: () => [CONSUME(l.terminals.decimalPositive), CommonIRIs.DECIMAL] },
95
+ { ALT: () => [CONSUME(l.terminals.doublePositive), CommonIRIs.DOUBLE] },
96
+ ]);
97
+ return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
98
+ },
99
+ };
100
+ /**
101
+ * Parses a negative numeric literal.
102
+ * [[133]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralNegative)
103
+ */
104
+ export const numericLiteralNegative = {
105
+ name: 'numericLiteralNegative',
106
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
107
+ const parsed = OR([
108
+ { ALT: () => [CONSUME(l.terminals.integerNegative), CommonIRIs.INTEGER] },
109
+ { ALT: () => [CONSUME(l.terminals.decimalNegative), CommonIRIs.DECIMAL] },
110
+ { ALT: () => [CONSUME(l.terminals.doubleNegative), CommonIRIs.DOUBLE] },
111
+ ]);
112
+ return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
113
+ },
114
+ };
115
+ /**
116
+ * Parses a boolean literal.
117
+ * [[134]](https://www.w3.org/TR/sparql11-query/#rBooleanLiteral)
118
+ */
119
+ export const booleanLiteral = {
120
+ name: 'booleanLiteral',
121
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
122
+ const token = OR([
123
+ { ALT: () => CONSUME(l.true_) },
124
+ { ALT: () => CONSUME(l.false_) },
125
+ ]);
126
+ return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(token), token.image.toLowerCase(), C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
127
+ },
128
+ };
129
+ /**
130
+ * Parses a string literal.
131
+ * [[135]](https://www.w3.org/TR/sparql11-query/#rString)
132
+ */
133
+ export const string = {
134
+ name: 'string',
135
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
136
+ const x = OR([
137
+ { ALT: () => {
138
+ const token = CONSUME(l.terminals.stringLiteral1);
139
+ return [token, token.image.slice(1, -1)];
140
+ } },
141
+ { ALT: () => {
142
+ const token = CONSUME(l.terminals.stringLiteral2);
143
+ return [token, token.image.slice(1, -1)];
144
+ } },
145
+ { ALT: () => {
146
+ const token = CONSUME(l.terminals.stringLiteralLong1);
147
+ return [token, token.image.slice(3, -3)];
148
+ } },
149
+ { ALT: () => {
150
+ const token = CONSUME(l.terminals.stringLiteralLong2);
151
+ return [token, token.image.slice(3, -3)];
152
+ } },
153
+ ]);
154
+ // Handle string escapes (19.7). (19.2 is handled at input level.)
155
+ return ACTION(() => {
156
+ const F = C.factory;
157
+ const value = x[1].replaceAll(/\\([tnrbf"'\\])/gu, (_, char) => {
158
+ switch (char) {
159
+ case 't':
160
+ return '\t';
161
+ case 'n':
162
+ return '\n';
163
+ case 'r':
164
+ return '\r';
165
+ case 'b':
166
+ return '\b';
167
+ case 'f':
168
+ return '\f';
169
+ default:
170
+ return char;
171
+ }
172
+ });
173
+ return F.literalTerm(F.sourceLocation(x[0]), value);
174
+ });
175
+ },
176
+ };
177
+ /**
178
+ * Parses a named node, either as an IRI or as a prefixed name.
179
+ * [[136]](https://www.w3.org/TR/sparql11-query/#riri)
180
+ */
181
+ export const iri = {
182
+ name: 'iri',
183
+ impl: ({ SUBRULE, OR }) => () => OR([
184
+ { ALT: () => SUBRULE(iriFull, undefined) },
185
+ { ALT: () => SUBRULE(prefixedName, undefined) },
186
+ ]),
187
+ gImpl: ({ SUBRULE }) => (ast, { factory: F }) => F.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast, undefined) : SUBRULE(iriFull, ast, undefined),
188
+ };
189
+ export const iriFull = {
190
+ name: 'iriFull',
191
+ impl: ({ ACTION, CONSUME }) => (C) => {
192
+ const iriToken = CONSUME(l.terminals.iriRef);
193
+ return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
194
+ },
195
+ gImpl: ({ PRINT }) => (ast, { factory }) => {
196
+ factory.printFilter(ast, () => PRINT('<', ast.value, '>'));
197
+ },
198
+ };
199
+ /**
200
+ * Parses a named node with a prefix. Looks up the prefix in the context and returns the full IRI.
201
+ * [[137]](https://www.w3.org/TR/sparql11-query/#rPrefixedName)
202
+ */
203
+ export const prefixedName = {
204
+ name: 'prefixedName',
205
+ impl: ({ ACTION, CONSUME, OR }) => C => OR([
206
+ { ALT: () => {
207
+ const longName = CONSUME(l.terminals.pNameLn);
208
+ return ACTION(() => {
209
+ const [prefix, localName] = longName.image.split(':');
210
+ return C.factory.namedNode(C.factory.sourceLocation(longName), localName, prefix);
211
+ });
212
+ } },
213
+ { ALT: () => {
214
+ const shortName = CONSUME(l.terminals.pNameNs);
215
+ return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(shortName), '', shortName.image.slice(0, -1)));
216
+ } },
217
+ ]),
218
+ gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
219
+ factory.printFilter(ast, () => PRINT_WORD(ast.prefix, ':', ast.value));
220
+ },
221
+ };
222
+ export const canCreateBlankNodes = Symbol('canCreateBlankNodes');
223
+ /**
224
+ * Parses blank note and throws an error if 'canCreateBlankNodes' is not in the current parserMode.
225
+ * [[138]](https://www.w3.org/TR/sparql11-query/#rBlankNode)
226
+ */
227
+ export const blankNode = {
228
+ name: 'blankNode',
229
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
230
+ const result = OR([
231
+ { ALT: () => {
232
+ const labelToken = CONSUME(l.terminals.blankNodeLabel);
233
+ return ACTION(() => C.factory.blankNode(labelToken.image.slice(2), C.factory.sourceLocation(labelToken)));
234
+ } },
235
+ { ALT: () => {
236
+ const anonToken = CONSUME(l.terminals.anon);
237
+ return ACTION(() => C.factory.blankNode(undefined, C.factory.sourceLocation(anonToken)));
238
+ } },
239
+ ]);
240
+ ACTION(() => {
241
+ if (!C.parseMode.has('canCreateBlankNodes')) {
242
+ throw new Error('Blank nodes are not allowed in this context');
243
+ }
244
+ });
245
+ return result;
246
+ },
247
+ gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
248
+ factory.printFilter(ast, () => PRINT_WORD('_:', ast.label.replace(/^e_/u, '')));
249
+ },
250
+ };
251
+ export const verbA = {
252
+ name: 'VerbA',
253
+ impl: ({ ACTION, CONSUME }) => (C) => {
254
+ const token = CONSUME(l.a);
255
+ return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(token), CommonIRIs.TYPE, undefined));
256
+ },
257
+ };
258
+ //# sourceMappingURL=literals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literals.js","sourceRoot":"","sources":["literals.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IToken } from 'chevrotain';\nimport { CommonIRIs } from '../grammar-helpers/utils';\nimport * as l from '../lexer';\nimport type {\n TermBlank,\n TermIri,\n TermIriFull,\n TermIriPrefixed,\n TermLiteral,\n TermLiteralStr,\n TermLiteralTyped,\n} from '../RoundTripTypes';\n\nimport type { SparqlGrammarRule, SparqlRule } from '../Sparql11types';\n\nexport function stringEscapedLexical(str: string): string {\n const lexical = str.replaceAll(/[\"\\\\\\t\\n\\r\\b\\f]/gu, (char) => {\n switch (char) {\n case '\\t':\n return '\\\\t';\n case '\\n':\n return '\\\\n';\n case '\\r':\n return '\\\\r';\n case '\\b':\n return '\\\\b';\n case '\\f':\n return '\\\\f';\n case '\"':\n return '\\\\\"';\n case '\\\\':\n return '\\\\\\\\';\n default:\n return char;\n }\n });\n return `\"${lexical}\"`;\n}\n\n/**\n * [[120]](https://www.w3.org/TR/sparql11-query/#rRDFLiteral)\n */\nexport const rdfLiteral: SparqlRule<'rdfLiteral', TermLiteral> = <const> {\n name: 'rdfLiteral',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => {\n const value = SUBRULE1(string, undefined);\n return OPTION(() => OR<TermLiteral>([\n { ALT: () => {\n const lang = CONSUME(l.terminals.langTag);\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(value, lang),\n value.value,\n lang.image.slice(1).toLowerCase(),\n ));\n } },\n { ALT: () => {\n CONSUME(l.symbols.hathat);\n const iriVal = SUBRULE1(iri, undefined);\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(value, iriVal),\n value.value,\n iriVal,\n ));\n } },\n ])) ?? value;\n },\n gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { factory }) => {\n factory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));\n\n if (ast.langOrIri) {\n if (typeof ast.langOrIri === 'string') {\n factory.printFilter(ast, () => PRINT('@', ast.langOrIri));\n } else {\n factory.printFilter(ast, () => PRINT('^^'));\n SUBRULE(iri, ast.langOrIri, undefined);\n }\n }\n },\n};\n\n/**\n * Parses a numeric literal.\n * [[130]](https://www.w3.org/TR/sparql11-query/#rNumericLiteral)\n */\nexport const numericLiteral: SparqlGrammarRule<'numericLiteral', TermLiteralTyped> = <const> {\n name: 'numericLiteral',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(numericLiteralUnsigned, undefined) },\n { ALT: () => SUBRULE(numericLiteralPositive, undefined) },\n { ALT: () => SUBRULE(numericLiteralNegative, undefined) },\n ]),\n};\n\n/**\n * Parses an unsigned numeric literal.\n * [[131]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralUnsigned)\n */\nexport const numericLiteralUnsigned: SparqlGrammarRule<'numericLiteralUnsigned', TermLiteralTyped> = <const> {\n name: 'numericLiteralUnsigned',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const parsed = OR<[IToken, string]>([\n { ALT: () => <const> [ CONSUME(l.terminals.integer), CommonIRIs.INTEGER ]},\n { ALT: () => <const> [ CONSUME(l.terminals.decimal), CommonIRIs.DECIMAL ]},\n { ALT: () => <const> [ CONSUME(l.terminals.double), CommonIRIs.DOUBLE ]},\n ]);\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(parsed[0]),\n parsed[0].image,\n C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1]),\n ));\n },\n};\n\n/**\n * Parses a positive numeric literal.\n * [[132]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralPositive)\n */\nexport const numericLiteralPositive: SparqlGrammarRule<'numericLiteralPositive', TermLiteralTyped> = <const> {\n name: 'numericLiteralPositive',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const parsed = OR<[IToken, string]>([\n { ALT: () => <const> [ CONSUME(l.terminals.integerPositive), CommonIRIs.INTEGER ]},\n { ALT: () => <const> [ CONSUME(l.terminals.decimalPositive), CommonIRIs.DECIMAL ]},\n { ALT: () => <const> [ CONSUME(l.terminals.doublePositive), CommonIRIs.DOUBLE ]},\n ]);\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(parsed[0]),\n parsed[0].image,\n C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1]),\n ));\n },\n};\n\n/**\n * Parses a negative numeric literal.\n * [[133]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralNegative)\n */\nexport const numericLiteralNegative: SparqlGrammarRule<'numericLiteralNegative', TermLiteralTyped> = <const> {\n name: 'numericLiteralNegative',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const parsed = OR<[IToken, string]>([\n { ALT: () => <const> [ CONSUME(l.terminals.integerNegative), CommonIRIs.INTEGER ]},\n { ALT: () => <const> [ CONSUME(l.terminals.decimalNegative), CommonIRIs.DECIMAL ]},\n { ALT: () => <const> [ CONSUME(l.terminals.doubleNegative), CommonIRIs.DOUBLE ]},\n ]);\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(parsed[0]),\n parsed[0].image,\n C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1]),\n ));\n },\n};\n\n/**\n * Parses a boolean literal.\n * [[134]](https://www.w3.org/TR/sparql11-query/#rBooleanLiteral)\n */\nexport const booleanLiteral: SparqlGrammarRule<'booleanLiteral', TermLiteralTyped> = <const> {\n name: 'booleanLiteral',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const token = OR([\n { ALT: () => CONSUME(l.true_) },\n { ALT: () => CONSUME(l.false_) },\n ]);\n\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(token),\n token.image.toLowerCase(),\n C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN),\n ));\n },\n};\n\n/**\n * Parses a string literal.\n * [[135]](https://www.w3.org/TR/sparql11-query/#rString)\n */\nexport const string: SparqlGrammarRule<'string', TermLiteralStr> = <const> {\n name: 'string',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const x = OR([\n { ALT: () => {\n const token = CONSUME(l.terminals.stringLiteral1);\n return <const>[ token, token.image.slice(1, -1) ];\n } },\n { ALT: () => {\n const token = CONSUME(l.terminals.stringLiteral2);\n return <const>[ token, token.image.slice(1, -1) ];\n } },\n { ALT: () => {\n const token = CONSUME(l.terminals.stringLiteralLong1);\n return <const>[ token, token.image.slice(3, -3) ];\n } },\n { ALT: () => {\n const token = CONSUME(l.terminals.stringLiteralLong2);\n return <const>[ token, token.image.slice(3, -3) ];\n } },\n ]);\n // Handle string escapes (19.7). (19.2 is handled at input level.)\n return ACTION(() => {\n const F = C.factory;\n const value = x[1].replaceAll(/\\\\([tnrbf\"'\\\\])/gu, (_, char: string) => {\n switch (char) {\n case 't':\n return '\\t';\n case 'n':\n return '\\n';\n case 'r':\n return '\\r';\n case 'b':\n return '\\b';\n case 'f':\n return '\\f';\n default:\n return char;\n }\n });\n return F.literalTerm(F.sourceLocation(x[0]), value);\n });\n },\n};\n\n/**\n * Parses a named node, either as an IRI or as a prefixed name.\n * [[136]](https://www.w3.org/TR/sparql11-query/#riri)\n */\nexport const iri: SparqlRule<'iri', TermIri> = <const> {\n name: 'iri',\n impl: ({ SUBRULE, OR }) => () => OR<TermIri>([\n { ALT: () => SUBRULE(iriFull, undefined) },\n { ALT: () => SUBRULE(prefixedName, undefined) },\n ]),\n gImpl: ({ SUBRULE }) => (ast, { factory: F }) =>\n F.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast, undefined) : SUBRULE(iriFull, ast, undefined),\n};\n\nexport const iriFull: SparqlRule<'iriFull', TermIriFull> = <const> {\n name: 'iriFull',\n impl: ({ ACTION, CONSUME }) => (C) => {\n const iriToken = CONSUME(l.terminals.iriRef);\n return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));\n },\n gImpl: ({ PRINT }) => (ast, { factory }) => {\n factory.printFilter(ast, () => PRINT('<', ast.value, '>'));\n },\n};\n\n/**\n * Parses a named node with a prefix. Looks up the prefix in the context and returns the full IRI.\n * [[137]](https://www.w3.org/TR/sparql11-query/#rPrefixedName)\n */\nexport const prefixedName: SparqlRule<'prefixedName', TermIriPrefixed> = <const> {\n name: 'prefixedName',\n impl: ({ ACTION, CONSUME, OR }) => C => OR([\n { ALT: () => {\n const longName = CONSUME(l.terminals.pNameLn);\n return ACTION(() => {\n const [ prefix, localName ] = longName.image.split(':');\n return C.factory.namedNode(C.factory.sourceLocation(longName), localName, prefix);\n });\n } },\n { ALT: () => {\n const shortName = CONSUME(l.terminals.pNameNs);\n return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(shortName), '', shortName.image.slice(0, -1)));\n } },\n ]),\n gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {\n factory.printFilter(ast, () => PRINT_WORD(ast.prefix, ':', ast.value));\n },\n};\n\nexport const canCreateBlankNodes = Symbol('canCreateBlankNodes');\n\n/**\n * Parses blank note and throws an error if 'canCreateBlankNodes' is not in the current parserMode.\n * [[138]](https://www.w3.org/TR/sparql11-query/#rBlankNode)\n */\nexport const blankNode: SparqlRule<'blankNode', TermBlank> = <const> {\n name: 'blankNode',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const result = OR([\n { ALT: () => {\n const labelToken = CONSUME(l.terminals.blankNodeLabel);\n return ACTION(() =>\n C.factory.blankNode(labelToken.image.slice(2), C.factory.sourceLocation(labelToken)));\n } },\n { ALT: () => {\n const anonToken = CONSUME(l.terminals.anon);\n return ACTION(() => C.factory.blankNode(undefined, C.factory.sourceLocation(anonToken)));\n } },\n ]);\n ACTION(() => {\n if (!C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Blank nodes are not allowed in this context');\n }\n });\n return result;\n },\n gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {\n factory.printFilter(ast, () => PRINT_WORD('_:', ast.label.replace(/^e_/u, '')));\n },\n};\n\nexport const verbA: SparqlGrammarRule<'VerbA', TermIriFull> = <const> {\n name: 'VerbA',\n impl: ({ ACTION, CONSUME }) => (C) => {\n const token = CONSUME(l.a);\n return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(token), CommonIRIs.TYPE, undefined));\n },\n};\n"]}
@@ -0,0 +1,43 @@
1
+ import type { IToken, TokenType } from 'chevrotain';
2
+ import type { TermIri, PathNegatedElt, Path, PathModified, PathNegated } from '../RoundTripTypes';
3
+ import type { SparqlGeneratorRule, SparqlGrammarRule } from '../Sparql11types';
4
+ /**
5
+ * [[88]](https://www.w3.org/TR/sparql11-query/#rPath)
6
+ */
7
+ export declare const path: SparqlGrammarRule<'path', Path>;
8
+ export declare const pathGenerator: SparqlGeneratorRule<'path', Path, boolean | undefined>;
9
+ export declare function pathChainHelper<T extends string>(name: T, SEP: TokenType, subType: '|' | '/', subRule: SparqlGrammarRule<string, Path>): SparqlGrammarRule<T, Path | TermIri>;
10
+ /**
11
+ * [[92]](https://www.w3.org/TR/sparql11-query/#rPathEltOrInverse)
12
+ */
13
+ export declare const pathEltOrInverse: SparqlGrammarRule<'pathEltOrInverse', PathModified | Path>;
14
+ /**
15
+ * [[90]](https://www.w3.org/TR/sparql11-query/#rPathSequence)
16
+ */
17
+ export declare const pathSequence: SparqlGrammarRule<"pathSequence", import("..").TermIriFull | import("..").TermIriPrefixed | import("..").PropertyPathChain | PathModified | PathNegated>;
18
+ /**
19
+ * [[89]](https://www.w3.org/TR/sparql11-query/#rPathAlternative)
20
+ */
21
+ export declare const pathAlternative: SparqlGrammarRule<"pathAlternative", import("..").TermIriFull | import("..").TermIriPrefixed | import("..").PropertyPathChain | PathModified | PathNegated>;
22
+ /**
23
+ * [[91]](https://www.w3.org/TR/sparql11-query/#rPathElt)
24
+ */
25
+ export declare const pathElt: SparqlGrammarRule<'pathElt', PathModified | Path>;
26
+ /**
27
+ * [[93]](https://www.w3.org/TR/sparql11-query/#rPathMod)
28
+ */
29
+ export declare const pathMod: SparqlGrammarRule<'pathMod', IToken & {
30
+ image: '*' | '+' | '?';
31
+ }>;
32
+ /**
33
+ * [[94]](https://www.w3.org/TR/sparql11-query/#rPathPrimary)
34
+ */
35
+ export declare const pathPrimary: SparqlGrammarRule<'pathPrimary', Path>;
36
+ /**
37
+ * [[95]](https://www.w3.org/TR/sparql11-query/#rPathNegatedPropertySet)
38
+ */
39
+ export declare const pathNegatedPropertySet: SparqlGrammarRule<'pathNegatedPropertySet', PathNegated>;
40
+ /**
41
+ * [[96]](https://www.w3.org/TR/sparql11-query/#rPathOneInPropertySet)
42
+ */
43
+ export declare const pathOneInPropertySet: SparqlGrammarRule<'pathOneInPropertySet', TermIri | PathNegatedElt>;