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,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))
144#ifdef _EX_DATA_PRIVATE_
160 char* (*string)(
char**);
164#ifdef _EX_NODE_PRIVATE_
182 char *(*typename)(long);
208#ifdef _EX_PROG_PRIVATE_
236__attribute__((
format(printf, 1, 2)))
238extern void exerror(
const char*, ...);
240__attribute__((
format(printf, 1, 2)))
242extern void exwarn(
const char *, ...);
254extern char*
extype(
long int);
269__attribute__((
format(printf, 2, 3)))
278 int len = vsnprintf(
NULL, 0, fmt, ap2);
279 assert(
len >= 0 &&
"invalid vsnprintf call");
291 (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 *,...)
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,...)
Exnode_t * exnewnode(Expr_t *, int, int, long, Exnode_t *, Exnode_t *)
char * excontext(Expr_t *, char *, int)
char * exstring(Expr_t *, char *)
void exclose(Expr_t *, int)
void exfreenode(Expr_t *, Exnode_t *)
char * extypename(Expr_t *p, long)
void exwarn(const char *,...)
void(* Exexit_f)(Expr_t *, Exdisc_t *, int)
Expr_t * exopen(Exdisc_t *)
int exdump(Expr_t *, Exnode_t *, agxbuf *)
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 **)
void * local
user defined local stuff
union Exnode_s::@91 compiled
struct Exdata_u::@87 constant
struct Exdata_u::@88 operand
struct Exdata_u::@89 select
struct Exdata_u::@90 variable
void * vmalloc(Vmalloc_t *vm, size_t size)