Derleyici arka planım yok, bu yüzden bu alandaki bir paylaşım olup olmadığından emin değilim. Bunun gibi ifadeleri ayrıştırmak için standart teknikler var mı? Bir yığın tabanlı değerlendirme başvurmak gerektiğinden emin değilimBu tür ifadeleri nasıl ayrıştırırım?
((A+B=1) AND (C+D=1) AND ((P+Q=1) OR (K=1)) AND ((Q=1) AND (R=2)))
:
And
A + B = 1
C + D = 1
Or
P + Q = 1
K = 1
And
Q = 1
R = 2
olarak çözümlenen mı (De ki, sekme derinliğini gösterir)? Şu anda bir tane deniyorum ve eğer koşabilirsem bir çalışma kodu göndereceğim.
Bunu başarmak için basit bir yolla herhangi bir öneriniz var mı?
Bağlam nedir? "Güvenli" olmak zorunda mı? Ya da sözdizimini biraz değiştirebilir ve Python'u “eval()” veya benzeri ile kullanabilir misiniz? Örneğin, '((A + B == 1) ve (C + D == 1))' Python sözdizimi. –
Maalesef, girişi değiştiremiyorum. Bazı XML dosyalarını ayrıştırıyorum ve ifadeleri kendileri bir dizeye ayrıştırmayı başardım. Dizgiyi nasıl biçimlendirdiğim bana göre değil, değerlendirme sırası ve hepsinin hala bakım ihtiyacı var.Ayrıca, bir şeyleri değerlendirmek istemiyorum ama söylemek istiyorum, baskı için bir ip alın. – Legend
İfadeyi ağaçlara ayırıyor musunuz? Daha sonra bu değişkenler için sayıları altüst ederek onları değerlendirmek? – Adrian