4167 {
4169 ZoneGrowableArray<CharacterRange>*
ranges = this->
ranges();
4172 }
4176 ZoneGrowableArray<CharacterRange>* negated =
4177 new ZoneGrowableArray<CharacterRange>(2);
4180 }
4181 if (
ranges->length() == 0) {
4184 return new TextNode(
fail,
compiler->read_backward(), on_success);
4185 }
4188 } else {
4189 ChoiceNode*
result =
new (
OZ) ChoiceNode(2,
OZ);
4190 UnicodeRangeSplitter splitter(
OZ,
ranges);
4196 }
4197 } else {
4198 return new TextNode(
this,
compiler->read_backward(), on_success);
4199 }
4200 return new (
OZ) TextNode(
this,
compiler->read_backward(), on_success);
4201}
static void fail(const SkString &err)
static void Negate(ZoneGrowableArray< CharacterRange > *src, ZoneGrowableArray< CharacterRange > *dst)
uint16_t standard_type() const
RegExpCharacterClass(ZoneGrowableArray< CharacterRange > *ranges, RegExpFlags flags, CharacterClassFlags character_class_flags=DefaultFlags())
bool contains_split_surrogate() const
bool NeedsUnicodeCaseEquivalents()
void AddBmpCharacters(RegExpCompiler *compiler, ChoiceNode *result, RegExpNode *on_success, UnicodeRangeSplitter *splitter)
void AddLoneLeadSurrogates(RegExpCompiler *compiler, ChoiceNode *result, RegExpNode *on_success, UnicodeRangeSplitter *splitter)
void AddNonBmpSurrogatePairs(RegExpCompiler *compiler, ChoiceNode *result, RegExpNode *on_success, UnicodeRangeSplitter *splitter)
void AddUnicodeCaseEquivalents(ZoneGrowableArray< CharacterRange > *ranges)
void AddLoneTrailSurrogates(RegExpCompiler *compiler, ChoiceNode *result, RegExpNode *on_success, UnicodeRangeSplitter *splitter)
RegExpNode * UnanchoredAdvance(RegExpCompiler *compiler, RegExpNode *on_success)