2014-11-27 12 views
6

Tôi muốn sử dụng FParsec cho ngôn ngữ giống như python, dựa trên thụt đầu dòng.Có thể phân tích cú pháp các ngôn ngữ "off-side" (fentars-based) với fparsec không?

Tôi hiểu rằng điều này phải được thực hiện trong giai đoạn lexing, nhưng FParsec không có giai đoạn lexing. Có thể sử dụng FParsec, hoặc, làm thế nào có thể ăn nó sau khi lexing?

P.D: Tôi mới ở F #, nhưng có kinh nghiệm bằng các ngôn ngữ khác

Trả lời

9

Có, có thể.

Đây là tác giả của tác giả FParsec, là relevant article. Nếu bạn muốn đi sâu hơn về chủ đề, this paper có thể đáng đọc. Bài báo chỉ ra rằng có nhiều gói cho phân tích nhận thức thụt đầu dòng dựa trên Parsec, bộ phối hợp phân tích cú pháp truyền cảm hứng cho FParsec.

FParsec không có giai đoạn lexing riêng biệt mà thay vào đó nó kết hợp lexing và phân tích cú pháp thành một giai đoạn. Phân tích cú pháp nhận thức thụt đầu dòng IMO tốt hơn nên thực hiện với bộ phối hợp phân tích cú pháp (FParsec) so với trình tạo trình phân tích cú pháp (fslex/fsyacc). Lý do là bạn cần phải theo dõi thụt lề hiện tại theo cách thủ công và báo cáo các thông báo lỗi tốt dựa trên ngữ cảnh.

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