L'AST (Abstract Syntax Tree, arbre de syntaxe abstraite) est la représentation structurée d'un code ou d'une expression après parsing : le texte devient un arbre de nœuds typés — opérations, fonctions, constantes — débarrassé des détails d'écriture. C'est sous cette forme que les compilateurs, les linters et les moteurs d'expressions travaillent réellement : le texte est pour les humains, l'arbre est pour les machines.
Du Code Comme Donnée
Une fois le code devenu arbre, on peut le parcourir comme n'importe quelle structure : extraire les dépendances d'une formule, détecter des motifs dangereux, transformer du code à grande échelle. Les refactorings automatiques des IDE, l'analyse statique de PHPStan ou les codemods reposent tous sur ce principe — analyser l'arbre, jamais le texte.
Parser Coûte, Évaluer Non
Le piège de performance des moteurs d'expressions : le coût est dans le parsing du texte, pas dans l'évaluation de l'arbre. Reparser la même expression à chaque exécution gaspille l'essentiel du temps. La parade est systématique : parser une fois, mettre l'AST en cache, évaluer autant de fois que nécessaire — c'est exactement ce que fait OPcache pour PHP lui-même.
Choisir un outil qui expose son AST plutôt qu'une boîte noire qui évalue des chaînes, c'est s'offrir gratuitement l'analyse, le cache et la transformation — des capacités impossibles à greffer sur du texte brut.