11
votes

Exemple d'expression simple exemple en utilisant Boost :: Spirit?

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?.

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.).

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.

Les expressions seront des équations arithmétiques normales, c'est-à-dire comprenant les symboles suivants:

  1. Suppression / Brokets de fermeture
  2. Opérateurs arithmétiques
  3. Noms de fonction reconnus et recherchez leurs arguments requis

5 commentaires

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?


3 Réponses :


6
votes

Voici un peu de code de prototype d'esprit que j'avais posé autour de: xxx

essayez de l'exécuter et d'entrer dans une ligne comme: xxx


2 commentaires

Bel exemple! Eh bien, mais c'est vraiment simple ?


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. :)




5
votes

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.


0 commentaires