public HeaderParser subsequence(int start,int end){
  if (start == 0 && end == nkeys) {
    return this;
  }
  if (start < 0 || start >= end || end > nkeys)   throw new IllegalArgumentException("invalid start or end");
  HeaderParser n=new HeaderParser();
  n.tab=new String[asize][2];
  n.asize=asize;
  System.arraycopy(tab,start,n.tab,0,(end - start));
  n.nkeys=(end - start);
  return n;
}

public HeaderParser subsequence ( int start , int end ) { if ( start == 0 && end == nkeys ) { return this ; } if ( start < 0 || start >= end || end > nkeys ) throw new IllegalArgumentException ( "invalid start or end" ) ; HeaderParser n = new HeaderParser ( ) ; n . tab = new String [ asize ] [ 2 ] ; n . asize = asize ; System . arraycopy ( tab , start , n . tab , 0 , ( end - start ) ) ; n . nkeys = ( end - start ) ; return n ; }
create a new headerparser from this , whose keys ( and corresponding values ) range from " start " to " end - 1 "
