Implement support for brackets in filter expressions
[lttng-tools.git] / src / lib / lttng-ctl / filter / filter-ast.h
index 176716474c850b297a6858d31aded176422f8e55..067624906d7ad5cd1fa8cc382c095dcd7e1f5387 100644 (file)
@@ -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 */
This page took 0.031485 seconds and 4 git commands to generate.