From 4f93f935dc7a981ca073a322425c3f5929ffb644 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Sun, 21 Jan 2024 03:03:58 +0100 Subject: Support line- & column-based match locations --- vendor/librune/include/internal/common.h | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 vendor/librune/include/internal/common.h (limited to 'vendor/librune/include/internal/common.h') diff --git a/vendor/librune/include/internal/common.h b/vendor/librune/include/internal/common.h new file mode 100644 index 0000000..7107528 --- /dev/null +++ b/vendor/librune/include/internal/common.h @@ -0,0 +1,39 @@ +#ifndef RUNE_INTERNAL_COMMON_H +#define RUNE_INTERNAL_COMMON_H + +#if __STDC_VERSION__ >= 202311L +# define RUNE_IS_23 1 +#endif + +#if !RUNE_IS_23 +# include /* IWYU pragma: export */ +# define nullptr NULL +#endif + +#ifndef unreachable +# if RUNE_IS_23 +# include /* IWYU pragma: export */ +# elif defined(__GNUC__) || defined(__clang__) +# define unreachable() __builtin_unreachable() +# else +# define unreachable() \ + do \ + *(int *)0 = 0; \ + while (0) +# endif +#endif + +#define U1(x) (((x)&0x80) == 0x00) +#define U2(x) (((x)&0xE0) == 0xC0) +#define U3(x) (((x)&0xF0) == 0xE0) +#define U4(x) (((x)&0xF8) == 0xF0) +#define UC(x) (((x)&0xC0) == 0x80) + +/* Maximum value of a 1–4-byte long UTF-8 sequence */ +#include "rune.h" +#define _1B_MAX RUNE_C(0x00007F) +#define _2B_MAX RUNE_C(0x0007FF) +#define _3B_MAX RUNE_C(0x00FFFF) +#define _4B_MAX RUNE_C(0x10FFFF) + +#endif /* !RUNE_INTERNAL_COMMON_H */ -- cgit v1.2.3