Add line number to parser nodes
[babeltrace.git] / formats / ctf / metadata / ctf-ast.h
index ef863a0f2061fe929356927ce33a089ebc4be800..042726e9edc35d9dea049b3ee235701b74da0e0d 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,
@@ -68,6 +76,7 @@ struct ctf_node {
        struct bt_list_head siblings;
        struct bt_list_head tmp_head;
        struct bt_list_head gc;
+       unsigned int lineno;
 
        enum node_type type;
        union {
@@ -84,6 +93,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 +130,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 */
@@ -286,10 +303,16 @@ const char *node_type(struct ctf_node *node);
 
 struct ctf_trace;
 
+BT_HIDDEN
 int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node);
+BT_HIDDEN
 int ctf_visitor_semantic_check(FILE *fd, int depth, struct ctf_node *node);
+BT_HIDDEN
 int ctf_visitor_parent_links(FILE *fd, int depth, struct ctf_node *node);
+BT_HIDDEN
 int ctf_visitor_construct_metadata(FILE *fd, int depth, struct ctf_node *node,
                        struct ctf_trace *trace, int byte_order);
+BT_HIDDEN
+int ctf_destroy_metadata(struct ctf_trace *trace);
 
 #endif /* _CTF_AST_H */
This page took 0.025469 seconds and 4 git commands to generate.