let lookup_location p = 
  let rec iter = function
      [] -> assert false
    | (pos, loc) :: tl ->
        if p >= pos then loc
        else iter tl  
  in
  iter !lno_table