static status initialiseEqual(Equal eq, Any left, Any right) { assign(eq, left, left); assign(eq, right, right); return initialiseCode((Code) eq); }
static status initialiseBinaryCondition(BinaryCondition c, Any l, Any r) { initialiseCode((Code) c); assign(c, left, l); assign(c, right, r); succeed; }
static status initialiseAssoc(Assoc a, Name name, Any object) { initialiseCode((Code) a); assign(a, reference, name); assign(a, object, object); succeed; }
static status initialiseWhile(While w, Code cond, Code body) { initialiseCode((Code) w); if ( isDefault(body) ) body = NIL; assign(w, condition, cond); assign(w, body, body); succeed; }
static status initialiseAssignment(Assignment b, Var var, Any value, Name scope) { initialiseCode((Code) b); if ( isDefault(scope) ) scope = NAME_local; assign(b, var, var); assign(b, value, value); assign(b, scope, scope); succeed; }
static status initialiseBlockv(Block b, int argc, Any *argv) { int n; initialiseCode((Code) b); assign(b, members, newObject(ClassChain, EAV)); for(n=0; n<argc; n++) { if ( instanceOfObject(argv[n], ClassVar) ) { if ( isNil(b->parameters) ) assign(b, parameters, newObjectv(ClassCodeVector, 1, &argv[n])); else appendVector(b->parameters, 1, &argv[n]); } else break; } for( ; n < argc; n++ ) appendChain(b->members, argv[n]); succeed; }
status initialiseFunction(Function f) { setFlag(f, F_ACTIVE|F_NOTANY); return initialiseCode((Code) f); }