projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
CTF: Support incremental metadata append
[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 61292c91f29c380ff77e52dc91352bf811d6e5d1..68fde931ebec5457b30ca66ace9822608048ad60 100644
(file)
--- a/
formats/ctf/metadata/ctf-parser.y
+++ b/
formats/ctf/metadata/ctf-parser.y
@@
-972,12
+972,18
@@
static struct ctf_ast *ctf_ast_alloc(struct ctf_scanner *scanner)
return ast;
}
return ast;
}
-int ctf_scanner_append_ast(struct ctf_scanner *scanner)
+int ctf_scanner_append_ast(struct ctf_scanner *scanner
, FILE *input
)
{
{
+ /* Start processing new stream */
+ yyrestart(input, scanner->scanner);
+ if (yydebug)
+ fprintf(stdout, "Scanner input is a%s.\n",
+ isatty(fileno(input)) ? "n interactive tty" :
+ " noninteractive file");
return yyparse(scanner, scanner->scanner);
}
return yyparse(scanner, scanner->scanner);
}
-struct ctf_scanner *ctf_scanner_alloc(
FILE *input
)
+struct ctf_scanner *ctf_scanner_alloc(
void
)
{
struct ctf_scanner *scanner;
int ret;
{
struct ctf_scanner *scanner;
int ret;
@@
-988,15
+994,11
@@
struct ctf_scanner *ctf_scanner_alloc(FILE *input)
if (!scanner)
return NULL;
memset(scanner, 0, sizeof(*scanner));
if (!scanner)
return NULL;
memset(scanner, 0, sizeof(*scanner));
-
ret = yylex_init_extra(scanner, &scanner->scanner);
if (ret) {
printf_fatal("yylex_init error");
goto cleanup_scanner;
}
ret = yylex_init_extra(scanner, &scanner->scanner);
if (ret) {
printf_fatal("yylex_init error");
goto cleanup_scanner;
}
- /* Start processing new stream */
- yyrestart(input, scanner->scanner);
-
scanner->objstack = objstack_create();
if (!scanner->objstack)
goto cleanup_lexer;
scanner->objstack = objstack_create();
if (!scanner->objstack)
goto cleanup_lexer;
@@
-1006,11
+1008,6
@@
struct ctf_scanner *ctf_scanner_alloc(FILE *input)
init_scope(&scanner->root_scope, NULL);
scanner->cs = &scanner->root_scope;
init_scope(&scanner->root_scope, NULL);
scanner->cs = &scanner->root_scope;
- if (yydebug)
- fprintf(stdout, "Scanner input is a%s.\n",
- isatty(fileno(input)) ? "n interactive tty" :
- " noninteractive file");
-
return scanner;
cleanup_objstack:
return scanner;
cleanup_objstack:
@@
-1028,6
+1025,8
@@
void ctf_scanner_free(struct ctf_scanner *scanner)
{
int ret;
{
int ret;
+ if (!scanner)
+ return;
finalize_scope(&scanner->root_scope);
objstack_destroy(scanner->objstack);
ret = yylex_destroy(scanner->scanner);
finalize_scope(&scanner->root_scope);
objstack_destroy(scanner->objstack);
ret = yylex_destroy(scanner->scanner);
This page took
0.027349 seconds
and
4
git commands to generate.