22 char *(*blackbox_String)(blackbox *
b,
void *d);
26 void *(*blackbox_Init)(blackbox *
b);
28 void *(*blackbox_Copy)(blackbox *
b,
void *d);
53#define BB_LIKE_LIST(B) ((B)->properties &1)
struct blackbox_list * getBlackboxTypes()
return array of all define types.
int setBlackboxStuff(blackbox *bb, const char *n)
define a new type
BOOLEAN blackboxDefaultOp2(int, leftv, leftv, leftv)
default procedure blackboxDefaultOp2, to be called as "default:" branch
const char * getBlackboxName(const int t)
return the name to the type given by t (r/o)
void removeBlackboxStuff(const int rt)
BOOLEAN blackboxDefaultOp3(int, leftv, leftv, leftv, leftv)
default procedure blackboxDefaultOp3, to be called as "default:" branch
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
void blackbox_default_Print(blackbox *b, void *d)
default procedure blackbox_default_Print: print the string
int blackboxIsCmd(const char *n, int &tok)
used by scanner: returns ROOT_DECL for known types (and the type number in tok)
void printBlackboxTypes()
list all defined type (for debugging)
BOOLEAN blackboxDefaultOpM(int op, leftv res, leftv args)
default procedure blackboxDefaultOpM, to be called as "default:" branch
BOOLEAN blackboxDefaultOp1(int op, leftv l, leftv r)
default procedure blackboxDefaultOp1, to be called as "default:" branch
struct for containing list of blackbox names and the number of them.
BOOLEAN(*) blackbox_Op3(int op, leftv l, leftv r1, leftv r2, leftv r3)
interpreter: tertiary op: op(r1,r2,r3)
BOOLEAN(*) blackbox_CheckAssign(blackbox *b, leftv l, leftv r)
is an assign of r to l (part of b) impossible?
BOOLEAN(*) blackbox_deserialize(blackbox **b, void **d, si_link f)
deserialize
BOOLEAN(*) blackbox_Op1(int op, leftv l, leftv r)
interpreter: unary operations op(r), r(), ...
void * data
additional type info
void(*) blackbox_Print(blackbox *b, void *d)
print the object: default: use string representation
BOOLEAN(*) blackbox_Op2(int op, leftv l, leftv r1, leftv r2)
interpreter: binary operations: op(r1,r2), r1 op r2,...
BOOLEAN(*) blackbox_Assign(leftv l, leftv r)
interpreter assign: l:=r
void(*) blackbox_destroy(blackbox *b, void *d)
destroy the object: b points to blackbox_struct, d to data
int properties
additional general properties
BOOLEAN(*) blackbox_serialize(blackbox *b, void *d, si_link f)
serialize
BOOLEAN(*) blackbox_OpM(int op, leftv l, leftv r)
interpreter: operations with undefined number of operands
int name
New type name for int.