2011-03-21 19 views

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.

+0

Evet, zaten oluşturulmuş kaynağa bakarak buldum. +1 ve kabul edildi, iyi bir cevap. Bu hata 2.4.3'te yok. – Flavius