#include "ctf-parser.h"
#include "ctf-ast.h"
-#define printf_dbg(fmt, args...) fprintf(fd, "%s: " fmt, __func__, ## args)
+#define fprintf_dbg(fd, fmt, args...) fprintf(fd, "%s: " fmt, __func__, ## args)
static
int ctf_visitor_unary_expression(FILE *fd, int depth, struct ctf_node *node)
case TYPESPEC_UNSIGNED:
case TYPESPEC_BOOL:
case TYPESPEC_COMPLEX:
+ case TYPESPEC_IMAGINARY:
case TYPESPEC_CONST:
case TYPESPEC_ID_TYPE:
break;
if (ret)
return ret;
}
- if (node->u.type_declarator.u.nested.length) {
- node->u.type_declarator.u.nested.length->parent = node;
- ret = ctf_visitor_parent_links(fd, depth + 1,
- node->u.type_declarator.u.nested.length);
+ cds_list_for_each_entry(iter, &node->u.type_declarator.u.nested.length,
+ siblings) {
+ iter->parent = node;
+ ret = ctf_visitor_parent_links(fd, depth + 1, iter);
if (ret)
return ret;
}
}
break;
case NODE_ENUMERATOR:
- if (node->u.enumerator.id)
- fprintf(fd, " id=\"%s\"", node->u.enumerator.id);
- fprintf(fd, ">\n");
cds_list_for_each_entry(iter, &node->u.enumerator.values, siblings) {
iter->parent = node;
ret = ctf_visitor_parent_links(fd, depth + 1, iter);
}
break;
case NODE_ENUM:
- if (node->u._struct.name)
- fprintf(fd, "<enum name=\"%s\">\n",
- node->u._enum.enum_id);
- else
- fprintf(fd, "<enum >\n");
depth++;
- if (node->u._enum.container_type) {
- node->u._enum.container_type->parent = node;
- ret = ctf_visitor_parent_links(fd, depth + 1, node->u._enum.container_type);
+ cds_list_for_each_entry(iter, &node->u._enum.container_type,
+ siblings) {
+ iter->parent = node;
+ ret = ctf_visitor_parent_links(fd, depth + 1, iter);
if (ret)
return ret;
}
}
break;
case NODE_VARIANT:
- if (node->u.variant.choice)
- fprintf(fd, " choice=\"%s\"", node->u.variant.choice);
cds_list_for_each_entry(iter, &node->u.variant.declaration_list, siblings) {
iter->parent = node;
ret = ctf_visitor_parent_links(fd, depth + 1, iter);