diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2023-11-07 16:38:48 +0100 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2023-11-07 16:38:48 +0100 |
| commit | c0377818aa198a5b5d0d3c7697373c5b6828d5fa (patch) | |
| tree | 8deb7109e9c996884a6a86ab46ec6190e793c532 /vendor/tree-sitter/lib/src/unicode.h | |
| parent | f9dcd08833afdfb3b4446cb842d3ecd4469c5638 (diff) | |
| download | crep-c0377818aa198a5b5d0d3c7697373c5b6828d5fa.tar.gz | |
Added tree-sitter vendor library
Diffstat (limited to 'vendor/tree-sitter/lib/src/unicode.h')
| -rw-r--r-- | vendor/tree-sitter/lib/src/unicode.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/tree-sitter/lib/src/unicode.h b/vendor/tree-sitter/lib/src/unicode.h new file mode 100644 index 0000000..0fba56a --- /dev/null +++ b/vendor/tree-sitter/lib/src/unicode.h @@ -0,0 +1,50 @@ +#ifndef TREE_SITTER_UNICODE_H_ +#define TREE_SITTER_UNICODE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <limits.h> +#include <stdint.h> + +#define U_EXPORT +#define U_EXPORT2 +#include "unicode/utf8.h" +#include "unicode/utf16.h" + +static const int32_t TS_DECODE_ERROR = U_SENTINEL; + +// These functions read one unicode code point from the given string, +// returning the number of bytes consumed. +typedef uint32_t (*UnicodeDecodeFunction)( + const uint8_t *string, + uint32_t length, + int32_t *code_point +); + +static inline uint32_t ts_decode_utf8( + const uint8_t *string, + uint32_t length, + int32_t *code_point +) { + uint32_t i = 0; + U8_NEXT(string, i, length, *code_point); + return i; +} + +static inline uint32_t ts_decode_utf16( + const uint8_t *string, + uint32_t length, + int32_t *code_point +) { + uint32_t i = 0; + U16_NEXT(((uint16_t *)string), i, length, *code_point); + return i * 2; +} + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_UNICODE_H_ |
