MCPcopy Create free account
hub / github.com/GaijinEntertainment/daScript / flattenOrSequence

Function flattenOrSequence

src/ast/ast_simulate.cpp:2697–2708  ·  view source on GitHub ↗

we flatten or(or(or(a,b),c),d) into a single vector {a,b,c,d}

Source from the content-addressed store, hash-verified

2695
2696 // we flatten or(or(or(a,b),c),d) into a single vector {a,b,c,d}
2697 void flattenOrSequence ( const ExprOp2 * op, vector<ExpressionPtr> & ret ) {
2698 if ( op->left->rtti_isOp2() && static_cast<ExprOp2*>(op->left)->op==op->op ) {
2699 flattenOrSequence(static_cast<ExprOp2*>(op->left), ret);
2700 } else {
2701 ret.push_back(op->left);
2702 }
2703 if ( op->right->rtti_isOp2() && static_cast<ExprOp2*>(op->right)->op==op->op ) {
2704 flattenOrSequence(static_cast<ExprOp2*>(op->right), ret);
2705 } else {
2706 ret.push_back(op->right);
2707 }
2708 }
2709
2710 ExpressionPtr SimulateVisitor::visit(ExprOp2 * expr) {
2711 const auto &at = expr->at;

Callers 1

visitMethod · 0.85

Calls 1

push_backMethod · 0.45

Tested by

no test coverage detected