#include <unistd.h>
#include <string.h>
#include <stdlib.h>
-#include <assert.h>
#include <inttypes.h>
#include "common/bytecode/bytecode.h"
#include "filter-ast.h"
} while (0)
#endif
-LTTNG_HIDDEN
int yydebug;
-LTTNG_HIDDEN
int filter_parser_debug = 0;
-LTTNG_HIDDEN
int yyparse(struct filter_parser_ctx *parser_ctx, yyscan_t scanner);
-LTTNG_HIDDEN
int yylex(union YYSTYPE *yyval, yyscan_t scanner);
-LTTNG_HIDDEN
int yylex_init_extra(struct filter_parser_ctx *parser_ctx, yyscan_t * ptr_yy_globals);
-LTTNG_HIDDEN
int yylex_destroy(yyscan_t yyparser_ctx);
-LTTNG_HIDDEN
void yyrestart(FILE * in_str, yyscan_t parser_ctx);
struct gc_string {
[ NODE_UNARY_OP ] = "NODE_UNARY_OP",
};
-LTTNG_HIDDEN
const char *node_type(struct filter_node *node)
{
if (node->type < NR_NODE_TYPES)
return gstr;
}
-LTTNG_HIDDEN
void setstring(struct filter_parser_ctx *parser_ctx, YYSTYPE *lvalp, const char *src)
{
lvalp->gs = gc_string_alloc(parser_ctx, strlen(src) + 1);
free(ast);
}
-LTTNG_HIDDEN
int filter_parser_ctx_append_ast(struct filter_parser_ctx *parser_ctx)
{
return yyparse(parser_ctx, parser_ctx->scanner);
}
-LTTNG_HIDDEN
struct filter_parser_ctx *filter_parser_ctx_alloc(FILE *input)
{
struct filter_parser_ctx *parser_ctx;
return NULL;
}
-LTTNG_HIDDEN
void filter_parser_ctx_free(struct filter_parser_ctx *parser_ctx)
{
int ret;
- free_strings(&parser_ctx->allocated_strings);
- filter_ast_free(parser_ctx->ast);
ret = yylex_destroy(parser_ctx->scanner);
if (ret)
fprintf(stderr, "yylex_destroy error\n");
+
+ filter_ast_free(parser_ctx->ast);
+ free_strings(&parser_ctx->allocated_strings);
+ filter_ir_free(parser_ctx);
+ free(parser_ctx->bytecode);
+ free(parser_ctx->bytecode_reloc);
+
free(parser_ctx);
}
-LTTNG_HIDDEN
int filter_parser_ctx_create_from_filter_expression(
const char *filter_expression, struct filter_parser_ctx **ctxp)
{
struct filter_parser_ctx *ctx = NULL;
FILE *fmem = NULL;
- assert(filter_expression);
- assert(ctxp);
+ LTTNG_ASSERT(filter_expression);
+ LTTNG_ASSERT(ctxp);
/*
* Casting const to non-const, as the underlying function will use it in
{
#include "common/macros.h"
-LTTNG_HIDDEN
void setstring(struct filter_parser_ctx *parser_ctx, YYSTYPE *lvalp, const char *src);
}