MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / transformOcQuantifier

Method transformOcQuantifier

src/parser/transform/transform_expression.cpp:579–599  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

577}
578
579std::unique_ptr<ParsedExpression> Transformer::transformOcQuantifier(
580 CypherParser::OC_QuantifierContext& ctx) {
581 auto variable = transformVariable(*ctx.oC_FilterExpression()->oC_IdInColl()->oC_Variable());
582 auto whereExpr = transformWhere(*ctx.oC_FilterExpression()->oC_Where());
583 auto lambdaRaw = variable + "->" + whereExpr->toString();
584 auto lambdaExpr = std::make_unique<ParsedLambdaExpression>(std::vector<std::string>{variable},
585 std::move(whereExpr), lambdaRaw);
586 std::string quantifierName;
587 if (ctx.ALL()) {
588 quantifierName = "ALL";
589 } else if (ctx.ANY()) {
590 quantifierName = "ANY";
591 } else if (ctx.NONE()) {
592 quantifierName = "NONE";
593 } else if (ctx.SINGLE()) {
594 quantifierName = "SINGLE";
595 }
596 auto listExpr = transformExpression(*ctx.oC_FilterExpression()->oC_IdInColl()->oC_Expression());
597 return std::make_unique<ParsedFunctionExpression>(quantifierName, std::move(listExpr),
598 std::move(lambdaExpr), ctx.getText());
599}
600
601std::unique_ptr<ParsedExpression> Transformer::createPropertyExpression(
602 CypherParser::OC_PropertyKeyNameContext& ctx, std::unique_ptr<ParsedExpression> child) {

Callers

nothing calls this directly

Calls 2

ANYMethod · 0.80
toStringMethod · 0.45

Tested by

no test coverage detected