diff options
| author | Damien George <damien@micropython.org> | 2021-07-12 16:33:19 +1000 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2021-07-12 16:36:26 +1000 |
| commit | d1d172f536247df4716b76b105a875477ea75d65 (patch) | |
| tree | 9a3ce8a5f35dd3e7799cdd833bf63710659767c9 /extmod/re1.5/charclass.c | |
| parent | e2f0b181f94c7f0843102b02912680d916b0b7d0 (diff) | |
lib/re1.5: Move re1.5 code from extmod to lib.
It's third-party code, and not necessarily tied to extmod.
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'extmod/re1.5/charclass.c')
| -rw-r--r-- | extmod/re1.5/charclass.c | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/extmod/re1.5/charclass.c b/extmod/re1.5/charclass.c deleted file mode 100644 index 7f6388c93..000000000 --- a/extmod/re1.5/charclass.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "re1.5.h" - -int _re1_5_classmatch(const char *pc, const char *sp) -{ - // pc points to "cnt" byte after opcode - int is_positive = (pc[-1] == Class); - int cnt = *pc++; - while (cnt--) { - if (*sp >= *pc && *sp <= pc[1]) return is_positive; - pc += 2; - } - return !is_positive; -} - -int _re1_5_namedclassmatch(const char *pc, const char *sp) -{ - // pc points to name of class - int off = (*pc >> 5) & 1; - if ((*pc | 0x20) == 'd') { - if (!(*sp >= '0' && *sp <= '9')) { - off ^= 1; - } - } else if ((*pc | 0x20) == 's') { - if (!(*sp == ' ' || (*sp >= '\t' && *sp <= '\r'))) { - off ^= 1; - } - } else { // w - if (!((*sp >= 'A' && *sp <= 'Z') || (*sp >= 'a' && *sp <= 'z') || (*sp >= '0' && *sp <= '9') || *sp == '_')) { - off ^= 1; - } - } - return off; -} |
