from File import File_chaine as File from Pile import Pile_chaine as Pile class Expression: def __init__(self, valeur, gauche=None, droite=None): self.valeur = valeur self.gauche = gauche self.droite = droite def evalue(self): if type(self.valeur) == int: return self.valeur if self.valeur == '+': return self.gauche.evalue() + self.droite.evalue() if self.valeur == '*': return self.gauche.evalue() * self.droite.evalue() def __str__(self): if type(self.valeur) == int: return str(self.valeur) else : return "({str(self.gauche)} {self.valeur} {str(self.droite)})" # class Conversion: # lst = [self.valeur,self.gauche, self.droite] # def npi2tree (lst): # """fonction npi2tree prenant en paramètre une liste correspondant à l’expression en notation # polonaise inversée et renvoyant l’arbre (de type Expression) correspondant""" # p = Pile(lst) # for i in lst (): # if + or * : # else : # return