let identifier x =
  let range a c b = a <= c && c <= b in
  let buffer = Buffer.create 80 in
  for i=0 to String.length x - 1 do
    let c = x.[i] in
    if range 'a' c 'z'
      || range 'A' c 'Z'
      || (i > 0 && range '0' c '9')
      || c = '_'
    then
      Buffer.add_char buffer c ;
  done ;
  Buffer.contents buffer