various cleanups, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129192 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2011-04-09 06:18:02 +00:00
parent 1bdedb9e46
commit 13a38c4cb4

View File

@ -131,26 +131,26 @@ bool Pattern::ParsePattern(StringRef PatternStr, SourceMgr &SM) {
} }
// Paren value #0 is for the fully matched string. Any new parenthesized // Paren value #0 is for the fully matched string. Any new parenthesized
// values add from their. // values add from there.
unsigned CurParen = 1; unsigned CurParen = 1;
// Otherwise, there is at least one regex piece. Build up the regex pattern // Otherwise, there is at least one regex piece. Build up the regex pattern
// by escaping scary characters in fixed strings, building up one big regex. // by escaping scary characters in fixed strings, building up one big regex.
while (!PatternStr.empty()) { while (!PatternStr.empty()) {
// RegEx matches. // RegEx matches.
if (PatternStr.size() >= 2 && if (PatternStr.startswith("{{")) {
PatternStr[0] == '{' && PatternStr[1] == '{') {
// Otherwise, this is the start of a regex match. Scan for the }}. // Otherwise, this is the start of a regex match. Scan for the }}.
size_t End = PatternStr.find("}}"); size_t End = PatternStr.find("}}");
if (End == StringRef::npos) { if (End == StringRef::npos) {
SM.PrintMessage(SMLoc::getFromPointer(PatternStr.data()), SM.PrintMessage(SMLoc::getFromPointer(PatternStr.data()),
"found start of regex string with no end '}}'", "error"); "found start of regex string with no end '}}'","error");
return true; return true;
} }
if (AddRegExToRegEx(PatternStr.substr(2, End-2), CurParen, SM)) if (AddRegExToRegEx(PatternStr.substr(2, End-2), CurParen, SM))
return true; return true;
PatternStr = PatternStr.substr(End+2); PatternStr = PatternStr.substr(End+2);
continue; continue;
} }
@ -160,8 +160,7 @@ bool Pattern::ParsePattern(StringRef PatternStr, SourceMgr &SM) {
// second form is [[foo]] which is a reference to foo. The variable name // second form is [[foo]] which is a reference to foo. The variable name
// itself must be of the form "[a-zA-Z_][0-9a-zA-Z_]*", otherwise we reject // itself must be of the form "[a-zA-Z_][0-9a-zA-Z_]*", otherwise we reject
// it. This is to catch some common errors. // it. This is to catch some common errors.
if (PatternStr.size() >= 2 && if (PatternStr.startswith("[[")) {
PatternStr[0] == '[' && PatternStr[1] == '[') {
// Verify that it is terminated properly. // Verify that it is terminated properly.
size_t End = PatternStr.find("]]"); size_t End = PatternStr.find("]]");
if (End == StringRef::npos) { if (End == StringRef::npos) {
@ -185,10 +184,7 @@ bool Pattern::ParsePattern(StringRef PatternStr, SourceMgr &SM) {
// Verify that the name is well formed. // Verify that the name is well formed.
for (unsigned i = 0, e = Name.size(); i != e; ++i) for (unsigned i = 0, e = Name.size(); i != e; ++i)
if (Name[i] != '_' && if (Name[i] != '_' && !isalnum(Name[i])) {
(Name[i] < 'a' || Name[i] > 'z') &&
(Name[i] < 'A' || Name[i] > 'Z') &&
(Name[i] < '0' || Name[i] > '9')) {
SM.PrintMessage(SMLoc::getFromPointer(Name.data()+i), SM.PrintMessage(SMLoc::getFromPointer(Name.data()+i),
"invalid name in named regex", "error"); "invalid name in named regex", "error");
return true; return true;