void Block__statements(VM* vm) { Block* block = (Block*) circa_block(vm->input(0)); if (block == NULL) return vm->throw_str("NULL block"); Value* out = vm->output(); circa_set_list(out, 0); for (int i=0; i < block->length(); i++) if (is_statement(block->get(i))) circa_set_term(circa_append(out), (caTerm*) block->get(i)); }
void Branch__statements(caStack* stack) { Branch* branch = (Branch*) circa_branch(circa_input(stack, 0)); if (branch == NULL) return circa_output_error(stack, "NULL branch"); caValue* out = circa_output(stack, 0); circa_set_list(out, 0); for (int i=0; i < branch->length(); i++) if (is_statement(branch->get(i))) circa_set_term(circa_append(out), (caTerm*) branch->get(i)); }