Fix: free all the metadata-related memory
[babeltrace.git] / formats / ctf / metadata / ctf-ast.h
index ef863a0f2061fe929356927ce33a089ebc4be800..d5a0544a9d6d05f98f35dbe3bd7f68c194d9c09d 100644 (file)
 #include <glib.h>
 #include <babeltrace/list.h>
 
+// the parameter name (of the reentrant 'yyparse' function)
+// data is a pointer to a 'SParserParam' structure
+//#define YYPARSE_PARAM        scanner
+
+// the argument for the 'yylex' function
+#define YYLEX_PARAM    ((struct ctf_scanner *) scanner)->scanner
+
 struct ctf_node;
 struct ctf_parser;
 
@@ -34,6 +41,7 @@ enum node_type {
        NODE_ENV,
        NODE_TRACE,
        NODE_CLOCK,
+       NODE_CALLSITE,
 
        NODE_CTF_EXPRESSION,
        NODE_UNARY_EXPRESSION,
@@ -84,6 +92,7 @@ struct ctf_node {
                        struct bt_list_head stream;
                        struct bt_list_head event;
                        struct bt_list_head clock;
+                       struct bt_list_head callsite;
                } root;
                struct {
                        /*
@@ -120,6 +129,13 @@ struct ctf_node {
                         */
                        struct bt_list_head declaration_list;
                } clock;
+               struct {
+                       /*
+                        * Children nodes are ctf_expression, typedef,
+                        * typealias and type_specifier_list.
+                        */
+                       struct bt_list_head declaration_list;
+               } callsite;
                struct {
                        struct bt_list_head left;       /* Should be string */
                        struct bt_list_head right;      /* Unary exp. or type */
@@ -291,5 +307,6 @@ int ctf_visitor_semantic_check(FILE *fd, int depth, struct ctf_node *node);
 int ctf_visitor_parent_links(FILE *fd, int depth, struct ctf_node *node);
 int ctf_visitor_construct_metadata(FILE *fd, int depth, struct ctf_node *node,
                        struct ctf_trace *trace, int byte_order);
+int ctf_destroy_metadata(struct ctf_trace *trace);
 
 #endif /* _CTF_AST_H */
This page took 0.024809 seconds and 4 git commands to generate.