struct ctf_node;
struct ctf_parser;
-enum node_type {
- NODE_UNKNOWN = 0,
- NODE_ROOT,
-
- NODE_EVENT,
- NODE_STREAM,
- NODE_ENV,
- NODE_TRACE,
- NODE_CLOCK,
- NODE_CALLSITE,
-
- NODE_CTF_EXPRESSION,
- NODE_UNARY_EXPRESSION,
-
- NODE_TYPEDEF,
- NODE_TYPEALIAS_TARGET,
- NODE_TYPEALIAS_ALIAS,
- NODE_TYPEALIAS,
-
- NODE_TYPE_SPECIFIER,
- NODE_TYPE_SPECIFIER_LIST,
- NODE_POINTER,
- NODE_TYPE_DECLARATOR,
-
- NODE_FLOATING_POINT,
- NODE_INTEGER,
- NODE_STRING,
- NODE_ENUMERATOR,
- NODE_ENUM,
- NODE_STRUCT_OR_VARIANT_DECLARATION,
- NODE_VARIANT,
- NODE_STRUCT,
+#define FOREACH_CTF_NODES(F) \
+ F(NODE_UNKNOWN) \
+ F(NODE_ROOT) \
+ F(NODE_EVENT) \
+ F(NODE_STREAM) \
+ F(NODE_ENV) \
+ F(NODE_TRACE) \
+ F(NODE_CLOCK) \
+ F(NODE_CALLSITE) \
+ F(NODE_CTF_EXPRESSION) \
+ F(NODE_UNARY_EXPRESSION) \
+ F(NODE_TYPEDEF) \
+ F(NODE_TYPEALIAS_TARGET) \
+ F(NODE_TYPEALIAS_ALIAS) \
+ F(NODE_TYPEALIAS) \
+ F(NODE_TYPE_SPECIFIER) \
+ F(NODE_TYPE_SPECIFIER_LIST) \
+ F(NODE_POINTER) \
+ F(NODE_TYPE_DECLARATOR) \
+ F(NODE_FLOATING_POINT) \
+ F(NODE_INTEGER) \
+ F(NODE_STRING) \
+ F(NODE_ENUMERATOR) \
+ F(NODE_ENUM) \
+ F(NODE_STRUCT_OR_VARIANT_DECLARATION) \
+ F(NODE_VARIANT) \
+ F(NODE_STRUCT)
+enum node_type {
+#define ENTRY(S) S,
+ FOREACH_CTF_NODES(ENTRY)
+#undef ENTRY
NR_NODE_TYPES,
};
};
static const char *node_type_to_str[] = {
- [ NODE_UNKNOWN ] = "NODE_UNKNOWN",
- [ NODE_ROOT ] = "NODE_ROOT",
- [ NODE_EVENT ] = "NODE_EVENT",
- [ NODE_ENV ] = "NODE_ENV",
- [ NODE_STREAM ] = "NODE_STREAM",
- [ NODE_TRACE ] = "NODE_TRACE",
- [ NODE_CLOCK ] = "NODE_CLOCK",
- [ NODE_CALLSITE ] = "NODE_CALLSITE",
- [ NODE_CTF_EXPRESSION ] = "NODE_CTF_EXPRESSION",
- [ NODE_UNARY_EXPRESSION ] = "NODE_UNARY_EXPRESSION",
- [ NODE_TYPEDEF ] = "NODE_TYPEDEF",
- [ NODE_TYPEALIAS_TARGET ] = "NODE_TYPEALIAS_TARGET",
- [ NODE_TYPEALIAS_ALIAS ] = "NODE_TYPEALIAS_ALIAS",
- [ NODE_TYPEALIAS ] = "NODE_TYPEALIAS",
- [ NODE_TYPE_SPECIFIER ] = "NODE_TYPE_SPECIFIER",
- [ NODE_TYPE_SPECIFIER_LIST ] = "NODE_TYPE_SPECIFIER_LIST",
- [ NODE_POINTER ] = "NODE_POINTER",
- [ NODE_TYPE_DECLARATOR ] = "NODE_TYPE_DECLARATOR",
- [ NODE_FLOATING_POINT ] = "NODE_FLOATING_POINT",
- [ NODE_INTEGER ] = "NODE_INTEGER",
- [ NODE_STRING ] = "NODE_STRING",
- [ NODE_ENUMERATOR ] = "NODE_ENUMERATOR",
- [ NODE_ENUM ] = "NODE_ENUM",
- [ NODE_STRUCT_OR_VARIANT_DECLARATION ] = "NODE_STRUCT_OR_VARIANT_DECLARATION",
- [ NODE_VARIANT ] = "NODE_VARIANT",
- [ NODE_STRUCT ] = "NODE_STRUCT",
+#define ENTRY(S) [S] = #S,
+ FOREACH_CTF_NODES(ENTRY)
+#undef ENTRY
};
BT_HIDDEN