Bison'da salt itmeli ayrıştırıcı için malloc()/free() yerine yığın yönetimi için kendi allocator/deallocator işlevlerimi belirtmenin bir yolu var mı?Bir bizon itme saf ayrıştırıcısında yığın işleme
Bison'ın bellek ayırmalarını
6
A
cevap
3
En makrolarıyla yönlendirilebilir - önsözünde de (%{
ve %}
arasında) Eğer
#define YYMALLOC mymalloc
#define YYFREE myfree
yazabilir ve Bison sonra mymalloc
ve myfree
yerine malloc
ve free
arayacak. Bununla birlikte, sağladığınız işlevlerin standart malloc
ve free
ile aynı türde imzanın olması için bekler; Ekstra/farklı argümanlar iletmek için hiçbir yolu yoktur. Senin yerinde olsam, işlev benzeri makrolar kullanmazdım. Daha da kötüsü, kopyalamamda (Bison 2.4.1) yypstate_new
, doğrudan geçersiz kılma olmadan malloc
'u çağırır - bu muhtemelen bir hatadır.
İlgili konular
- 1. Dış işlev kullanarak yığın itme
- 2. Saf Ruby için görüntü işleme kitaplığını arıyor
- 3. Bizon yararsız dönem sonu
- 4. Yığın işleme olmadan Spring Batch adımı
- 5. Yığın Programlama, Hata İşleme ve Başlatma Komutu
- 6. Delphi'de SQL ayrıştırıcısında gereksinim var
- 7. IOS7,8,9 bir önceki itme bildirimi davranışını alırsınız
- 8. Saf Java SQLiteJDBC sürücüleri gerçekten saf mı?
- 9. Esnek ve bizon ikilisine alternatif mi?
- 10. Yapılmadan itme
- 11. 2 paramlı yığın STL
- 12. Git itme +
- 13. Bir json nesnesine veri itme
- 14. Esnek ve bizon üzerinde gerçek bir örnek nerede bulunur?
- 15. Yığın -> ArrayList Java
- 16. Yığın
- 17. Esnek Değişkenler, saf Haskell2010
- 18. Saf PHP'de Grafik Oluşturma
- 19. Küresel Paralaks - Saf CSS
- 20. git sonrası itme kancası?
- 21. Otomatik itme nasıl yapılandırılır?
- 22. Javascript nesnesini diziye itme
- 23. Git itme internet problemlerinin
- 24. Github (itme) işlemine başlıyor
- 25. jQuery değil saf JavaScript
- 26. Ofsetlerin doğru kullanımı/itme
- 27. Cloudformation başka bir yığın
- 28. JSON Diziye itme
- 29. GAE'nin + JavaScript itme:
- 30. Github itme olay imza
Evet, zaten oluşturulmuş kaynağa bakarak buldum. +1 ve kabul edildi, iyi bir cevap. Bu hata 2.4.3'te yok. – Flavius