void extractScenarios(const std::string& script, Scenarios& scenarios) { int braceCounter = 0; Scenario scenario; std::vector<ScriptLine> lines = tokenizeInLines(script); std::for_each(lines.begin(), lines.end(), [&scenarios, &scenario, &braceCounter](ScriptLine& line) { boost::trim(line.content); if (isLine<CLOSE_SCENARIO>(line)) { --braceCounter; } if (braceCounter == 1) { scenario.push_back(line); } if (isLine<START_SCENARIO>(line)) { ++braceCounter; } if (braceCounter == 0) { if (!scenario.empty()) scenarios.push_back(scenario); scenario.clear(); } }); }