summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Labath <labath@google.com>2016-09-05 15:15:12 +0000
committerPavel Labath <labath@google.com>2016-09-05 15:15:12 +0000
commit305229bd72e61933d6287ed861eb22f22dbf35e3 (patch)
treec694165853d37a7df76f43596a108c4837f57689
parent5f14ff75ec8035bc311a9df5d1445dd13709f4e9 (diff)
downloadbcm5719-llvm-305229bd72e61933d6287ed861eb22f22dbf35e3.tar.gz
bcm5719-llvm-305229bd72e61933d6287ed861eb22f22dbf35e3.zip
Replace uses of MIUtilParse::CRegexParser with llvm::Regex
Summary: Replace uses of the local MIUtilParse::CRegexParser class with the LLVM support class llvm::Regex. This reduces duplication of code, and makes it possible to remove the MIUtilParse::CRegexParser class that requires LLVM internal implementation headers. Bug: https://llvm.org/bugs/show_bug.cgi?id=29138 Reviewers: dawn, abidh, ki.stfu Subscribers: labath, ki.stfu, lldb-commits Differential Revision: https://reviews.llvm.org/D23882 Author: Michał Górny <mgorny@gentoo.org> llvm-svn: 280662
-rw-r--r--lldb/tools/lldb-mi/MICmdCmdData.cpp28
-rw-r--r--lldb/tools/lldb-mi/MICmdCmdSymbol.cpp38
2 files changed, 35 insertions, 31 deletions
diff --git a/lldb/tools/lldb-mi/MICmdCmdData.cpp b/lldb/tools/lldb-mi/MICmdCmdData.cpp
index a46fb5563ce..7f4c2e8fd1f 100644
--- a/lldb/tools/lldb-mi/MICmdCmdData.cpp
+++ b/lldb/tools/lldb-mi/MICmdCmdData.cpp
@@ -25,6 +25,9 @@
#include "lldb/API/SBInstruction.h"
#include "lldb/API/SBInstructionList.h"
#include "lldb/API/SBStream.h"
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Regex.h"
// In-house headers:
#include "MICmdCmdData.h"
@@ -42,7 +45,6 @@
#include "MICmdArgValConsume.h"
#include "MICmnLLDBDebugSessionInfoVarObj.h"
#include "MICmnLLDBUtilSBValue.h"
-#include "MIUtilParse.h"
//++ ------------------------------------------------------------------------------------
// Details: CMICmdCmdDataEvaluateExpression constructor.
@@ -1651,24 +1653,24 @@ ParseLLDBLineEntry(const char *input, CMIUtilString &start, CMIUtilString &end,
// is remains is assumed to be the filename.
// Match LineEntry using regex.
- static MIUtilParse::CRegexParser g_lineentry_nocol_regex(
- "^ *LineEntry: \\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+)$");
- static MIUtilParse::CRegexParser g_lineentry_col_regex(
- "^ *LineEntry: \\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+):[0-9]+$");
- // ^1=start ^2=end ^3=f ^4=line ^5=:col(opt)
+ static llvm::Regex g_lineentry_nocol_regex(
+ llvm::StringRef("^ *LineEntry: \\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+)$"));
+ static llvm::Regex g_lineentry_col_regex(
+ llvm::StringRef("^ *LineEntry: \\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+):[0-9]+$"));
+ // ^1=start ^2=end ^3=f ^4=line ^5=:col(opt)
- MIUtilParse::CRegexParser::Match match(6);
+ llvm::SmallVector<llvm::StringRef, 6> match;
// First try matching the LineEntry with the column,
// then try without the column.
- const bool ok = g_lineentry_col_regex.Execute(input, match) ||
- g_lineentry_nocol_regex.Execute(input, match);
+ const bool ok = g_lineentry_col_regex.match(input, &match) ||
+ g_lineentry_nocol_regex.match(input, &match);
if (ok)
{
- start = match.GetMatchAtIndex(1);
- end = match.GetMatchAtIndex(2);
- file = match.GetMatchAtIndex(3);
- line = match.GetMatchAtIndex(4);
+ start = match[1];
+ end = match[2];
+ file = match[3];
+ line = match[4];
}
return ok;
}
diff --git a/lldb/tools/lldb-mi/MICmdCmdSymbol.cpp b/lldb/tools/lldb-mi/MICmdCmdSymbol.cpp
index abaa3924ddc..b2519afb3ff 100644
--- a/lldb/tools/lldb-mi/MICmdCmdSymbol.cpp
+++ b/lldb/tools/lldb-mi/MICmdCmdSymbol.cpp
@@ -11,6 +11,9 @@
// Third Party Headers:
#include "lldb/API/SBCommandInterpreter.h"
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Regex.h"
// In-house headers:
#include "MICmdArgValFile.h"
@@ -19,7 +22,6 @@
#include "MICmnMIResultRecord.h"
#include "MICmnMIValueList.h"
#include "MICmnMIValueTuple.h"
-#include "MIUtilParse.h"
//++ ------------------------------------------------------------------------------------
// Details: CMICmdCmdSymbolListLines constructor.
@@ -105,15 +107,15 @@ static bool
ParseLLDBLineAddressHeader(const char *input, CMIUtilString &file)
{
// Match LineEntry using regex.
- static MIUtilParse::CRegexParser g_lineentry_header_regex(
- "^ *Lines found for file (.+) in compilation unit (.+) in `(.+)$");
- // ^1=file ^2=cu ^3=module
+ static llvm::Regex g_lineentry_header_regex(
+ llvm::StringRef("^ *Lines found for file (.+) in compilation unit (.+) in `(.+)$"));
+ // ^1=file ^2=cu ^3=module
- MIUtilParse::CRegexParser::Match match(4);
+ llvm::SmallVector<llvm::StringRef, 4> match;
- const bool ok = g_lineentry_header_regex.Execute(input, match);
+ const bool ok = g_lineentry_header_regex.match(input, &match);
if (ok)
- file = match.GetMatchAtIndex(1);
+ file = match[1];
return ok;
}
@@ -141,23 +143,23 @@ ParseLLDBLineAddressEntry(const char *input, CMIUtilString &addr,
// is remains is assumed to be the filename.
// Match LineEntry using regex.
- static MIUtilParse::CRegexParser g_lineentry_nocol_regex(
- "^ *\\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+)$");
- static MIUtilParse::CRegexParser g_lineentry_col_regex(
- "^ *\\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+):[0-9]+$");
- // ^1=start ^2=end ^3=f ^4=line ^5=:col(opt)
+ static llvm::Regex g_lineentry_nocol_regex(
+ llvm::StringRef("^ *\\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+)$"));
+ static llvm::Regex g_lineentry_col_regex(
+ llvm::StringRef("^ *\\[(0x[0-9a-fA-F]+)-(0x[0-9a-fA-F]+)\\): (.+):([0-9]+):[0-9]+$"));
+ // ^1=start ^2=end ^3=f ^4=line ^5=:col(opt)
- MIUtilParse::CRegexParser::Match match(6);
+ llvm::SmallVector<llvm::StringRef, 6> match;
// First try matching the LineEntry with the column,
// then try without the column.
- const bool ok = g_lineentry_col_regex.Execute(input, match) ||
- g_lineentry_nocol_regex.Execute(input, match);
+ const bool ok = g_lineentry_col_regex.match(input, &match) ||
+ g_lineentry_nocol_regex.match(input, &match);
if (ok)
{
- addr = match.GetMatchAtIndex(1);
- file = match.GetMatchAtIndex(3);
- line = match.GetMatchAtIndex(4);
+ addr = match[1];
+ file = match[3];
+ line = match[4];
}
return ok;
}
OpenPOWER on IntegriCloud