boost :: spirito comporre grammatiche da grammatiche
-
24-09-2019 - |
Domanda
ho capito come utilizzare lo spirito - vale a dire, ho scritto una grammatica complessa moderatamente. Ho sempre prendere l'approccio di crescere un programma - un sottosistema alla volta. Ho scritto le strutture di dati per un modello complesso che dispone di 4 tipi di altissimo livello.
Vorrei utilizzare il grammatica composto dalle regole avvicinano per analizzare il tipo tipi di alto livello alla volta - vale a dire, voglio scrivere 4 grammatiche con livello di grammatica quella superiore. Se questo è possibile (che sto cominciando a dubitare), qualcuno potrebbe si prega di inviare un frammento o un riferimento a un progetto che fa questo.
Un alto livello di grammatica con 50+ (molto possibile di più) le regole (per la corretta gestione degli errori) non suona come divertimento (codice TMP è volatile / lento per compilare, e fornisce messaggi di errore inutili).
Soluzione
semplificata da un programma vero e proprio, Qi dovrebbe funzionare lo stesso di 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;
...
}