Wpis z mikrobloga

@sylwke3100: i operator ma być pobrany z tekstu?

Możesz zrobić np. tak:

wyrazenie = 1

wyrazenie2 = 2

operator = "*"

wynik = { "+": lambda w1,w2: w1+w2,

"-": lambda w1,w2: w1-w2,

"*": lambda w1,w2: w1 (RAZY) w2,

"/": lambda w1,w2: w1 (PRZEZ) w2

}[operator](wyrazenie, wyrazenie2);

print (wynik)
@sylwke3100: a, nie, czekaj, źle zrozumiałem, chodziło Ci o implementacje IFa Twojego języka w Pythonie, a nie jak napisać ifa w Pythonie, żeby wyliczał wartość wyrażeń. Olej to, co wcześniej wkleiłem :)

Po pierwsze przydałoby się móc parsować wyrażenia, i wyliczać ich wartości. Masz to zrobione?
@tell_me_more: Patrz na grammar i grammarTo bo one odpowiadają za parsowanie i do self.Parse zawraca operacje jakie zostały wykryte (lub ich wartości dla grammarTo)

o ile sama gramatyka ifa była by taka:

func_name (var or value) operator (var or value)

func_start

#tu kłoptliwyblok prawda

func_end

func_name

func_start

#tu kłoptliwyblok fałsz

func_end
@tell_me_more: to tak - najfajniej by było, jakbyś po prostu dla tego co jest w środku tych bloków wywołał rekurencyjnie funkcję run. Tylko musiałbyś przekazywać do tych wewnętrznych wywołań tylko odpowiedni kawałek zmiennej Program z zewnętrznego wywołania. I nie czaję po co jest parametr localization