#include "ellipsis-tokenize.h"
#include "ellipsis-output.h"
#include "utils/ellipsis-error.h"
#include "ellipsis-macros.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_LOCAL |
#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 | |
static void | ellipsis‿output‿base64 (ellipsis‿str8 const dat[static restrict 1], FILE *out) |
static void | ellipsis‿output‿byte (ellipsis‿str8 const *dat, FILE *out) |
static void | ellipsis‿output‿codeblock (ellipsis‿str32 const *s32, char const *code_addition, FILE *out) |
int | ellipsis‿output‿cont (ellipsis‿str32 const s32[static restrict 1], FILE *out) |
int | ellipsis‿output‿space (ellipsis‿str32 const s32[static restrict 1], FILE *out) |
static void | ellipsis‿output‿string (ellipsis‿str32 const *s32, FILE *out) |
static int | ellipsis‿output‿thrd (void *p) |
thrd_t | ellipsis‿output‿thread (ellipsis‿token‿list tl[static 1]) |
static void | ellipsis‿output‿verbatim (ellipsis‿str8 const *s8, FILE *out) |
thrd_t | ellipsis‿output‿verbose (ellipsis‿token‿list tl[static 1]) |
static int | ellipsis‿output‿vrbs (void *p) |
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 |
int(* | ellipsis‿output‿others )(ellipsis‿str32 const *restrict s, FILE *stream) = ellipsis‿str32‿fputs |
int(* | ellipsis‿output‿punctuators )(ellipsis‿str32 const *restrict s, FILE *stream) = ellipsis‿str32‿fputs |
#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_LOCAL |
#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 |
start inner defer anchor at level 1
defer needs braces and a semicolon
end inner defer anchor, level 1
References ellipsis‿base64‿encode(), and ELLIPSIS_CONTRACT.
Referenced by ellipsis‿output‿thrd(), and ellipsis‿output‿vrbs().
|
static |
References ellipsis‿str8::array, ELLIPSIS_CONTRACT, and ellipsis‿str8::length.
Referenced by ellipsis‿output‿thrd().
|
static |
start inner defer anchor at level 1
defer needs braces and a semicolon
end inner defer anchor, level 1
References ellipsis‿str32‿dup, and ELLIPSIS_DIAGNOSTIC.
Referenced by ellipsis‿output‿thrd().
int ellipsis‿output‿cont | ( | ellipsis‿str32 const | s32[static restrict 1], |
FILE * | out | ||
) |
int ellipsis‿output‿space | ( | ellipsis‿str32 const | s32[static restrict 1], |
FILE * | out | ||
) |
Referenced by ellipsis‿language‿lex‿_Once‿init‿user(), and ellipsis‿output‿thrd().
|
static |
start inner defer anchor at level 1
defer needs braces and a semicolon
end inner defer anchor, level 1
References ellipsis‿str32‿dup.
Referenced by ellipsis‿output‿thrd().
|
static |
start inner defer anchor at level 1
DEFER_TYPE needs a semicolon
defer needs braces and a semicolon
defer needs braces and a semicolon
start inner defer anchor at level 2
defer needs braces and a semicolon
end inner defer anchor, level 2
start inner defer anchor at level 2
defer needs braces and a semicolon
end inner defer anchor, level 2
start inner defer anchor at level 2
defer needs braces and a semicolon
start inner defer anchor at level 3
defer needs braces and a semicolon
defer needs braces and a semicolon
end inner defer anchor, level 3
start inner defer anchor at level 3
defer needs braces and a semicolon
defer needs braces and a semicolon
end inner defer anchor, level 3
end inner defer anchor, level 2
end inner defer anchor, level 1
References __FILE__, base64, character, code, codeblock, comment, ellipsis‿error‿dump, ellipsis‿error‿verb, ellipsis‿infra‿_Once‿init(), ellipsis‿infra‿_Once‿strong, ellipsis‿macros‿find(), ellipsis‿output‿base64(), ellipsis‿output‿byte(), ellipsis‿output‿codeblock(), ellipsis‿output‿others, ellipsis‿output‿punctuators, ellipsis‿output‿space(), ellipsis‿output‿string(), ellipsis‿output‿thrd(), ellipsis‿output‿verbatim(), ellipsis‿str32‿delete(), ellipsis‿str32‿dup, ellipsis‿str32‿fputs(), ellipsis‿token‿list‿pop(), ellipsis‿token‿list‿top(), ellipsis‿token‿list‿wait(), ellipsis‿token‿what‿binary, ELLIPSIS_DIAGNOSTIC, first, GNU_ATTR_USED, ellipsis‿token::next, nominal, none, numeral, ellipsis‿token::payload, punctuator, and string.
Referenced by ellipsis‿output‿thrd(), and ellipsis‿output‿thread().
thrd_t ellipsis‿output‿thread | ( | ellipsis‿token‿list | tl[static 1] | ) |
References ellipsis‿output‿thrd().
Referenced by main().
|
static |
References ellipsis‿str8::array.
Referenced by ellipsis‿output‿thrd().
thrd_t ellipsis‿output‿verbose | ( | ellipsis‿token‿list | tl[static 1] | ) |
References ellipsis‿output‿vrbs().
Referenced by main().
|
static |
start inner defer anchor at level 1
DEFER_TYPE needs a semicolon
end inner defer anchor, level 1
References __FILE__, ellipsis‿str32::array, ellipsis‿token::contents, ellipsis‿token::data, ellipsis‿category‿_Once‿init(), ellipsis‿category‿getname(), ellipsis‿infra‿_Once‿init(), ellipsis‿infra‿_Once‿strong, ellipsis‿infra‿file(), ellipsis‿output‿base64(), ellipsis‿output‿vrbs(), ellipsis‿str32‿fputs(), ellipsis‿str32‿fputs_entities(), ellipsis‿token‿list‿pop(), ellipsis‿token‿what‿binary, ellipsis‿token::file, GNU_ATTR_USED, ellipsis‿token::is_what, ellipsis‿token::line, ellipsis‿token::payload, and ellipsis‿token::space.
Referenced by ellipsis‿output‿verbose(), and ellipsis‿output‿vrbs().
|
extern |
|
extern |
|
extern |
int(* ellipsis‿output‿others) (ellipsis‿str32 const *restrict s, FILE *stream) | ( | ellipsis‿str32 const *restrict | s, |
FILE * | stream | ||
) | = ellipsis‿str32‿fputs |
int(* ellipsis‿output‿punctuators) (ellipsis‿str32 const *restrict s, FILE *stream) | ( | ellipsis‿str32 const *restrict | s, |
FILE * | stream | ||
) | = ellipsis‿str32‿fputs |
Referenced by ellipsis‿language‿c‿_Once‿init‿user(), and ellipsis‿output‿thrd().