X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Ffilter%2Ffilter-ast.h;h=067624906d7ad5cd1fa8cc382c095dcd7e1f5387;hp=176716474c850b297a6858d31aded176422f8e55;hb=661dfdd190c65bad5a044e21c1d5f9ad59144bf8;hpb=d00c599e39ae45ec7c8e12e6bac6b5e58f08f817 diff --git a/src/lib/lttng-ctl/filter/filter-ast.h b/src/lib/lttng-ctl/filter/filter-ast.h index 176716474..067624906 100644 --- a/src/lib/lttng-ctl/filter/filter-ast.h +++ b/src/lib/lttng-ctl/filter/filter-ast.h @@ -39,9 +39,6 @@ // data is a pointer to a 'SParserParam' structure //#define YYPARSE_PARAM parser_ctx -// the argument for the 'yylex' function -#define YYLEX_PARAM ((struct filter_parser_ctx *) parser_ctx)->scanner - #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void* yyscan_t; @@ -98,6 +95,7 @@ enum ast_link_type { AST_LINK_UNKNOWN = 0, AST_LINK_DOT, AST_LINK_RARROW, + AST_LINK_BRACKET, }; struct filter_node { @@ -121,6 +119,7 @@ struct filter_node { AST_EXP_CONSTANT, AST_EXP_FLOAT_CONSTANT, AST_EXP_IDENTIFIER, + AST_EXP_GLOBAL_IDENTIFIER, AST_EXP_NESTED, } type; enum ast_link_type post_op; /* reverse */ @@ -135,8 +134,9 @@ struct filter_node { */ struct filter_node *child; } u; - /* linked dot/arrow chain */ + /* prev: linked dot/arrow chain (postfix expression) */ struct filter_node *prev; + /* next: linked bracket chain (prefix expression) */ struct filter_node *next; } expression; struct { @@ -188,5 +188,8 @@ int filter_visitor_bytecode_generate(struct filter_parser_ctx *ctx); void filter_bytecode_free(struct filter_parser_ctx *ctx); int filter_visitor_ir_check_binary_op_nesting(struct filter_parser_ctx *ctx); int filter_visitor_ir_check_binary_comparator(struct filter_parser_ctx *ctx); +int filter_visitor_ir_validate_string(struct filter_parser_ctx *ctx); +int filter_visitor_ir_normalize_glob_patterns(struct filter_parser_ctx *ctx); +int filter_visitor_ir_validate_globbing(struct filter_parser_ctx *ctx); #endif /* _FILTER_AST_H */