Some .h files should be accessible to user programmed modules and thus
[lttv.git] / ltt / branches / poly / lttv / filter.c
1
2 consist in AND, OR and NOT nested expressions, forming a tree with
3 simple relations as leaves. The simple relations test is a field
4 in an event is equal, not equal, smaller, smaller or equal, larger, or
5 larger or equal to a specified value. */
6
7 typedef enum _lttv_expression_op
8 { LTTV_FIELD_EQ,
9 LTTV_FIELD_NE,
10 LTTV_FIELD_LT,
11 LTTV_FIELD_LE,
12 LTTV_FIELD_GT,
13 LTTV_FIELD_GE
14 } lttv_expression_op;
15
16 typedef _lttv_simple_expression
17 { lttv_expression_op op;
18 char *field_name;
19 char *value;
20 } lttv_simple_expression;
21
22 typedef _lttv_expression_type
23 { LTTV_EXPRESSION,
24 LTTV_SIMPLE_EXPRESSION
25
26 }
27 typedef struct _lttv_expression
28 { bool or;
29 bool not;
30 bool simple_expression;
31 union
32 { lttv_expression *e;
33 lttv_field_relation *se;
34 } e;
35 } lttv_expression;
36
37 read_token
38
39 read_expression
40 ( read expr )
41 simple expr [ op expr ]
42
43 read_simple_expression
44 read_field_path [ rel value ]
45
46 read_field_path
47 read_field_component [. field path]
48
49 read_field_component
50 name [ \[ value \] ]
51
52 data struct:
53 and/or(left/right)
54 not(child)
55 op(left/right)
56 path(component...) -> field
57
58
This page took 0.030061 seconds and 4 git commands to generate.