** Deallocate and destroy a parser. Destructors are called for ** all stack elements before shutting the parser down. ** ** If the YYPARSEFREENEVERNULL macro exists (for example because it ** is defined in a %include section of the input grammar) then it is ** assumed that the input pointer is never NULL. */
| 446 | ** assumed that the input pointer is never NULL. |
| 447 | */ |
| 448 | void ParseFree( |
| 449 | void *p, /* The parser to be deleted */ |
| 450 | void (*freeProc)(void*) /* Function used to reclaim memory */ |
| 451 | ){ |
| 452 | #ifndef YYPARSEFREENEVERNULL |
| 453 | if( p==0 ) return; |
| 454 | #endif |
| 455 | ParseFinalize(p); |
| 456 | (*freeProc)(p); |
| 457 | } |
| 458 | #endif /* Parse_ENGINEALWAYSONSTACK */ |
| 459 | |
| 460 | /* |