UpwardIterator2::UpwardIterator2(Block* startingBlock) : lastBlock(NULL) { block = startingBlock; index = block->length() - 1; advanceWhileInvalid(); }
BlockInputIterator::BlockInputIterator(Block* blockIn) : block(blockIn) { index = 0; inputIndex = 0; advanceWhileInvalid(); }
void OuterInputIterator::advance() { blockInputIterator.inputIndex++; advanceWhileInvalid(); }
OuterInputIterator::OuterInputIterator(Block* _block) : blockInputIterator(_block), block(_block) { advanceWhileInvalid(); }
void BlockInputIterator::advance() { inputIndex++; advanceWhileInvalid(); }
void BlockIteratorFlat::advance() { index++; advanceWhileInvalid(); }
BlockIteratorFlat::BlockIteratorFlat(Block* blockIn) : block(blockIn), index(0) { advanceWhileInvalid(); }
void UpwardIterator2::advance() { index--; advanceWhileInvalid(); }
void advance() { branchIterator.index++; advanceWhileInvalid(); }
CaseIterator(Branch* branch) : branchIterator(branch) { advanceWhileInvalid(); }