protected Pair<Integer, SyntacticItem[]> readItems() throws IOException {
		// first, write magic number
		checkHeader();
		// second, determine number of items
		int size = in.read_uv();
		// third, determine the root item
		int root = in.read_uv();
		//
		Bytecode[] items = new Bytecode[size];
		// third, read abstract syntactic items
		for (int i = 0; i != items.length; ++i) {
			items[i] = readItem();
		}
		//
		return new Pair<>(root, constructItems(items));
	}
protected Pair<Integer, SyntacticItem[]> readItems() throws IOException {
		
		checkHeader();
		
		int size = in.read_uv();
		
		int root = in.read_uv();
		
		Bytecode[] items = new Bytecode[size];
		
		for (int i = 0; i != items.length; ++i) {
			items[i] = readItem();
		}
		
		return new Pair<>(root, constructItems(items));
	}
protected Pair < Integer , SyntacticItem [ ] > readItems ( ) throws IOException { // first, write magic number checkHeader ( ) ; // second, determine number of items int size = in . read_uv ( ) ; // third, determine the root item int root = in . read_uv ( ) ; // Bytecode [ ] items = new Bytecode [ size ] ; // third, read abstract syntactic items for ( int i = 0 ; i != items . length ; ++ i ) { items [ i ] = readItem ( ) ; } // return new Pair <> ( root , constructItems ( items ) ) ; }
Read all the items in this heap, returning the identified root item and an
array of all items contained therein.

@return
@throws IOException
Read all the items in this heap returning the identified root item and an array of all items contained therein .