kullanarak yapma konusunda yardıma mı ihtiyacınız var? Python'u ayrıştırma için python çalışıyorum. Yinelemeli ayrıştırıcıyı yaparken takılıyorum. Yinelemeli ayrıştırıcıyı
bana sorunu ben elemanlarının Kartezyen ürünü yapmak istiyorumaçıklayalım. sözdizimi Daha açık bir şekilde
cross({a},{c1}) or cross({a,b},{c1}) or cross({a,b,c,d},{c1}) or
Böylece, genel bir şekilde, ilk grubu olması, n elemanları (a, b, c, d) olacaktır koymak
cross({elements },{element})
olup. İkinci grubun bir sonucu olacak, böylece nihai çıktı Kartezyen Ürün olacak. Bu
cross(cross({a,b},{c1}),{c2})
gibi N seviyesine gidebilir, çünkü
sözdizimi Bu c1 b, bir çapraz anlamına özyinelemeli yapılabilir etmektir. Lets bize sonucunu söyle Tekrar Bu (......
İstediğim şey setparseAction
kullanarak başlatıldığını edilecek nesne var çapraz (cross (çapraz n seviyesi haç kadar olabilir c2
ile y onu geçmeye Yani ben özyinelemeli ayrıştırıcı yapmak mümkün değilim bu konuda yardıma ihtiyaç sınıf 2
class object1(object):
This will be used by a,b,c,d
class object2(object):
This will hold cross elements
sahip olacaktır.
ben kullanılacak ifadeyi ihtiyacım yok. Python'da sadece pyparsing kullanarak yapmak için buna ihtiyacım var. Sözdizimi yazılır düzeltildi ve bu özyinelemeli çözümleyici kullanılarak yapılabilir olduğunu düşünüyorum. –
@asb: Diğer insanlar bu tür şeyler için özyinelemeli ayrıştırıcılar kullanmıyorlar. Bu nedenle, kafa karıştırıcı özyinelemeyi ortadan kaldırmak için tanımı (sözdizimini değil, tanımlandığı şekilde değiştirirseniz) daha başarılı olabileceğinizi öneririm. –