7#include "unicode/uchar.h"
19 const char*
format = (0x20 <= c && c <= 0x7F) ?
"%c"
20 : (c <= 0xff) ?
"\\x%02x"
30 const Smi& lhs_index =
Smi::Handle(
static_cast<SmiPtr
>(lhs_index_raw));
31 const Smi& rhs_index =
Smi::Handle(
static_cast<SmiPtr
>(rhs_index_raw));
38 for (intptr_t
i = 0;
i <
length.Value();
i++) {
43 canonicalize.
get(c1,
'\0', s1);
46 canonicalize.
get(c2,
'\0', s2);
61 const Smi& lhs_index =
Smi::Handle(
static_cast<SmiPtr
>(lhs_index_raw));
62 const Smi& rhs_index =
Smi::Handle(
static_cast<SmiPtr
>(rhs_index_raw));
65 for (intptr_t
i = 0;
i <
length.Value();
i++) {
83 c1 = u_foldCase(c1, U_FOLD_CASE_DEFAULT);
84 c2 = u_foldCase(c2, U_FOLD_CASE_DEFAULT);
101#if !defined(DART_PRECOMPILED_RUNTIME)
102 if (!FLAG_interpret_irregexp) {
111 : slow_safe_compiler_(
false), global_mode_(NOT_GLOBAL), zone_(zone) {}
static bool ok(int result)
Convenience wrapper around a BlockEntryInstr pointer.
static const Bool & False()
static const Bool & True()
static CompilerState & Current()
static void static void PrintErr(const char *format,...) PRINTF_ATTRIBUTE(1
virtual void CheckCharacterInRange(uint16_t from, uint16_t to, BlockLabel *on_in_range)=0
RegExpMacroAssembler(Zone *zone)
virtual void CheckCharacterNotInRange(uint16_t from, uint16_t to, BlockLabel *on_not_in_range)=0
virtual void BindBlock(BlockLabel *label)=0
void CheckNotInSurrogatePair(intptr_t cp_offset, BlockLabel *on_failure)
virtual void LoadCurrentCharacter(intptr_t cp_offset, BlockLabel *on_end_of_input, bool check_bounds=true, intptr_t characters=1)=0
virtual ~RegExpMacroAssembler()
uint16_t CharAt(intptr_t index) const
static constexpr int32_t kLeadSurrogateStart
static int32_t Decode(uint16_t lead, uint16_t trail)
static constexpr int32_t kTrailSurrogateStart
static bool IsLeadSurrogate(uint32_t ch)
static bool IsTrailSurrogate(uint32_t ch)
static constexpr int32_t kTrailSurrogateEnd
static constexpr int32_t kLeadSurrogateEnd
intptr_t get(int32_t c, int32_t n, int32_t *result)
uint32_t uint32_t * format
uword CaseInsensitiveCompareUTF16(uword str_raw, uword lhs_index_raw, uword rhs_index_raw, uword length_raw)
void PrintUtf16(uint16_t c)
DEFINE_RAW_LEAF_RUNTIME_ENTRY(CaseInsensitiveCompareUCS2, 4, false, CaseInsensitiveCompareUCS2)
uword CaseInsensitiveCompareUCS2(uword str_raw, uword lhs_index_raw, uword rhs_index_raw, uword length_raw)