projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add line number to parser nodes
[babeltrace.git]
/
formats
/
ctf
/
metadata
/
ctf-parser.y
diff --git
a/formats/ctf/metadata/ctf-parser.y
b/formats/ctf/metadata/ctf-parser.y
index 72b0978e56f814c700e79bd36bb19c18b93c3f56..30f4c949870bb53e86a40f6cbf565f60a0f8ee3c 100644
(file)
--- a/
formats/ctf/metadata/ctf-parser.y
+++ b/
formats/ctf/metadata/ctf-parser.y
@@
-65,6
+65,10
@@
BT_HIDDEN
int yylex_destroy(yyscan_t yyscanner);
BT_HIDDEN
void yyrestart(FILE * in_str, yyscan_t scanner);
int yylex_destroy(yyscan_t yyscanner);
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;
struct gc_string {
struct bt_list_head gc;
@@
-246,6
+250,7
@@
static struct ctf_node *make_node(struct ctf_scanner *scanner,
return NULL;
memset(node, 0, sizeof(*node));
node->type = type;
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);
BT_INIT_LIST_HEAD(&node->tmp_head);
bt_list_add(&node->gc, &ast->allocated_nodes);
bt_list_add(&node->siblings, &node->tmp_head);
@@
-818,7
+823,9
@@
static int set_parent_node(struct ctf_node *node,
BT_HIDDEN
void yyerror(struct ctf_scanner *scanner, const char *str)
{
BT_HIDDEN
void yyerror(struct ctf_scanner *scanner, const char *str)
{
- fprintf(stderr, "error %s\n", str);
+ fprintf(stderr, "error at line %d, token \"%s\": %s\n",
+ yyget_lineno(scanner->scanner),
+ yyget_text(scanner->scanner), str);
}
BT_HIDDEN
}
BT_HIDDEN
@@
-936,6
+943,7
@@
void ctf_scanner_free(struct ctf_scanner *scanner)
%define api.pure
/* %locations */
%define api.pure
/* %locations */
+%error-verbose
%parse-param {struct ctf_scanner *scanner}
%lex-param {struct ctf_scanner *scanner}
/*
%parse-param {struct ctf_scanner *scanner}
%lex-param {struct ctf_scanner *scanner}
/*
This page took
0.026336 seconds
and
4
git commands to generate.