int isTrue(Expression* cond) { // the only thing false is nil ListNode* nval = cond->isList(); if (nval && nval->isNil()) { return 0; } return 1; }
int APLValue::size() { int sz = 1; for (ListNode* n = shapedata; !n->isNil(); n = n->tail()) { IntegerExpression* extent = n->head()->isInteger(); if (extent) { sz *= extent->val(); } } return sz; }