Lines Matching refs:StringRef
61 StringRef FixedStr;
70 std::vector<std::pair<StringRef, unsigned> > VariableUses;
76 std::vector<std::pair<StringRef, unsigned> > VariableDefs;
82 bool ParsePattern(StringRef PatternStr, SourceMgr &SM);
90 size_t Match(StringRef Buffer, size_t &MatchLen,
91 StringMap<StringRef> &VariableTable) const;
95 void PrintFailureInfo(const SourceMgr &SM, StringRef Buffer,
96 const StringMap<StringRef> &VariableTable) const;
99 static void AddFixedStringToRegEx(StringRef FixedStr, std::string &TheStr);
100 bool AddRegExToRegEx(StringRef RegExStr, unsigned &CurParen, SourceMgr &SM);
105 unsigned ComputeMatchDistance(StringRef Buffer,
106 const StringMap<StringRef> &VariableTable) const;
110 bool Pattern::ParsePattern(StringRef PatternStr, SourceMgr &SM) {
127 (PatternStr.find("{{") == StringRef::npos &&
128 PatternStr.find("[[") == StringRef::npos)) {
145 if (End == StringRef::npos) {
174 if (End == StringRef::npos) {
180 StringRef MatchStr = PatternStr.substr(2, End-2);
185 StringRef Name = MatchStr.substr(0, NameEnd);
209 if (NameEnd == StringRef::npos) {
237 void Pattern::AddFixedStringToRegEx(StringRef FixedStr, std::string &TheStr) {
264 bool Pattern::AddRegExToRegEx(StringRef RegexStr, unsigned &CurParen,
282 size_t Pattern::Match(StringRef Buffer, size_t &MatchLen,
283 StringMap<StringRef> &VariableTable) const {
300 StringRef RegExToMatch = RegExStr;
307 StringMap<StringRef>::iterator it =
311 return StringRef::npos;
328 SmallVector<StringRef, 4> MatchInfo;
330 return StringRef::npos;
334 StringRef FullMatch = MatchInfo[0];
347 unsigned Pattern::ComputeMatchDistance(StringRef Buffer,
348 const StringMap<StringRef> &VariableTable) const {
355 StringRef ExampleString(FixedStr);
360 StringRef BufferPrefix = Buffer.substr(0, ExampleString.size());
365 void Pattern::PrintFailureInfo(const SourceMgr &SM, StringRef Buffer,
366 const StringMap<StringRef> &VariableTable) const{
371 StringRef Var = VariableUses[i].first;
372 StringMap<StringRef>::const_iterator it = VariableTable.find(Var);
396 size_t Best = StringRef::npos;
414 if (Quality < BestQuality || Best == StringRef::npos) {
423 if (Best && Best != StringRef::npos && BestQuality < 50) {
514 StringRef Buffer = F->getBuffer();
607 StringRef Buffer,
608 StringMap<StringRef> &VariableTable) {
626 static unsigned CountNumNewlinesBetween(StringRef Range) {
678 StringMap<StringRef> VariableTable;
682 StringRef Buffer = F->getBuffer();
689 StringRef SearchFrom = Buffer;
697 if (MatchPos == StringRef::npos) {
702 StringRef SkippedRegion(LastMatch, Buffer.data()-LastMatch);
744 if (Pos == StringRef::npos) continue;