2012-01-16 34 views

Trả lời

3

Tôi không nghĩ API GHC hiển thị giao diện AST (có thể sai mặc dù), nhưng mẫu Haskell thực hiện. Nếu bạn xây dựng các biểu thức bằng cách sử dụng cấu trúc Language.Haskell.THExp, bạn có thể tạo các hàm/khai báo và sử dụng chúng theo cú pháp $(someTHFunction).

Thông báo trước khá lớn là TH chỉ chạy ở thời gian biên dịch, vì vậy bạn cần phải tạo trước mọi thứ. Nếu bạn muốn sử dụng TH vào thời gian chạy, tôi nghĩ bạn cần phải in mẫu có chứa AST, sau đó sử dụng API GHC trên chuỗi kết quả.

+1

Ngoài ra tôi có thể tạo mã nguồn mẫu Haskell. Điều này có thể được coi là sự thỏa hiệp giữa việc tạo ra các biểu thức AST và tạo ra nguồn văn bản Haskell. – modular

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