Aller au contenu principal

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

  1. Modifiez la fonction eval_ast pour accepter un environnement (dictionnaire) des variables.
  2. Ajoutez le traitement des nœuds de type var (variables) et assign (affectations).
  3. 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]]