kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

literal_unicode.h (882B)


      1 #ifndef KIT_C_PARSE_LITERAL_UNICODE_H
      2 #define KIT_C_PARSE_LITERAL_UNICODE_H
      3 
      4 #include "c_support.h"
      5 
      6 typedef enum CLitUnitKind {
      7   C_LIT_UNIT_CODEPOINT,
      8   C_LIT_UNIT_NUMERIC,
      9 } CLitUnitKind;
     10 
     11 typedef struct CLitUnit {
     12   u32 value;
     13   u8 kind;
     14 } CLitUnit;
     15 
     16 typedef enum CLitStringEnc {
     17   C_LIT_STR_ORDINARY,
     18   C_LIT_STR_UTF8,
     19   C_LIT_STR_UTF16,
     20   C_LIT_STR_UTF32,
     21 } CLitStringEnc;
     22 
     23 int c_lit_decode_unit(const char* s, size_t len, size_t* pi, CLitUnit* out,
     24                       const char** err_out);
     25 int c_lit_append_string_unit(u8* dst, size_t* pk, CLitStringEnc enc,
     26                              u32 elem_size, CLitUnit unit,
     27                              const char** err_out);
     28 int c_lit_encode_char_unit(CLitStringEnc enc, u32 elem_bits, CLitUnit unit,
     29                            u32* out, const char** err_out);
     30 void c_lit_encode_uint_le(u8* dst, u32 size, u32 value);
     31 
     32 #endif