Implement loops #4
+38
-3
@@ -96,11 +96,21 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
fzl_parser_t *parser = fzl_mkparser(rd->first);
|
fzl_parser_t *parser = fzl_mkparser(rd->first);
|
||||||
result = fzl_parse(parser);
|
if (!parser)
|
||||||
|
{
|
||||||
|
printf("%sError%s: failed to allocate writer\n", FZL_CERROR, FZL_CRST);
|
||||||
|
fzl_freeoptions(opts);
|
||||||
|
fzl_freereader(rd);
|
||||||
|
fzl_freelinked(linked);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = fzl_parse(parser);
|
||||||
if (result != 0)
|
if (result != 0)
|
||||||
{
|
{
|
||||||
printf("%sError%s: %s\n", FZL_CERROR, FZL_CRST, fzl_parser_geterror());
|
printf("%sError%s: %s\n", FZL_CERROR, FZL_CRST, fzl_parser_geterror());
|
||||||
fzl_freeoptions(opts);
|
fzl_freeoptions(opts);
|
||||||
|
fzl_freeast(parser->root);
|
||||||
fzl_freeparser(parser);
|
fzl_freeparser(parser);
|
||||||
fzl_freereader(rd);
|
fzl_freereader(rd);
|
||||||
fzl_freelinked(linked);
|
fzl_freelinked(linked);
|
||||||
@@ -116,12 +126,24 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
fzl_walker_t *walker = fzl_mkwalker(parser->root);
|
fzl_walker_t *walker = fzl_mkwalker(parser->root);
|
||||||
result = fzl_walk(walker);
|
if (!walker)
|
||||||
|
{
|
||||||
|
printf("%sError%s: failed to allocate writer\n", FZL_CERROR, FZL_CRST);
|
||||||
|
fzl_freeoptions(opts);
|
||||||
|
fzl_freeast(parser->root);
|
||||||
|
fzl_freeparser(parser);
|
||||||
|
fzl_freereader(rd);
|
||||||
|
fzl_freelinked(linked);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = fzl_walk(walker);
|
||||||
if (result != 0)
|
if (result != 0)
|
||||||
{
|
{
|
||||||
printf("%sError%s: %s\n", FZL_CERROR, FZL_CRST, fzl_walker_geterror());
|
printf("%sError%s: %s\n", FZL_CERROR, FZL_CRST, fzl_walker_geterror());
|
||||||
fzl_freeoptions(opts);
|
fzl_freeoptions(opts);
|
||||||
fzl_freewalker(walker);
|
fzl_freewalker(walker);
|
||||||
|
fzl_freeast(parser->root);
|
||||||
fzl_freeparser(parser);
|
fzl_freeparser(parser);
|
||||||
fzl_freereader(rd);
|
fzl_freereader(rd);
|
||||||
fzl_freelinked(linked);
|
fzl_freelinked(linked);
|
||||||
@@ -162,13 +184,26 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
fzl_writer_t *writer = fzl_mkwriter(outpath);
|
fzl_writer_t *writer = fzl_mkwriter(outpath);
|
||||||
result = fzl_write(writer, walker);
|
if (!writer)
|
||||||
|
{
|
||||||
|
printf("%sError%s: failed to allocate writer\n", FZL_CERROR, FZL_CRST);
|
||||||
|
fzl_freeoptions(opts);
|
||||||
|
fzl_freewalker(walker);
|
||||||
|
fzl_freeast(parser->root);
|
||||||
|
fzl_freeparser(parser);
|
||||||
|
fzl_freereader(rd);
|
||||||
|
fzl_freelinked(linked);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = fzl_write(writer, walker);
|
||||||
if (result != 0)
|
if (result != 0)
|
||||||
{
|
{
|
||||||
printf("%sError%s: %s\n", FZL_CERROR, FZL_CRST, fzl_writer_geterror());
|
printf("%sError%s: %s\n", FZL_CERROR, FZL_CRST, fzl_writer_geterror());
|
||||||
fzl_freeoptions(opts);
|
fzl_freeoptions(opts);
|
||||||
fzl_freewriter(writer);
|
fzl_freewriter(writer);
|
||||||
fzl_freewalker(walker);
|
fzl_freewalker(walker);
|
||||||
|
fzl_freeast(parser->root);
|
||||||
fzl_freeparser(parser);
|
fzl_freeparser(parser);
|
||||||
fzl_freereader(rd);
|
fzl_freereader(rd);
|
||||||
fzl_freelinked(linked);
|
fzl_freelinked(linked);
|
||||||
|
|||||||
Reference in New Issue
Block a user