/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCTestResourceGroupsLexerHelper.h" #include "cmCTestResourceGroupsLexer.h" #include "cmCTestTestHandler.h" cmCTestResourceGroupsLexerHelper::cmCTestResourceGroupsLexerHelper( std::vector>& output) : Output(output) { } bool cmCTestResourceGroupsLexerHelper::ParseString(const std::string& value) { yyscan_t lexer; cmCTestResourceGroups_yylex_init_extra(this, &lexer); auto* state = cmCTestResourceGroups_yy_scan_string(value.c_str(), lexer); int retval = cmCTestResourceGroups_yylex(lexer); cmCTestResourceGroups_yy_delete_buffer(state, lexer); cmCTestResourceGroups_yylex_destroy(lexer); return retval == 0; } void cmCTestResourceGroupsLexerHelper::SetProcessCount(unsigned int count) { this->ProcessCount = count; } void cmCTestResourceGroupsLexerHelper::SetResourceType(const std::string& type) { this->ResourceType = type; } void cmCTestResourceGroupsLexerHelper::SetNeededSlots(int count) { this->NeededSlots = count; } void cmCTestResourceGroupsLexerHelper::WriteRequirement() { this->Process.push_back({ this->ResourceType, this->NeededSlots, 1 }); } void cmCTestResourceGroupsLexerHelper::WriteProcess() { for (unsigned int i = 0; i < this->ProcessCount; ++i) { this->Output.push_back(this->Process); } this->Process.clear(); this->ProcessCount = 1; }