///|
/// Parse gasp table: returns array of GaspRange records
pub fn parse_gasp(reader : BinaryReader, offset : Int) -> Array[GaspRange] {
  let _version = reader.peek_uint16_at(offset)
  let num_ranges = reader.peek_uint16_at(offset + 2)
  let ranges : Array[GaspRange] = Array::new(capacity=num_ranges)
  for i = 0; i < num_ranges; i = i + 1 {
    let rec_offset = offset + 4 + i * 4
    let max_ppem = reader.peek_uint16_at(rec_offset)
    let behavior = reader.peek_uint16_at(rec_offset + 2)
    ranges.push({ max_ppem, behavior })
  }
  ranges
}