eĿlipsis
a language independent preprocessor
 
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Loading...
Searching...
No Matches
ellipsis-token.c File Reference
#include <stdlib.h>
#include <threads.h>
#include "language/ellipsis-special.h"
#include <stdio.h>
#include <stdint.h>
#include "ellipsis-token.h"
#include "ellipsis-tlist.h"
#include "utils/ellipsis-error.h"
Include dependency graph for ellipsis-token.c:

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_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 garb_start()
 
#define STRINGIFY(...)   STRINGIFY_(__VA_ARGS__)
 
#define STRINGIFY_(...)   #__VA_ARGS__
 

Typedefs

typedef struct ellipsis‿contracts‿is_ice ellipsis‿contracts‿is_ice
 

Functions

static void ellipsis‿token‿_Once‿atexit‿callback (void)
 
static void ellipsis‿token‿_Once‿init‿callback (void)
 
static void ellipsis‿token‿_Once‿init‿user (void)
 
void ellipsis‿token‿_Once‿init (void)
 
ellipsis‿tokenellipsis‿token‿alloc‿_Inner (void)
 
ellipsis‿tokenellipsis‿token‿cpy‿_Inner (ellipsis‿token const *t)
 
ellipsis‿tokenellipsis‿token‿deepcpy‿_Inner (ellipsis‿token const *t)
 
void ellipsis‿token‿delete‿_Inner (ellipsis‿token t[static 1])
 
void ellipsis‿token‿delete_all‿_Inner (ellipsis‿token act[static 1])
 
void ellipsis‿token‿destroy‿_Inner (ellipsis‿token t[static 1])
 
bool ellipsis‿token‿equiv‿_Inner (ellipsis‿token *a, ellipsis‿token *b)
 
static ellipsis‿tokenellipsis‿token‿local_cpy (ellipsis‿token const *t)
 
ellipsis‿tokenellipsis‿token‿nominal‿_Inner (char const id[static 1])
 
ellipsis‿tokenellipsis‿token‿number‿_Inner (vtype numb)
 
ellipsis‿tokenellipsis‿token‿string‿_Inner (char const str[static 1])
 
static void garb_dtor (void *t)
 

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 void(*const ellipsis‿token‿_Once‿at_quick_exit‿pointer )(void)
 
static void(*const ellipsis‿token‿_Once‿atexit‿pointer )(void) = ellipsis‿token‿_Once‿atexit‿callback
 
static thread_local ellipsis‿tokengarb
 
static thread_local bool garb_canary
 
static tss_t garb_key
 

Detailed Description

Warning
This is a file generated by eĿlipsis version 20250309, do not modify

Macro Definition Documentation

◆ ELLIPSIS_CONTRACT

#define ELLIPSIS_CONTRACT (   COUNT,
  COND,
  ACTION,
  VERB,
  CSTR,
  CTYPE,
  ... 
)
Value:
\
do { \
_Generic( \
default: ELLIPSIS_CONTRACT_IMPL(COUNT, COND, ACTION, VERB, CSTR, CTYPE __VA_OPT__(,) __VA_ARGS__));\
} while(false)
struct ellipsis‿contracts‿is_ice ellipsis‿contracts‿is_ice
Definition ellipsis-expression.c:24
#define __VA_OPT__
A pseudo macro that cannot be redefined.
Definition ellipsis-predefined.dirs:89
#define ELLIPSIS_TEST_ICE(...)
Definition ellipsis-token.c:45
#define ELLIPSIS_CONTRACT_CHECK_STATIC(CTYPE, COND, CSTR,...)
Definition ellipsis-token.c:53
#define ELLIPSIS_CONTRACT_IMPL(COUNT, COND, ACTION, VERB, CSTR, CTYPE,...)
Definition ellipsis-token.c:35

◆ ELLIPSIS_CONTRACT_CHECK_STATIC

#define ELLIPSIS_CONTRACT_CHECK_STATIC (   CTYPE,
  COND,
  CSTR,
  ... 
)
Value:
({\
static_assert(ELLIPSIS_CONTRACT_ICE_OR_TRUE(COND), \
"compile time violation of " CTYPE " " CSTR \
__VA_OPT__(", ") __VA_ARGS__ );\
})
#define ELLIPSIS_CONTRACT_ICE_OR_TRUE(...)
Definition ellipsis-token.c:47

◆ ELLIPSIS_CONTRACT_ICE_OR_TRUE

#define ELLIPSIS_CONTRACT_ICE_OR_TRUE (   ...)
Value:
_Generic( \
ELLIPSIS_TEST_ICE(__VA_ARGS__), \
ellipsis‿contracts‿is_ice*: (__VA_ARGS__), \
default: true)
#define true
The constant true made accessible to the preprocessor.
Definition ellipsis-builtins.dirs:32

◆ ELLIPSIS_CONTRACT_IMPL

