2010-02-01 15 views
12

Wymyśliłem, jak używać ducha - tj. Napisałem umiarkowanie złożoną gramatykę. Zawsze stosuję podejście do rozwijania programu - jednego podsystemu na raz. Napisałem struktury danych dla złożonego modelu, który ma 4 typy na najwyższym poziomie.doładowanie :: duchowe komponowanie gramatyki od gramatyki

Chciałbym użyć grammar composed from rules approach do parsowania typów najwyższego poziomu po jednym typie na raz - tzn. Chcę napisać 4 gramatyki z gramatyką najwyższego poziomu. Jeśli jest to możliwe (z czym zaczynam wątpić), czy ktoś może opublikować fragment lub odniesienie do projektu, który to robi.

Jedna gramatyka najwyższego poziomu z 50+ (możliwe o wiele więcej) reguł (dla poprawnej obsługi błędów) nie brzmi jak zabawa (kod TMP jest niestabilny/wolny w kompilacji i zapewnia bezużyteczne komunikaty o błędach).

Odpowiedz

11

uproszczone od rzeczywistego programu Qi powinien działać tak samo jak Karmy.

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) Tak, właśnie tego szukałem: P, spróbuję, kiedy będę miał czas. –

Powiązane problemy