X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Ffilter%2Ffilter-visitor-xml.c;h=9352742a51c50d8c81a0afce2fe60973912682c0;hb=09b72f7aa737f46196db18bcdf3bc947a08c27a2;hp=24d618ac9b45920cdb02393d26ae87f4bd45aaab;hpb=586dc72f727912b4aa381789c418e062bce89d08;p=lttng-tools.git
diff --git a/src/lib/lttng-ctl/filter/filter-visitor-xml.c b/src/lib/lttng-ctl/filter/filter-visitor-xml.c
index 24d618ac9..9352742a5 100644
--- a/src/lib/lttng-ctl/filter/filter-visitor-xml.c
+++ b/src/lib/lttng-ctl/filter/filter-visitor-xml.c
@@ -49,6 +49,8 @@ static
int recursive_visit_print_expression(struct filter_node *node,
FILE *stream, int indent)
{
+ struct filter_node *iter_node;
+
if (!node) {
fprintf(stderr, "[error] %s: NULL child\n", __func__);
return -EINVAL;
@@ -80,33 +82,18 @@ int recursive_visit_print_expression(struct filter_node *node,
node->u.expression.type == AST_EXP_IDENTIFIER ?
"identifier" : "global_identifier",
node->u.expression.u.identifier);
- while (node->u.expression.next) {
+ iter_node = node->u.expression.next;
+ while (iter_node) {
print_tabs(stream, indent);
- fprintf(stream, "u.expression.pre_op) {
- case AST_LINK_UNKNOWN:
- default:
- fprintf(stderr, "[error] %s: unknown link\n", __func__);
- return -EINVAL;
- case AST_LINK_DOT:
- fprintf(stream, ".");
- break;
- case AST_LINK_RARROW:
- fprintf(stream, "->");
- break;
- }
- fprintf(stream, "\"/>\n");
-
- node = node->u.expression.next;
- if (node->type != NODE_EXPRESSION ||
- node->u.expression.type != AST_EXP_IDENTIFIER) {
- fprintf(stderr, "[error] %s: expecting identifier before link\n", __func__);
+ fprintf(stream, "\n");
+ if (recursive_visit_print_expression(iter_node,
+ stream, indent + 1)) {
return -EINVAL;
}
-
print_tabs(stream, indent);
- fprintf(stream, "\n",
- node->u.expression.u.identifier);
+ fprintf(stream, "\n");
+ iter_node = iter_node->u.expression.next;
+
}
break;
case AST_EXP_NESTED:
@@ -170,10 +157,10 @@ int recursive_visit_print(struct filter_node *node, FILE *stream, int indent)
case AST_OP_MINUS:
fprintf(stream, "\"-\"");
break;
- case AST_OP_RSHIFT:
+ case AST_OP_BIT_RSHIFT:
fprintf(stream, "\">>\"");
break;
- case AST_OP_LSHIFT:
+ case AST_OP_BIT_LSHIFT:
fprintf(stream, "\"<<\"");
break;
case AST_OP_AND:
@@ -182,13 +169,13 @@ int recursive_visit_print(struct filter_node *node, FILE *stream, int indent)
case AST_OP_OR:
fprintf(stream, "\"||\"");
break;
- case AST_OP_BIN_AND:
+ case AST_OP_BIT_AND:
fprintf(stream, "\"&\"");
break;
- case AST_OP_BIN_OR:
+ case AST_OP_BIT_OR:
fprintf(stream, "\"|\"");
break;
- case AST_OP_BIN_XOR:
+ case AST_OP_BIT_XOR:
fprintf(stream, "\"^\"");
break;
@@ -240,7 +227,7 @@ int recursive_visit_print(struct filter_node *node, FILE *stream, int indent)
case AST_UNARY_NOT:
fprintf(stream, "\"!\"");
break;
- case AST_UNARY_BIN_NOT:
+ case AST_UNARY_BIT_NOT:
fprintf(stream, "\"~\"");
break;
}