struct mp_context *ctx;
struct yy_buffer_state *buffer_state;
+ *result = NULL;
if (!definition || nbytes == 0) { /* dummy mood */
if (errmsg)
*errmsg = NULL;
- *result = NULL;
return 0;
}
ctx = para_calloc(sizeof(*ctx));
mp_yy_delete_buffer(buffer_state, scanner);
mp_yylex_destroy(scanner);
if (ctx->errmsg) { /* parse error */
+ mp_free_ast(ctx->ast);
if (errmsg)
*errmsg = ctx->errmsg;
else
{
if (!ctx) /* dummy mood */
return true;
+ if (!ctx->ast) /* empty mood */
+ return true;
assert(aft_row);
ctx->aft_row = aft_row;
ctx->have_afsi = false;