2010-03-13 44 views
7

Trước đây attoparsec được đề xuất cho tôi để phân tích các định dạng tệp nhị phân phức tạp. Trong khi tôi có thể tìm thấy các ví dụ về phân tích cú pháp attoparsec HTTP, về cơ bản là dựa trên văn bản, tôi không thể tìm thấy một ví dụ phân tích nhị phân thực, ví dụ, gói TCP hoặc tệp hình ảnh hoặc mp3. Ai đó có thể đăng một số mã hoặc con trỏ đến một số mã mà thực hiện điều này bằng cách sử dụng attoparsec?Ví dụ về attoparsec trong phân tích cú pháp định dạng tệp nhị phân?

Trả lời

9

Có rất ít hoặc không có ví dụ về attoparsec để phân tích cú pháp định dạng nhị phân, như phân tích cú pháp kiểu phân tích cú pháp chủ yếu cho định dạng văn bản, chứ không phải định dạng nhị phân (mặc dù không có lý do chính đáng cho việc này).

Đối với phân tích nhị phân thẳng, xem Data.Binary, ví dụ bao gồm:

và các ví dụ trong Real World Haskell.

Ví dụ chính cho attoparsec tại thời điểm này là trình phân tích cú pháp RFC2616 (HTTP).

+0

Coi trọng "không có lý do chính đáng" bình luận vì tôi không hiểu tại sao một phân tích cú pháp là phù hợp hơn cho văn bản và ít hơn cho nhị phân. Dường như với tôi chỉ là hợp lý mà một tập tin nhị phân có thể có nhiều đường dẫn và cần backtracking, vv – me2

+0

Chắc chắn, nó chỉ là attoparsec là rất mới, bạn sẽ được đẩy ra trên của riêng bạn. Chỉ cần sử dụng Data.Binary như mọi người khác, và bạn sẽ được thực hiện ngay bây giờ :) –

+0

liên kết đó là dành cho phiên bản Parsec, phiên bản Attoparsec có tại đây: http://bitbucket.org/bos/attoparsec/src/tip/ ví dụ/RFC2616.hs –

Các vấn đề liên quan