let parse c =
    let lb = from_channel c in
    try
      Yaparser.main token lb
    with 
        Parsing.Parse_error 
      | Invalid_argument _ -> 
          let (a,b)=(loc lb) in 
            Format.print_string "Syntax error (" ;
            Format.print_string "l" ;
            Format.print_int a.pos_lnum ;
            Format.print_string "c" ;
            Format.print_int (a.pos_cnum-a.pos_bol) ;
            Format.print_string " -> l" ;
            Format.print_int b.pos_lnum ;
            Format.print_string "c" ;
            Format.print_int (b.pos_cnum-b.pos_bol) ;
            Format.print_string ")\n" ;
            raise_located (loc lb) "Syntax error"