main: factor out the stream init code into its own function
This commit is contained in:
41
src/main.c
41
src/main.c
@@ -21,19 +21,12 @@ void usage(FILE *fp)
|
|||||||
"\t-- Read and interpret from stdin using an EOF.\n");
|
"\t-- Read and interpret from stdin using an EOF.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int init_stream_on_args(int argc, char *argv[], FILE **pipe, stream_t *stream)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
|
||||||
FILE *pipe = NULL;
|
|
||||||
stream_t stream = {0};
|
|
||||||
vec_t ast = {0};
|
|
||||||
sys_t sys = {0};
|
|
||||||
|
|
||||||
if (argc == 1)
|
if (argc == 1)
|
||||||
{
|
{
|
||||||
usage(stderr);
|
usage(stderr);
|
||||||
ret = 1;
|
return 1;
|
||||||
goto end;
|
|
||||||
}
|
}
|
||||||
else if (argc != 2)
|
else if (argc != 2)
|
||||||
{
|
{
|
||||||
@@ -42,35 +35,47 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (strncmp(argv[1], "--", 2) == 0)
|
if (strncmp(argv[1], "--", 2) == 0)
|
||||||
{
|
{
|
||||||
stream_err_t err = stream_init_pipe(&stream, "stdin", stdin);
|
stream_err_t err = stream_init_pipe(stream, "stdin", stdin);
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "ERROR: %s from `%s`\n", stream_err_to_cstr(err),
|
fprintf(stderr, "ERROR: %s from `%s`\n", stream_err_to_cstr(err),
|
||||||
argv[1]);
|
argv[1]);
|
||||||
ret = 1;
|
return 1;
|
||||||
goto end;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (strncmp(argv[1], "--help", 6) == 0)
|
else if (strncmp(argv[1], "--help", 6) == 0)
|
||||||
{
|
{
|
||||||
usage(stdout);
|
usage(stdout);
|
||||||
goto end;
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pipe = fopen(argv[1], "rb");
|
*pipe = fopen(argv[1], "rb");
|
||||||
stream_err_t err = stream_init_file(&stream, argv[1], pipe);
|
stream_err_t err = stream_init_file(stream, argv[1], *pipe);
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "ERROR: %s from `%s`\n", stream_err_to_cstr(err),
|
fprintf(stderr, "ERROR: %s from `%s`\n", stream_err_to_cstr(err),
|
||||||
argv[1]);
|
argv[1]);
|
||||||
ret = 1;
|
return 1;
|
||||||
goto end;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG("[INFO]: Initialised stream for `%s`\n", stream.name);
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
FILE *pipe = NULL;
|
||||||
|
stream_t stream = {0};
|
||||||
|
vec_t ast = {0};
|
||||||
|
sys_t sys = {0};
|
||||||
|
|
||||||
|
ret = init_stream_on_args(argc, argv, &pipe, &stream);
|
||||||
|
if (ret)
|
||||||
|
goto end;
|
||||||
|
|
||||||
|
LOG("[INFO]: Initialised stream for `%s`\n", stream.name);
|
||||||
{
|
{
|
||||||
read_err_t err = read_all(&sys, &stream, &ast);
|
read_err_t err = read_all(&sys, &stream, &ast);
|
||||||
if (err)
|
if (err)
|
||||||
|
|||||||
Reference in New Issue
Block a user