38#define EX_VERSION 20000101L
44#define EX_CHARSTRING (1<<0)
45#define EX_UNDECLARED (1<<9)
53#define EX_ID(n, l, i, t) {{0}, (l), (i), (t), 0, 0, 0, 0, n}
55#define DELETE_T MINTOKEN
57#define INTEGRAL(t) ((t)>=INTEGER&&(t)<=CHARACTER)
58#define BUILTIN(t) ((t) > MINTOKEN)
75#define TMASK ((1<<TBITS)-1)
76#define A(n,t) ((t)<<((n)*TBITS))
77#define N(t) ((t)>>=TBITS)
79#define exalloc(p,n) vmalloc((p)->vm, (n))
143#ifdef _EX_DATA_PRIVATE_
158 char* (*string)(
char**);
162#ifdef _EX_NODE_PRIVATE_
180 char *(*typename)(long);
206#ifdef _EX_PROG_PRIVATE_
234__attribute__((
format(printf, 1, 2)))
236extern void exerror(
const char*, ...);
238__attribute__((
format(printf, 1, 2)))
240extern void exwarn(
const char *, ...);
252extern char*
extype(
long int);
267__attribute__((
format(printf, 2, 3)))
276 int len = vsnprintf(
NULL, 0, fmt, ap2);
277 assert(
len >= 0 &&
"invalid vsnprintf call");
289 (void)vsnprintf(
s, (
size_t)
len, fmt, ap);
#define _EX_NODE_PRIVATE_
#define _EX_PROG_PRIVATE_
#define _EX_DATA_PRIVATE_
int exisAssign(Exnode_t *)
void exerror(const char *,...)
Extype_t exeval(Expr_t *, Exnode_t *, void *)
void * exstralloc(Expr_t *, size_t)
void(* Exerror_f)(Expr_t *, Exdisc_t *, int, const char *,...)
void exdump(Expr_t *, Exnode_t *, agxbuf *)
Exnode_t * exnoncast(Exnode_t *)
Exnode_t * excast(Expr_t *, Exnode_t *, long, Exnode_t *, int)
static char * exprintf(Vmalloc_t *vm, const char *fmt,...)
char * excontext(Expr_t *, char *, int)
char * exstring(Expr_t *, char *)
void exclose(Expr_t *, int)
Exnode_t * exnewnode(Expr_t *, long, bool, long, Exnode_t *, Exnode_t *)
void(* Exexit_f)(void *, int)
void exfreenode(Expr_t *, Exnode_t *)
char * extypename(Expr_t *p, long)
void exwarn(const char *,...)
Expr_t * exopen(Exdisc_t *)
int expush(Expr_t *, const char *, int, FILE *)
int excomp(Expr_t *p, const char *name, int line, FILE *fp, char *prefix)
Extype_t exzero(long int)
Exnode_t * exexpr(Expr_t *, const char *, Exid_t *, int)
static double len(glCompPoint p)
require define api prefix
GVIO_API const char * format
Extype_t(* reff)(Expr_t *, Exnode_t *, Exid_t *, Exref_t *)
Extype_t(* keyf)(Extype_t, long)
int(* castf)(Expr_t *, Exnode_t *, const char *, int, Exid_t *, int, Exdisc_t *)
int(* convertf)(Exnode_t *, long, int)
int(* binaryf)(Exnode_t *, Exnode_t *, Exnode_t *, int)
Extype_t(* getf)(Expr_t *, Exnode_t *, Exid_t *, Exref_t *, void *, int, Exdisc_t *)
int(* stringof)(Expr_t *, Exnode_t *, int)
int(* setf)(Expr_t *, Exnode_t *, Exid_t *, Exref_t *, void *, Extype_t)
void * local
user defined local stuff
long long(* integer)(char **)
INTEGER|UNSIGNED return value.
double(* floating)(char **)
bool binary
data.operand.{left,right} ok
union Exnode_s::@88 compiled
struct Exdata_u::@87 variable
struct Exdata_u::@84 constant
struct Exdata_u::@85 operand
struct Exdata_u::@86 select
void * vmalloc(Vmalloc_t *vm, size_t size)