#include "ellipsis-lexer.h"
#include "utils/ellipsis-init.h"
#include "encoding/ellipsis-entity.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
Macros | |
#define | ELLIPSIS_CONTRACT(COUNT, COND, ACTION, VERB, CSTR, CTYPE, ...) |
#define | ELLIPSIS_CONTRACT_CHECK_STATIC(CTYPE, COND, CSTR, ...) |
#define | ELLIPSIS_CONTRACT_ICE_OR_TRUE(...) |
#define | ELLIPSIS_CONTRACT_IMPL(COUNT, COND, ACTION, VERB, CSTR, CTYPE, ...) |
#define | ELLIPSIS_CONTRACT_VIOLATION(COUNT, VERB, CTYPE, CSTR, ...) |
#define | ELLIPSIS_STR32_LITERAL ELLIPSIS_STR32_LITERAL_GLOBAL |
#define | ELLIPSIS_TEST_ICE(...) (false ? ELLIPSIS_TO_VOIDS(__VA_ARGS__) : (ellipsis‿contracts‿is_ice*)nullptr) |
#define | ELLIPSIS_TO_VOIDS(...) ((void*)((uintptr_t)((__VA_ARGS__)-(__VA_ARGS__)))) |
#define | STRINGIFY(...) STRINGIFY_(__VA_ARGS__) |
#define | STRINGIFY_(...) #__VA_ARGS__ |
Typedefs | |
typedef struct ellipsis‿contracts‿is_ice | ellipsis‿contracts‿is_ice |
Functions | |
ellipsis‿category | ellipsis‿lex‿category‿_Inner (ellipsis‿str32 const st[static 1], ellipsis‿special‿find *find) |
ellipsis‿category | ellipsis‿lex‿category‿_Insta (ellipsis‿str32 const s[static 1], ellipsis‿special‿find *find) |
bool | ellipsis‿lex‿Continue (char32_t val) |
bool | ellipsis‿lex‿is_space (char32_t c) |
ellipsis‿str32 const * | ellipsis‿lex‿nonspace‿_Inner (size_t len[static 1], char const *restrict s[static 1], ellipsis‿special const **sp, ellipsis‿token t[static 1], ellipsis‿special‿find *find) |
ellipsis‿str32 const * | ellipsis‿lex‿nonspace‿_Insta (size_t len[static 1], char const *restrict s[static 1], ellipsis‿special const **sp, ellipsis‿token t[static 1], ellipsis‿special‿find *f) |
ellipsis‿str32 const * | ellipsis‿lex‿space‿_Inner (size_t len[static 1], char const *restrict s[static 1]) |
ellipsis‿str32 const * | ellipsis‿lex‿space‿_Insta (size_t len[static 1], char const *restrict s[static 1]) |
bool | ellipsis‿lex‿Start (char32_t val) |
size_t | ellipsis‿lex‿str_escape (char[static 1], size_t[static 1], char const[static 2], bool) |
char * | ellipsis‿lex‿strdup_escape‿_Inner (size_t len, char const s[static len], size_t nlenp[static 1]) |
char * | ellipsis‿lex‿strdup_escape‿_Insta (size_t len, char const s[static len], size_t nlenp[static 1]) |
size_t | ellipsis‿str32‿escape (char32_t *pc32, char const *s, bool) |
Variables | |
thread_local bool volatile | ellipsis‿contracts‿ignore‿dynamic |
thread_local bool volatile | ellipsis‿contracts‿proceed‿dynamic |
thread_local bool volatile | ellipsis‿contracts‿verbose‿dynamic |
static ellipsis‿str32 const * | one_str32 [] |
static constexpr size_t | one_str32_len = sizeof(one_str32)/sizeof(one_str32[0]) |
#define ELLIPSIS_CONTRACT | ( | COUNT, | |
COND, | |||
ACTION, | |||
VERB, | |||
CSTR, | |||
CTYPE, | |||
... | |||
) |
#define ELLIPSIS_CONTRACT_CHECK_STATIC | ( | CTYPE, | |
COND, | |||
CSTR, | |||
... | |||
) |
#define ELLIPSIS_CONTRACT_ICE_OR_TRUE | ( | ... | ) |
#define ELLIPSIS_CONTRACT_IMPL | ( | COUNT, | |
COND, | |||
ACTION, | |||
VERB, | |||
CSTR, | |||
CTYPE, | |||
... | |||
) |
#define ELLIPSIS_CONTRACT_VIOLATION | ( | COUNT, | |
VERB, | |||
CTYPE, | |||
CSTR, | |||
... | |||
) |
#define ELLIPSIS_STR32_LITERAL ELLIPSIS_STR32_LITERAL_GLOBAL |
#define ELLIPSIS_TEST_ICE | ( | ... | ) | (false ? ELLIPSIS_TO_VOIDS(__VA_ARGS__) : (ellipsis‿contracts‿is_ice*)nullptr) |
#define ELLIPSIS_TO_VOIDS | ( | ... | ) | ((void*)((uintptr_t)((__VA_ARGS__)-(__VA_ARGS__)))) |
#define STRINGIFY | ( | ... | ) | STRINGIFY_(__VA_ARGS__) |
#define STRINGIFY_ | ( | ... | ) | #__VA_ARGS__ |
typedef struct ellipsis‿contracts‿is_ice ellipsis‿contracts‿is_ice |
ellipsis‿category ellipsis‿lex‿category‿_Inner | ( | ellipsis‿str32 const | st[static 1], |
ellipsis‿special‿find * | find | ||
) |
References ellipsis‿token::cat, ellipsis‿lex‿nonspace(), ellipsis‿str32‿delete(), ellipsis‿str32‿dup, and ELLIPSIS_ERROR.
Referenced by ellipsis‿lex‿category‿_Ctra().
|
inline |
start inner defer anchor at level 1
DEFER_TYPE needs a semicolon
end inner defer anchor, level 1
References ellipsis‿lex‿category‿_Ctra(), and ellipsis‿lex‿category‿_Insta().
Referenced by ellipsis‿lex‿category‿_Insta(), and ellipsis‿lex‿category().
|
inline |
References ellipsis‿XID‿Continue, and ellipsis_bitset_member.
Referenced by ellipsis‿filter(), and ellipsis‿lex‿nonspace‿_Inner().
|
inline |
Referenced by ellipsis‿lex‿nonspace‿_Inner(), and ellipsis‿lex‿space‿_Inner().
ellipsis‿str32 const * ellipsis‿lex‿nonspace‿_Inner | ( | size_t | len[static 1], |
char const *restrict | s[static 1], | ||
ellipsis‿special const ** | sp, | ||
ellipsis‿token | t[static 1], | ||
ellipsis‿special‿find * | find | ||
) |
References ellipsis‿str8::array, base64, binary, ellipsis‿token::cat, ellipsis‿token::data, directive, ellipsis‿base64‿decode(), ellipsis‿entity‿used, ellipsis‿entity(), ellipsis‿infra‿newline(), ellipsis‿lex‿Continue(), ellipsis‿lex‿is_space(), ellipsis‿lex‿space(), ellipsis‿lex‿Start(), ellipsis‿special‿delete(), ellipsis‿special‿directive‿find, ellipsis‿special‿scan‿str32(), ellipsis‿special‿scan‿str8(), ellipsis‿str32‿construct(), ellipsis‿str32‿delete(), ellipsis‿str32‿escape(), ellipsis‿str8‿construct(), ellipsis‿str8‿delete(), ellipsis‿token‿what‿binary, ellipsis_alloc, ELLIPSIS_CONTRACT, ellipsis‿token::is_what, ellipsis‿str32::length, ellipsis‿str8::length, nominal, none, numeral, one_str32, one_str32_len, punctuator, ellipsis‿special::repl32, ellipsis‿special::starter8, string, ellipsis‿token::toeol, and verbatim.
Referenced by ellipsis‿lex‿nonspace‿_Ctra().
|
inline |
start inner defer anchor at level 1
DEFER_TYPE needs a semicolon
end inner defer anchor, level 1
References ellipsis‿lex‿nonspace‿_Ctra(), and ellipsis‿lex‿nonspace‿_Insta().
Referenced by ellipsis‿lex‿nonspace‿_Insta(), and ellipsis‿lex‿nonspace().
ellipsis‿str32 const * ellipsis‿lex‿space‿_Inner | ( | size_t | len[static 1], |
char const *restrict | s[static 1] | ||
) |
References ellipsis‿entity‿used, ellipsis‿entity(), ellipsis‿lex‿is_space(), ellipsis‿str32‿escape(), and one_str32.
Referenced by ellipsis‿lex‿space‿_Ctra().
|
inline |
start inner defer anchor at level 1
DEFER_TYPE needs a semicolon
end inner defer anchor, level 1
References ellipsis‿lex‿space‿_Ctra(), and ellipsis‿lex‿space‿_Insta().
Referenced by ellipsis‿lex‿space‿_Insta(), and ellipsis‿lex‿space().
|
inline |
References ellipsis‿XID‿Start, and ellipsis_bitset_member.
Referenced by ellipsis‿lex‿nonspace‿_Inner().
|
inline |
References ellipsis‿infra‿newline(), and ELLIPSIS_CONTRACT.
Referenced by ellipsis‿lex‿strdup_escape‿_Inner().
char * ellipsis‿lex‿strdup_escape‿_Inner | ( | size_t | len, |
char const | s[static len], | ||
size_t | nlenp[static 1] | ||
) |
start inner defer anchor at level 1
DEFER_TYPE needs a semicolon
defer needs braces and a semicolon
end inner defer anchor, level 1
References ellipsis‿lex‿str_escape(), ellipsis‿malloc, and ELLIPSIS_CONTRACT.
Referenced by ellipsis‿lex‿strdup_escape‿_Ctra().
|
inline |
start inner defer anchor at level 1
DEFER_TYPE needs a semicolon
end inner defer anchor, level 1
References ellipsis‿lex‿strdup_escape‿_Ctra(), and ellipsis‿lex‿strdup_escape‿_Insta().
Referenced by ellipsis‿lex‿strdup_escape‿_Insta(), and ellipsis‿lex‿strdup_escape().
|
inline |
References ellipsis‿infra‿newline().
Referenced by ellipsis‿lex‿nonspace‿_Inner(), and ellipsis‿lex‿space‿_Inner().
|
extern |
|
extern |
|
extern |
|
static |
Referenced by ellipsis‿lex‿nonspace‿_Inner(), and ellipsis‿lex‿space‿_Inner().
Referenced by ellipsis‿lex‿nonspace‿_Inner().