#define ELLIPSIS_CONTRACT_IMPL (   COUNT,
  COND,
  ACTION,
  VERB,
  CSTR,
  CTYPE,
  ... 
)
Value:
(((false) || (COND)) \
? (void)0 \
: (ELLIPSIS_CONTRACT_VIOLATION(COUNT, VERB, CTYPE, CSTR __VA_OPT__(,) __VA_ARGS__) \
, ((false) \
? (void)0 \
: ACTION())))
#define ELLIPSIS_CONTRACT_VIOLATION(COUNT, VERB, CTYPE, CSTR,...)
Definition ellipsis-token.c:26

◆ ELLIPSIS_CONTRACT_VIOLATION

#define ELLIPSIS_CONTRACT_VIOLATION (   COUNT,
  VERB,
  CTYPE,
  CSTR,
  ... 
)
Value:
({\
static char const contract_format_ ## COUNT[] = \
__FILE__ ":" STRINGIFY(__LINE__) ": violation of " CTYPE " `" CSTR "`" __VA_OPT__(", ") __VA_ARGS__ "\n";\
(VERB \
? fputs(contract_format_ ## COUNT, stderr) \
: 0);\
})
#define __FILE__
The current source file as required by the C standard.
Definition ellipsis-builtins.dirs:21
#define __LINE__
The current physical source line as required by the C standard.
Definition ellipsis-builtins.dirs:24
#define STRINGIFY(...)
Definition ellipsis-token.c:23

◆ ELLIPSIS_TEST_ICE

#define ELLIPSIS_TEST_ICE (   ...)    (false ? ELLIPSIS_TO_VOIDS(__VA_ARGS__) : (ellipsis‿contracts‿is_ice*)nullptr)

◆ ELLIPSIS_TO_VOIDS

#define ELLIPSIS_TO_VOIDS (   ...)    ((void*)((uintptr_t)((__VA_ARGS__)-(__VA_ARGS__))))

◆ garb_start

#define garb_start ( )
Value:
do {\
\
if (!garb_canary) {\
\
[[maybe_unused]] extern bool const ellipsis‿token‿_Once‿strong;void ellipsis‿token‿_Once‿init(void);GNU_ATTR_USED [[__maybe_unused__]] static char const ONCE_ID_2_1[] = "ONCE_DEPEND_MARKER: " __FILE__" -> " "ellipsis∷token";ellipsis‿token‿_Once‿init();\
tss_set(garb_key, &garb);\
garb_canary = true;\
}\
}while (false)
#define GNU_ATTR_USED
Definition ellipsis-error.h:39
void ellipsis‿token‿_Once‿init(void)
Definition ellipsis-token.c:127
static thread_local bool garb_canary
Definition ellipsis-token.c:100
static tss_t garb_key
Definition ellipsis-token.c:99
static thread_local ellipsis‿token * garb
Definition ellipsis-token.c:101

◆ STRINGIFY

#define STRINGIFY (   ...)    STRINGIFY_(__VA_ARGS__)

◆ STRINGIFY_

#define STRINGIFY_ (   ...)    #__VA_ARGS__

Typedef Documentation

◆ ellipsis‿contracts‿is_ice

Function Documentation

◆ ellipsis‿token‿_Once‿atexit‿callback()

static void ellipsis‿token‿_Once‿atexit‿callback ( void  )
static

References garb, garb_dtor(), and garb_key.

Here is the call graph for this function:

◆ ellipsis‿token‿_Once‿init‿callback()

static void ellipsis‿token‿_Once‿init‿callback ( void  )
static

References __FILE__, ellipsis‿token‿_Once‿at_quick_exit‿pointer, ellipsis‿token‿_Once‿atexit‿pointer, ellipsis‿token‿_Once‿init‿user(), and GNU_ATTR_USED.

Referenced by ellipsis‿token‿_Once‿init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ellipsis‿token‿_Once‿init‿user()

static void ellipsis‿token‿_Once‿init‿user ( void  )
static

References garb_dtor(), and garb_key.

Referenced by ellipsis‿token‿_Once‿init‿callback().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ellipsis‿token‿_Once‿init()

void ellipsis‿token‿_Once‿init ( void  )

References ellipsis‿token‿_Once‿init‿callback().

Referenced by ellipsis‿include‿_Once‿init‿user(), ellipsis‿infra‿_Once‿init‿user(), ellipsis‿language‿c‿_Once‿init‿user(), ellipsis‿language‿html‿_Once‿init‿user(), ellipsis‿language‿markdown‿_Once‿init‿user(), ellipsis‿macros‿_Once‿init‿user(), ellipsis‿pragma‿_Once‿init‿user(), ellipsis‿special‿c‿magic‿_Once‿init‿user(), ellipsis‿special‿c_comment‿magic‿_Once‿init‿user(), ellipsis‿special‿c_directive‿magic‿_Once‿init‿user(), ellipsis‿special‿c_directive1‿magic‿_Once‿init‿user(), ellipsis‿special‿c_include‿magic‿_Once‿init‿user(), ellipsis‿special‿c_pragma‿magic‿_Once‿init‿user(), ellipsis‿special‿decoration‿magic‿_Once‿init‿user(), ellipsis‿special‿directive‿_Once‿init‿user(), ellipsis‿special‿directive‿magic‿_Once‿init‿user(), ellipsis‿special‿directive_define‿magic‿_Once‿init‿user(), ellipsis‿special‿directive_if‿magic‿_Once‿init‿user(), ellipsis‿special‿directive_include‿magic‿_Once‿init‿user(), ellipsis‿special‿empty‿magic‿_Once‿init‿user(), ellipsis‿special‿html‿magic‿_Once‿init‿user(), ellipsis‿special‿html_comment‿magic‿_Once‿init‿user(), ellipsis‿special‿html_directive‿magic‿_Once‿init‿user(), ellipsis‿special‿lex‿magic‿_Once‿init‿user(), ellipsis‿special‿lex_comment‿magic‿_Once‿init‿user(), ellipsis‿special‿lex_directive‿magic‿_Once‿init‿user(), ellipsis‿special‿markdown‿magic‿_Once‿init‿user(), and ellipsis‿special‿markdown_decoration‿magic‿_Once‿init‿user().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ellipsis‿token‿alloc‿_Inner()

ellipsis‿token * ellipsis‿token‿alloc‿_Inner ( void  )

References ellipsis‿malloc, garb, and garb_start.

Referenced by ellipsis‿token::ellipsis‿token‿alloc‿_Ctra().

Here is the caller graph for this function:

◆ ellipsis‿token‿cpy‿_Inner()

◆ ellipsis‿token‿deepcpy‿_Inner()

ellipsis‿token * ellipsis‿token‿deepcpy‿_Inner ( ellipsis‿token const *  t)

References ellipsis‿token‿local_cpy(), ELLIPSIS_CONTRACT, and ellipsis‿token::next.

Referenced by ellipsis‿token::ellipsis‿token‿deepcpy‿_Ctra().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ellipsis‿token‿delete‿_Inner()

void ellipsis‿token‿delete‿_Inner ( ellipsis‿token  t[static 1])

References garb, and garb_start.

Referenced by ellipsis‿token::ellipsis‿token‿delete‿_Ctra().

Here is the caller graph for this function:

◆ ellipsis‿token‿delete_all‿_Inner()

void ellipsis‿token‿delete_all‿_Inner ( ellipsis‿token  act[static 1])

Referenced by ellipsis‿token::ellipsis‿token‿delete_all‿_Ctra().

Here is the caller graph for this function:

◆ ellipsis‿token‿destroy‿_Inner()

◆ ellipsis‿token‿equiv‿_Inner()

bool ellipsis‿token‿equiv‿_Inner ( ellipsis‿token a,
ellipsis‿token b 
)

◆ ellipsis‿token‿local_cpy()

◆ ellipsis‿token‿nominal‿_Inner()

ellipsis‿token * ellipsis‿token‿nominal‿_Inner ( char const  id[static 1])

References ellipsis‿str32‿construct(), and nominal.

Referenced by ellipsis‿token::ellipsis‿token‿nominal‿_Ctra().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ellipsis‿token‿number‿_Inner()

ellipsis‿token * ellipsis‿token‿number‿_Inner ( vtype  numb)

References ellipsis‿str32‿construct(), and numeral.

Referenced by ellipsis‿token::ellipsis‿token‿number‿_Ctra().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ellipsis‿token‿string‿_Inner()

ellipsis‿token * ellipsis‿token‿string‿_Inner ( char const  str[static 1])

References ellipsis‿str32‿construct().

Referenced by ellipsis‿token::ellipsis‿token‿string‿_Ctra().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ garb_dtor()

static void garb_dtor ( void *  t)
static

Referenced by ellipsis‿token‿_Once‿atexit‿callback(), and ellipsis‿token‿_Once‿init‿user().

Here is the caller graph for this function:

Variable Documentation

◆ ellipsis‿contracts‿ignore‿dynamic

thread_local bool volatile ellipsis‿contracts‿ignore‿dynamic
extern

◆ ellipsis‿contracts‿proceed‿dynamic

thread_local bool volatile ellipsis‿contracts‿proceed‿dynamic
extern

◆ ellipsis‿contracts‿verbose‿dynamic

thread_local bool volatile ellipsis‿contracts‿verbose‿dynamic
extern

◆ ellipsis‿token‿_Once‿at_quick_exit‿pointer

void(*const ellipsis‿token‿_Once‿at_quick_exit‿pointer) (void) ( void  )
static

◆ ellipsis‿token‿_Once‿atexit‿pointer

static void(*) const ellipsis‿token‿_Once‿atexit‿pointer(void) ( void  ) = ellipsis‿token‿_Once‿atexit‿callback
static

◆ garb

◆ garb_canary

thread_local bool garb_canary
static

◆ garb_key