You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.1 KiB

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