diff options
Diffstat (limited to 'lldb/tools/lldb-mi/MIUtilParse.cpp')
-rw-r--r-- | lldb/tools/lldb-mi/MIUtilParse.cpp | 65 |
1 files changed, 32 insertions, 33 deletions
diff --git a/lldb/tools/lldb-mi/MIUtilParse.cpp b/lldb/tools/lldb-mi/MIUtilParse.cpp index 27e25b8..7b039e3 100644 --- a/lldb/tools/lldb-mi/MIUtilParse.cpp +++ b/lldb/tools/lldb-mi/MIUtilParse.cpp @@ -6,14 +6,15 @@ // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// - + // Third party headers: #include <memory> // In-house headers: #include "MIUtilParse.h" - -//++ ------------------------------------------------------------------------------------ + +//++ +//------------------------------------------------------------------------------------ // Details: CRegexParser constructor. // Type: Method. // Args: regexStr - Pointer to the regular expression to compile. @@ -21,25 +22,24 @@ // Throws: None. //-- MIUtilParse::CRegexParser::CRegexParser(const char *regexStr) - : m_isValid(llvm_regcomp(&m_emma, regexStr, REG_EXTENDED) == 0) -{ -} - -//++ ------------------------------------------------------------------------------------ + : m_isValid(llvm_regcomp(&m_emma, regexStr, REG_EXTENDED) == 0) {} + +//++ +//------------------------------------------------------------------------------------ // Details: CRegexParser destructor. // Type: Method. // Args: None. // Return: None. // Throws: None. //-- -MIUtilParse::CRegexParser::~CRegexParser() -{ - // Free up memory held within regex. - if (m_isValid) - llvm_regfree(&m_emma); +MIUtilParse::CRegexParser::~CRegexParser() { + // Free up memory held within regex. + if (m_isValid) + llvm_regfree(&m_emma); } - -//++ ------------------------------------------------------------------------------------ + +//++ +//------------------------------------------------------------------------------------ // Details: CRegexParser regex executer. // Match the input against the regular expression. Return an error // if the number of matches is less than minMatches. If the default @@ -54,22 +54,21 @@ MIUtilParse::CRegexParser::~CRegexParser() // false = minimum matches were not met or regex failed. // Throws: None. //-- -bool -MIUtilParse::CRegexParser::Execute(const char *input, Match& match, size_t minMatches) -{ - if (!m_isValid) - return false; - - std::unique_ptr<llvm_regmatch_t[]> matches(new llvm_regmatch_t[match.m_maxMatches]); // Array of matches - - if (llvm_regexec(&m_emma, input, match.m_maxMatches, matches.get(), 0) != 0) - return false; - - size_t i; - for (i = 0; i < match.m_maxMatches && matches[i].rm_so >= 0; i++) - { - const int n = matches[i].rm_eo - matches[i].rm_so; - match.m_matchStrs[i].assign(input + matches[i].rm_so, n); - } - return i >= minMatches; +bool MIUtilParse::CRegexParser::Execute(const char *input, Match &match, + size_t minMatches) { + if (!m_isValid) + return false; + + std::unique_ptr<llvm_regmatch_t[]> matches( + new llvm_regmatch_t[match.m_maxMatches]); // Array of matches + + if (llvm_regexec(&m_emma, input, match.m_maxMatches, matches.get(), 0) != 0) + return false; + + size_t i; + for (i = 0; i < match.m_maxMatches && matches[i].rm_so >= 0; i++) { + const int n = matches[i].rm_eo - matches[i].rm_so; + match.m_matchStrs[i].assign(input + matches[i].rm_so, n); + } + return i >= minMatches; } |