Lines Matching refs:StringRef
81 StringRef FixedStr;
93 std::vector<std::pair<StringRef, unsigned> > VariableUses;
98 std::map<StringRef, unsigned> VariableDefs;
113 bool ParsePattern(StringRef PatternStr,
114 StringRef Prefix,
124 size_t Match(StringRef Buffer, size_t &MatchLen,
125 StringMap<StringRef> &VariableTable) const;
129 void PrintFailureInfo(const SourceMgr &SM, StringRef Buffer,
130 const StringMap<StringRef> &VariableTable) const;
138 bool AddRegExToRegEx(StringRef RS, unsigned &CurParen, SourceMgr &SM);
144 unsigned ComputeMatchDistance(StringRef Buffer,
145 const StringMap<StringRef> &VariableTable) const;
149 bool EvaluateExpression(StringRef Expr, std::string &Value) const;
156 size_t FindRegexVarEnd(StringRef Str, SourceMgr &SM);
160 bool Pattern::ParsePattern(StringRef PatternStr,
161 StringRef Prefix,
182 (PatternStr.find("{{") == StringRef::npos &&
183 PatternStr.find("[[") == StringRef::npos)) {
199 if (End == StringRef::npos) {
231 if (End == StringRef::npos) {
238 StringRef MatchStr = PatternStr.substr(2, End);
243 StringRef Name = MatchStr.substr(0, NameEnd);
257 if (NameEnd != StringRef::npos) {
282 if (NameEnd == StringRef::npos) {
322 bool Pattern::AddRegExToRegEx(StringRef RS, unsigned &CurParen,
344 bool Pattern::EvaluateExpression(StringRef Expr, std::string &Value) const {
348 Expr = Expr.substr(StringRef("@LINE").size());
365 size_t Pattern::Match(StringRef Buffer, size_t &MatchLen,
366 StringMap<StringRef> &VariableTable) const {
383 StringRef RegExToMatch = RegExStr;
394 return StringRef::npos;
396 StringMap<StringRef>::iterator it =
400 return StringRef::npos;
417 SmallVector<StringRef, 4> MatchInfo;
419 return StringRef::npos;
423 StringRef FullMatch = MatchInfo[0];
426 for (std::map<StringRef, unsigned>::const_iterator I = VariableDefs.begin(),
437 unsigned Pattern::ComputeMatchDistance(StringRef Buffer,
438 const StringMap<StringRef> &VariableTable) const {
445 StringRef ExampleString(FixedStr);
450 StringRef BufferPrefix = Buffer.substr(0, ExampleString.size());
455 void Pattern::PrintFailureInfo(const SourceMgr &SM, StringRef Buffer,
456 const StringMap<StringRef> &VariableTable) const{
463 StringRef Var = VariableUses[i].first;
475 StringMap<StringRef>::const_iterator it = VariableTable.find(Var);
498 size_t Best = StringRef::npos;
516 if (Quality < BestQuality || Best == StringRef::npos) {
525 if (Best && Best != StringRef::npos && BestQuality < 50) {
534 size_t Pattern::FindRegexVarEnd(StringRef Str, SourceMgr &SM) {
569 return StringRef::npos;
583 StringRef Prefix;
599 StringRef S,
605 size_t Check(const SourceMgr &SM, StringRef Buffer, bool IsLabelScanMode,
606 size_t &MatchLen, StringMap<StringRef> &VariableTable) const;
609 bool CheckNext(const SourceMgr &SM, StringRef Buffer) const;
612 bool CheckNot(const SourceMgr &SM, StringRef Buffer,
614 StringMap<StringRef> &VariableTable) const;
617 size_t CheckDag(const SourceMgr &SM, StringRef Buffer,
619 StringMap<StringRef> &VariableTable) const;
693 static Check::CheckType FindCheckType(StringRef Buffer, StringRef Prefix) {
703 StringRef Rest = Buffer.drop_front(Prefix.size() + 1);
720 static size_t SkipWord(StringRef Str, size_t Loc) {
731 // string and the location will be StringRef::npos. If one prefix is a substring
734 static StringRef FindFirstCandidateMatch(StringRef &Buffer,
737 StringRef FirstPrefix;
738 size_t FirstLoc = StringRef::npos;
739 size_t SearchLoc = StringRef::npos;
743 CheckLoc = StringRef::npos;
747 StringRef Prefix(*I);
750 if (PrefixLoc == StringRef::npos)
769 StringRef Rest = Buffer.drop_front(PrefixLoc);
793 static StringRef FindFirstMatchingPrefix(StringRef &Buffer,
798 StringRef Prefix = FindFirstCandidateMatch(Buffer, CheckTy, CheckLoc);
806 if (CheckLoc == StringRef::npos)
807 return StringRef();
815 return StringRef();
839 StringRef Buffer = F->getBuffer();
851 StringRef UsedPrefix = FindFirstMatchingPrefix(Buffer,
929 StringRef Prefix(CheckPrefixes[I]);
943 const Pattern &Pat, StringRef Buffer,
944 StringMap<StringRef> &VariableTable) {
961 StringRef Buffer,
962 StringMap<StringRef> &VariableTable) {
968 static unsigned CountNumNewlinesBetween(StringRef Range,
990 size_t CheckString::Check(const SourceMgr &SM, StringRef Buffer,
992 StringMap<StringRef> &VariableTable) const {
1003 if (LastPos == StringRef::npos)
1004 return StringRef::npos;
1008 StringRef MatchBuffer = Buffer.substr(LastPos);
1010 if (MatchPos == StringRef::npos) {
1012 return StringRef::npos;
1019 StringRef SkippedRegion = Buffer.substr(LastPos, MatchPos);
1024 return StringRef::npos;
1029 return StringRef::npos;
1035 bool CheckString::CheckNext(const SourceMgr &SM, StringRef Buffer) const {
1074 bool CheckString::CheckNot(const SourceMgr &SM, StringRef Buffer,
1076 StringMap<StringRef> &VariableTable) const {
1085 if (Pos == StringRef::npos) continue;
1098 size_t CheckString::CheckDag(const SourceMgr &SM, StringRef Buffer,
1100 StringMap<StringRef> &VariableTable) const {
1125 StringRef MatchBuffer = Buffer.substr(StartPos);
1129 if (MatchPos == StringRef::npos) {
1131 return StringRef::npos;
1153 return StringRef::npos;
1161 StringRef SkippedRegion = Buffer.substr(LastPos, MatchPos);
1163 return StringRef::npos;
1176 static bool ValidateCheckPrefix(StringRef CheckPrefix) {
1186 StringRef Prefix(*I);
1249 StringMap<StringRef> VariableTable;
1253 StringRef Buffer = F->getBuffer();
1260 StringRef CheckRegion;
1274 if (MatchLabelPos == StringRef::npos) {
1293 if (MatchPos == StringRef::npos) {