#include <stdlib.h>
#include <threads.h>
#include "language/ellipsis-special.h"
#include "ellipsis-tokenize.h"
#include "ellipsis-include.h"
#include "language/empty/ellipsis-special-empty.h"
#include "language/directive/ellipsis-directive.h"
#include <stdio.h>
#include <stdint.h>
Data Structures | |
struct | ellipsis‿tokenize‿info |
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 | |
void | ellipsis‿tokenize‿string (ellipsis‿token‿list tl[restrict static 1], char const all8[restrict static 1], ellipsis‿special‿find *find) |
static int | ellipsis‿tokenize‿thrd (void *p) |
thrd_t | ellipsis‿tokenize‿thread (ellipsis‿token‿list out[static 1], FILE *inp) |
void | ellipsis‿tokenize (ellipsis‿token‿list *out, FILE *inp, size_t limit) |
static char * | get_a_line (size_t *ml, char **line, FILE *stream, size_t limit[restrict static 1]) |
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 |
ellipsis‿special‿find * | tokenizer_find = ellipsis‿special‿empty‿find |
#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 |
void ellipsis‿tokenize‿string | ( | ellipsis‿token‿list | tl[restrict static 1], |
char const | all8[restrict static 1], | ||
ellipsis‿special‿find * | find | ||
) |
References ellipsis‿token::contents, ellipsis‿lex‿nonspace(), ellipsis‿lex‿space(), ellipsis‿token‿list‿append(), and ellipsis‿token::space.
Referenced by ellipsis‿directive‿environment(), ellipsis‿include‿repair(), ellipsis‿macros‿_Once‿init‿user(), and main().
|
static |
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‿directive‿marker_start, ellipsis‿token‿list‿append(), ellipsis‿token‿list‿destroy(), ellipsis‿token‿list‿push(), ellipsis‿tokenize(), ellipsis‿tokenize‿info::inp, nominal, and ellipsis‿tokenize‿info::tokenlist.
Referenced by ellipsis‿tokenize‿thread().
thrd_t ellipsis‿tokenize‿thread | ( | ellipsis‿token‿list | out[static 1], |
FILE * | inp | ||
) |
References ellipsis‿tokenize‿thrd(), ellipsis_alloc, and ELLIPSIS_CONTRACT.
Referenced by main().
void ellipsis‿tokenize | ( | ellipsis‿token‿list * | out, |
FILE * | inp, | ||
size_t | limit | ||
) |
start inner defer anchor at level 1
defer needs braces and a semicolon
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
end inner defer anchor, level 3
start inner defer anchor at level 3
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 ellipsis‿str32::array, ellipsis‿str8::array, ellipsis‿special::cat, ellipsis‿token::cat, ellipsis‿special::closer8, comment, ellipsis‿token::contents, ellipsis‿token::data, ellipsis‿category‿getname(), ellipsis‿include‿fclose(), ellipsis‿infra‿fileno(), ellipsis‿infra‿line(), ellipsis‿infra‿newline(), ellipsis‿lex‿nonspace(), ellipsis‿lex‿space(), ellipsis‿malloc, ellipsis‿special‿decoration‿find, ellipsis‿special‿delete(), ellipsis‿special‿directive‿lex(), ellipsis‿special‿scan‿str32(), ellipsis‿special‿scan‿str8(), ellipsis‿str32‿delete(), ellipsis‿str8‿delete(), ellipsis‿token‿list‿append(), ellipsis‿token‿list‿close(), ellipsis‿token‿list‿destroy(), ellipsis‿token‿list‿flush(), ellipsis‿token‿list‿open(), ELLIPSIS_DIAGNOSTIC, ELLIPSIS_WARNING, get_a_line(), ellipsis‿str32::length, ellipsis‿str8::length, line, ellipsis‿token::space, ellipsis‿special::starter8, tokenizer_find, and verbatim.
Referenced by ellipsis‿directive‿include_common(), ellipsis‿language‿c‿_Once‿init‿user(), ellipsis‿language‿html‿_Once‿init‿user(), ellipsis‿language‿lex‿_Once‿init‿user(), ellipsis‿language‿markdown‿_Once‿init‿user(), ellipsis‿tokenize‿thrd(), and main().
|
static |
References ellipsis‿realloc, and line.
Referenced by ellipsis‿tokenize().
|
extern |
|
extern |
|
extern |
ellipsis‿special‿find * tokenizer_find = ellipsis‿special‿empty‿find |