#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include "ellipsis-tdict.h"
#include "utils/ellipsis-hash.h"
#include "utils/ellipsis-error.h"
#include "ellipsis-tlist.h"
#include "ellipsis-macros.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_FA_UNDEPRECATE [[__deprecated__("you should not see this")]] |
#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 |
Variables | |
constexpr auto | φ = 7540113804746346429.0L / 12200160415121876738.0L |
thread_local bool volatile | ellipsis‿contracts‿ignore‿dynamic |
thread_local bool volatile | ellipsis‿contracts‿proceed‿dynamic |
thread_local bool volatile | ellipsis‿contracts‿verbose‿dynamic |
constexpr auto | num = 17U |
constexpr auto | qot = 9U |
#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_FA_UNDEPRECATE [[__deprecated__("you should not see this")]] |
#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 |
|
static |
References ellipsis‿token‿array::array, ellipsis‿token::cat, ellipsis‿token‿dictionary‿find_pos(), removed, and ellipsis‿token‿dictionary::tab.
Referenced by ellipsis‿token‿dictionary::ellipsis‿token‿dictionary‿remove().
ELLIPSIS_FA_UNDEPRECATE void ellipsis‿token‿dictionary‿destroy | ( | ellipsis‿token‿dictionary * | dict | ) |
Referenced by ellipsis‿c_punctuators‿_Once‿atexit‿callback(), ellipsis‿infra‿_Once‿atexit‿callback(), and ellipsis‿macros‿_Once‿atexit‿callback().
ELLIPSIS_FA_UNDEPRECATE token * ellipsis‿token‿dictionary‿find | ( | ellipsis‿token‿dictionary * | dict, |
ellipsis‿str32 const * | s | ||
) |
Referenced by callback_insert(), ellipsis‿c_punctuators‿fputs(), ellipsis‿infra‿data(), ellipsis‿infra‿find(), ellipsis‿macros‿activate(), ellipsis‿macros‿deactivate(), ellipsis‿macros‿find(), ellipsis‿macros‿functions_find(), ellipsis‿macros‿remove(), macro_signed(), and macro_string().
|
static |
References ellipsis‿token‿array::array, ellipsis‿str32::array, ellipsis‿token‿dictionary::comparisons, ellipsis‿token::contents, ellipsis‿hash, ellipsis‿str32‿compare(), ELLIPSIS_CONTRACT, ellipsis‿token‿dictionary::fibfac, ellipsis‿token‿array::length, ellipsis‿str32::length, ellipsis‿token‿dictionary::tab, and ellipsis‿token‿dictionary::tries.
Referenced by ellipsis‿token‿dictionary‿catch(), ellipsis‿token‿dictionary::ellipsis‿token‿dictionary‿find(), and ellipsis‿token‿dictionary::ellipsis‿token‿dictionary‿insert().
ELLIPSIS_FA_UNDEPRECATE void ellipsis‿token‿dictionary‿fputs | ( | ellipsis‿token‿dictionary | dict[static 1], |
FILE * | outf, | ||
char const | prefix[static 1] | ||
) |
start inner defer anchor at level 1
defer needs braces and a semicolon
end inner defer anchor, level 1
Referenced by ellipsis‿infra‿_Once‿atexit‿callback(), and ellipsis‿macros‿_Once‿atexit‿callback().
void ellipsis‿token‿dictionary‿init | ( | ellipsis‿token‿dictionary *const | d, |
size_t | len | ||
) |
Referenced by ellipsis‿c_punctuators‿_Once‿init‿user(), ellipsis‿infra‿_Once‿init‿user(), ellipsis‿macros‿_Once‿init‿user(), and ellipsis‿token‿dictionary‿resize().
ELLIPSIS_FA_UNDEPRECATE bool ellipsis‿token‿dictionary‿insert | ( | ellipsis‿token‿dictionary * | dict, |
token * | t | ||
) |
Referenced by ellipsis‿c_punctuators‿_Once‿init‿user(), ellipsis‿infra‿find(), ellipsis‿macros‿_Once‿init‿user(), ellipsis‿macros‿cb‿addition(), ellipsis‿macros‿insert(), ellipsis‿token‿dictionary‿resize(), and functions_insert().
|
static |
Compute gcd and relative inverse (r, inv)
of two numbers (a, m)
and return them in place.
inv
fulfills inv * a == r (m)
, so in particular if r
is 1
, inv
is the multiplicative inverse of a
in the ring Zₘ.
If m
is 0
, the computation is done as if it where max+1
, where max
is the maximum value of the base type.
Referenced by ellipsis‿token‿dictionary::ellipsis‿token‿dictionary‿init().
|
static |
References ellipsis‿token‿dictionary‿resize(), ellipsis‿token‿dictionary::keys, ellipsis‿token‿array::length, num, qot, ellipsis‿token‿dictionary::tab, and ellipsis‿token‿dictionary::xeys.
Referenced by ellipsis‿token‿dictionary::ellipsis‿token‿dictionary‿insert().
ELLIPSIS_FA_UNDEPRECATE void ellipsis‿token‿dictionary‿remove | ( | ellipsis‿token‿dictionary * | dict, |
ellipsis‿str32 const * | s | ||
) |
|
static |
References ellipsis‿token‿array::array, ellipsis‿token::cat, ellipsis‿token‿dictionary‿init(), ellipsis‿token‿dictionary‿insert(), ellipsis‿token‿dictionary::fibfac, ellipsis‿token‿dictionary::keys, ellipsis‿token‿array::length, num, qot, removed, and ellipsis‿token‿dictionary::tab.
Referenced by ellipsis‿token‿dictionary‿maintain().
|
constexpr |
Referenced by ellipsis‿token‿dictionary::ellipsis‿token‿dictionary‿init().
|
extern |
|
extern |
|
extern |
|
constexpr |
Referenced by ellipsis‿token‿dictionary‿maintain(), and ellipsis‿token‿dictionary‿resize().
|
constexpr |
Referenced by ellipsis‿token‿dictionary‿maintain(), and ellipsis‿token‿dictionary‿resize().