Quelqu'un est-il au courant d'une ressource en ligne où je peux savoir comment écrire un analyseur d'expression simple utilisant Boost :: Spirit?. P>
Je n'ai pas nécessairement besoin d'évaluer l'expression, mais j'ai besoin de l'analyser et de retourner un booléen pour indiquer si l'expression est analogue ou non (par exemple les supports ne correspondant pas, etc.). P>
J'ai besoin de l'analyseur pour pouvoir reconnaître les noms de fonctions (par exemple FOO et FOOBAR), il serait donc également un exemple utile pour m'aider à apprendre à écrire une notation BNF. P>
Les expressions seront des équations arithmétiques normales, c'est-à-dire comprenant les symboles suivants: p>
3 Réponses :
Voici un peu de code de prototype d'esprit que j'avais posé autour de: essayez de l'exécuter et d'entrer dans une ligne comme: p>
Bel exemple! Eh bien, mais c'est vraiment simple i>?
Eh bien, ce n'est pas complètement trivial, mais il ne s'agit toujours que d'une page (peut-être double face!) D'une valeur de code imprimé que j'ai écrit sur un vol intérieur. :)
Je ne suis pas sûr que cela qualifie aussi simple que cela soit simple, mais j'ai utilisé cette URI-grammaire disponible à http://code.google.com/p/uriGrammar/source/browse/trunk/src/uri/gramar.hpp a >. Il ne peut pas être trivial em>, mais au moins sa analyse de quelque chose que vous comprenez probablement déjà (URIS). Lors de la lecture de ces grammaires, il est préférable de lire de bas en haut, car c'est là que les jetons les plus génériques ont tendance à être définis. P>
La version actuelle de Spirit (v2.x) contient toute une série d'exemples de calculatrice à partir du très simple à un interprète mini-C fledged complet. Vous devriez avoir un look là-bas car ce sont un point de départ parfait pour écrire votre propre analyseur d'expression. P>
Avez-vous examiné la documentation et des exemples de spiritueux?
La documentation de l'esprit n'est pas aussi simple que je souhaiterais. J'ai réussi à apprendre par elle, mais un meilleur tutoriel aurait certainement plus facilité l'apprentissage.
Merci Tronic. C'était vraiment mon point de vue lorsque j'ai été traité dans les documents de la page d'accueil Spirit.
Avez-vous récemment examiné le site Web de Spirit ( boost-spirit.com )? Il y a beaucoup de matériel disponible, pas vraiment lié à votre question d'analyse d'expression, mais très utile comme addendum à la documentation principale.
Je suis dans la même situation avec toi. Toute mise à jour de cette question?