re2c 2.0

Vào thứ Hai, ngày 20 tháng 2, bản phát hành reXNUMXc, một trình tạo phân tích từ vựng nhanh, đã được phát hành.
Sự thay đổi chính:

  • Đã thêm hỗ trợ cho ngôn ngữ Go
    (được bật với tùy chọn --lang go cho re2c hoặc dưới dạng chương trình re2go độc lập).
    Tài liệu về C và Go được tạo ra từ cùng một văn bản, nhưng khác nhau
    mã ví dụ. Hệ thống con tạo mã trong re2c đã được thiết kế lại hoàn toàn,
    sẽ giúp hỗ trợ các ngôn ngữ mới dễ dàng hơn trong tương lai.

  • Đã thêm hệ thống xây dựng thay thế trên CMake (cảm ơn ligfx!).
    Nỗ lực dịch re2c sang CMake đã được thực hiện trong một thời gian dài, nhưng trước ligfx thì không ai
    đưa ra một giải pháp hoàn chỉnh.
    Hệ thống bản dựng cũ trên Autotools tiếp tục được hỗ trợ và sử dụng,
    và trong tương lai gần không có kế hoạch từ bỏ nó (một phần để không tạo ra
    vấn đề cho các nhà phát triển phân phối, một phần vì hệ thống xây dựng cũ
    ổn định và ngắn gọn hơn cái mới).
    Cả hai hệ thống đều được kiểm tra liên tục như nhau bằng cách sử dụng Travis CI.

  • Đã thêm khả năng đặt mã giao diện trong cấu hình khi sử dụng
    API chung (API chung). Trước đây, hầu hết các API phải được chỉ định trong biểu mẫu
    chức năng hoặc chức năng macro. Bây giờ chúng có thể được đặt ở dạng tùy ý
    các chuỗi có tham số mẫu được đặt tên có dạng @@{name} hoặc chỉ @@ (nếu
    chỉ có một tham số và không có sự mơ hồ). Kiểu API có thể định cấu hình
    re2c:api:style (giá trị hàm chỉ định kiểu chức năng, trong khi giá trị dạng tự do là tùy ý).

  • Cải thiện hoạt động của tùy chọn -c, --start-conditions, cho phép bạn kết hợp nhiều
    các từ vựng được kết nối với nhau trong một khối re2c. Bây giờ bạn có thể sử dụng
    các khối thông thường ngang hàng với các khối có điều kiện và đặt một số khối có điều kiện không liên quan
    khối trong một tập tin.
    Các tùy chọn -r, --reuse được cải tiến (tái sử dụng mã từ một khối
    trong các khối khác) kết hợp với các tùy chọn -c, --start-conditions và -f, --storable-state
    (một từ vựng trạng thái có thể bị gián đoạn tại một vị trí tùy ý
    và tiếp tục thực hiện sau).

  • Đã sửa lỗi trong thuật toán mới được thêm vào để xử lý phần cuối của dữ liệu đầu vào
    (quy tắc EOF), trong một số ít trường hợp dẫn đến xử lý không chính xác
    quy định chồng chéo.

  • Quá trình bootstrap đơn giản hóa. Trước đây, hệ thống xây dựng đã cố gắng tự động tìm rồi
    re2c được xây dựng có thể được sử dụng để xây dựng lại chính nó.
    Điều này dẫn đến sự phụ thuộc không chính xác (vì biểu đồ phụ thuộc hóa ra
    động, điều mà hầu hết các hệ thống xây dựng không thích).
    Bây giờ, để xây dựng lại các từ vựng, cần phải rõ ràng
    định cấu hình hệ thống bản dựng và đặt biến RE2C_FOR_BUILD.

Cảm ơn tất cả những người đã đóng góp cho bản phát hành này!

Nguồn: linux.org.ru

Thêm một lời nhận xét