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