Add line number to parser nodes
[babeltrace.git] / formats / ctf / metadata / ctf-parser.y
index 912f12123c7fa02f7e19c6378b7a341238914c1f..30f4c949870bb53e86a40f6cbf565f60a0f8ee3c 100644 (file)
@@ -67,6 +67,8 @@ BT_HIDDEN
 void yyrestart(FILE * in_str, yyscan_t scanner);
 BT_HIDDEN
 int yyget_lineno(yyscan_t yyscanner);
+BT_HIDDEN
+char *yyget_text(yyscan_t yyscanner);
 
 struct gc_string {
        struct bt_list_head gc;
@@ -248,6 +250,7 @@ static struct ctf_node *make_node(struct ctf_scanner *scanner,
                return NULL;
        memset(node, 0, sizeof(*node));
        node->type = type;
+       node->lineno = yyget_lineno(scanner->scanner);
        BT_INIT_LIST_HEAD(&node->tmp_head);
        bt_list_add(&node->gc, &ast->allocated_nodes);
        bt_list_add(&node->siblings, &node->tmp_head);
@@ -820,8 +823,9 @@ static int set_parent_node(struct ctf_node *node,
 BT_HIDDEN
 void yyerror(struct ctf_scanner *scanner, const char *str)
 {
-       fprintf(stderr, "error at line %d: %s\n",
-               yyget_lineno(scanner->scanner), str);
+       fprintf(stderr, "error at line %d, token \"%s\": %s\n",
+               yyget_lineno(scanner->scanner),
+               yyget_text(scanner->scanner), str);
 }
  
 BT_HIDDEN
This page took 0.022867 seconds and 4 git commands to generate.