AST
#AST (arbre syntaxique abstrait)
Représentation structurée du programme. Sert de base aux analyses et transformations.
#Exemple d’AST et évaluation
#Exercice : Extension de l'évaluateur AST pour les variables
Étendez l'évaluateur AST pour gérer les variables et les affectations.
#Instructions
- Modifiez la fonction
eval_ast
pour accepter un environnement (dictionnaire) des variables. - Ajoutez le traitement des nœuds de type
var
(variables) etassign
(affectations). - Implémentez une fonction
eval_program
qui évalue un programme complet avec des instructions.
#Exemple de code
pythonpython
1# AST étendu avec variables et affectations2# Exemple: x = 5; y = x * 2; y + 33program_ast = ('program', [4 ('assign', 'x', ('num', 5)),5 ('assign', 'y', ('*', ('var', 'x'), ('num', 2))),6 ('expr', ('+', ('var', 'y'), ('num', 3)))7])8 9def eval_ast(node, env={}):10 if node[0] == 'num':11 return node[1]12 elif node[0] == 'var':13 if node[1] in env:14 return env[node[1]]