2010-02-01 40 views
12

Tôi đã tìm ra cách sử dụng tinh thần - tức là, tôi đã viết một ngữ pháp phức tạp vừa phải. Tôi luôn luôn tiếp cận với việc phát triển một chương trình - một hệ thống con tại một thời điểm. Tôi đã viết các cấu trúc dữ liệu cho một mô hình phức tạp có 4 loại ở mức cao nhất.boost :: tinh thần soạn thảo ngữ pháp từ ngữ pháp

Tôi muốn sử dụng grammar composed from rules approach để phân tích các loại cấp cao nhất một loại tại một thời điểm - nghĩa là tôi muốn viết 4 ngữ pháp với một ngữ pháp cấp cao nhất. Nếu điều này là có thể (mà tôi bắt đầu nghi ngờ), ai đó có thể xin vui lòng gửi một đoạn hoặc tham chiếu đến một dự án mà thực hiện điều này.

Một ngữ pháp cấp cao nhất với hơn 50 quy tắc (để xử lý lỗi thích hợp) không có vẻ thú vị (mã TMP dễ bay hơi/chậm để biên dịch và cung cấp thông báo lỗi vô ích).

Trả lời

11

đơn giản hóa từ một chương trình thực tế, Qi phải hoạt động giống như Karma.

template<class Iter> 
struct subgrammar_1 
: karma::grammar<Iter, ...> 
{ 
    ... 
} 

template<class Iter> 
struct top_level_grammar 
: karma::grammar<Iter, ...> 
{ 
    top_level_grammar() : top_level_grammar::base_type(start) 
    { 
     start %= r1 | r2; 
    } 
    karma::rule<Iter, ...> r1; 
    subgrammar_1<Iter> r2; 
    ... 
} 
+0

(+1) Có, đó chính xác là những gì tôi đang tìm kiếm: P, tôi sẽ thử khi tôi có thời gian. –