virtual void HandleInvalidConversionSpecifier(const char *conversionChar) {}
- virtual void HandleFormatSpecifier(const FormatSpecifier &FS,
+ virtual bool HandleFormatSpecifier(const FormatSpecifier &FS,
const char *startSpecifier,
- const char *endSpecifier) {}
+ const char *endSpecifier) { return false; }
};
bool ParseFormatString(FormatStringHandler &H,
if (!FSR.hasValue())
break;
// We have a format specifier. Pass it to the callback.
- H.HandleFormatSpecifier(FSR.getValue(), FSR.getStart(), I);
+ if (!H.HandleFormatSpecifier(FSR.getValue(), FSR.getStart(), I))
+ return false;
}
assert(I == E && "Format string not exhausted");
return false;