Fla*_*ius 7 c language-design bison parser-generator
有没有办法为堆管理指定我自己的allocator/deallocator函数而不是malloc()/ free()用于bison中的纯推送解析器?
Bison 的大部分内存分配都可以用宏重定向 - 在序言中(在%{和之间%})你可以写
#define YYMALLOC mymalloc
#define YYFREE myfree
Run Code Online (Sandbox Code Playgroud)
然后 Bison 将调用mymallocandmyfree而不是mallocand free。malloc但是,它期望您提供的任何函数都具有与标准和完全相同的类型签名free;没有办法让它传递额外/不同的参数。如果我是你,我就不会使用类似函数的宏。更糟糕的是,在我的副本(Bison 2.4.1)中直接yypstate_new调用malloc,无法覆盖——这可以说是一个错误。
| 归档时间: |
|
| 查看次数: |
520 次 |
| 最近记录: |