22 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_JS_REPLACER_H_
23 #define NET_INSTAWEB_REWRITER_PUBLIC_JS_REPLACER_H_
27 #include "pagespeed/kernel/base/basictypes.h"
28 #include "pagespeed/kernel/base/callback.h"
29 #include "pagespeed/kernel/base/string.h"
30 #include "pagespeed/kernel/base/string_util.h"
31 #include "pagespeed/kernel/js/js_tokenizer.h"
33 namespace net_instaweb {
37 typedef Callback1<GoogleString*> StringRewriter;
40 explicit JsReplacer(
const pagespeed::js::JsTokenizerPatterns* patterns)
41 : js_tokenizer_patterns_(patterns) {}
56 const GoogleString& field,
57 StringRewriter* rewriter);
66 bool Transform(StringPiece in, GoogleString* out);
70 Pattern() : rewriter(NULL) {}
71 Pattern(
const GoogleString&
object,
const GoogleString& field,
72 StringRewriter* rewriter)
73 : object(object), field(field), rewriter(rewriter) {}
77 StringRewriter* rewriter;
83 bool HandleCandidate(
const GoogleString&
object,
const GoogleString& field,
84 StringPiece value, GoogleString* out);
86 std::vector<Pattern> patterns_;
87 const pagespeed::js::JsTokenizerPatterns* js_tokenizer_patterns_;
JsReplacer(const pagespeed::js::JsTokenizerPatterns *patterns)
Does not take ownership of patterns.
Definition: js_replacer.h:40
Definition: js_replacer.h:35
bool Transform(StringPiece in, GoogleString *out)
void AddPattern(const GoogleString &object, const GoogleString &field, StringRewriter *rewriter)