Question

Je l'ai compris comment utiliser l'esprit - à savoir, je l'ai écrit une grammaire modérément complexe. Je prends toujours l'approche de plus en plus un programme - un sous-système à la fois. J'ai écrit les structures de données pour un modèle complexe qui dispose de 4 types au plus haut niveau.

Je voudrais utiliser la grammaire composé des règles approche pour analyser les types de haut niveau d'un type à la fois - à savoir, je veux écrire 4 avec une grammaire grammaires de haut niveau. Si cela est possible (que je commence à douter), quelqu'un pourrait-il s'il vous plaît poster un extrait ou une référence à un projet qui fait cela.

Une grammaire de niveau supérieur avec 50 règles (possible beaucoup plus) (pour la gestion des erreurs correcte) ne semble pas amusant (code TMP est volatil / lent à compiler, et des messages d'erreur inutiles).

Était-ce utile?

La solution

simplifié d'un programme réel, Qi devraient travailler les mêmes que 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;
    ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top