J'ai rapidement écrit un interpréteur pour une sorte de langage de programmation expérimental que j'ai trouvé, en PHP (oui, en PHP). La langue elle-même n'a rien de vraiment spécial, je voulais juste essayer.Hiérarchie d'instructions dans les langages de programmation
J'ai les choses de base qui fonctionnent (Hello World, entrée en sortie, manipulation de chaînes, arithmétique) mais je suis coincé avec la gestion des blocs et des instructions groupées. Ce que je veux dire est: PHP et la plupart des autres langues vous permettent de faire ceci: ((2+2)*(8+2)+2)
, bien sûr, non seulement avec des calculs mathématiques.
Ma structure de programme se compose actuellement d'un tableau multidimensionnel construit comme ceci:
ID => Type (Identifier, String, Int, Newline, EOF, Comma, ...)
Contents (If identifier, int or string)
- Comment pourrais-je permettre des déclarations à exécuter dans un ordre défini comme dans l'exemple ci-dessus PHP?
S'il veut simplement évaluer des expressions, il n'est pas nécessaire de construire explicitement un arbre. Pareil s'il utilise une approche de descente récursive pour une langue plus complète - aucun arbre explicite n'est nécessaire. –
@Neil: oui, le livre Dragon l'appelle "traduction dirigée par la syntaxe" –