t_ast *ast_build(char *input, int eof, t_sh *shell) { t_ast *ast; int tuple[2]; if ((ast = (t_ast *)malloc(sizeof(t_ast)))) { find_operand(input, tuple); ast->op = tuple[0]; ast->stdin = 0; ast->stdout = 1; ast->stderr = 2; ast->from = -2; ast->to = -2; if (ast->op == -1) trigger_command(ast, input, eof); else trigger_op_recurse(ast, input, tuple, shell); } free(input); return (ast); }
static int parse_arg(struct app *app, int argc, char **argv) { char **endv = &argv[argc]; /* read command */ for (argv++; argv < endv; argv++) { if (find_operand(argv, endv, "-x")) { app->dn_mecab = *++argv; } else if (find_operand(argv, endv, "-m")) { app->fn_voice = *++argv; } else if (find_operand(argv, endv, "-ot")) { app->logfp = get_fp(*++argv, "w"); } else if (!strcmp(*argv, "-h")) { usage(); } else if (find_operand(argv, endv, "-s")) { app->sampling_rate = atoi(*++argv); } else if (find_operand(argv, endv, "-p")) { app->fperiod = atoi(*++argv); } else if (find_operand(argv, endv, "-a")) { app->alpha = atof(*++argv); } else if (find_operand(argv, endv, "-b")) { app->beta = atof(*++argv); } else if (find_operand(argv, endv, "-r")) { app->speed = atof(*++argv); } else if (find_operand(argv, endv, "-fm")) { app->half_tone = atof(*++argv); } else if (find_operand(argv, endv, "-u")) { app->uv_threshold = atof(*++argv); } else if (find_operand(argv, endv, "-jm")) { app->gv_weight_mgc = atof(*++argv); } else if (find_operand(argv, endv, "-jf")) { app->gv_weight_lf0 = atof(*++argv); #ifdef HTS_MELP } else if (find_operand(argv, endv, "-jl")) { app->gv_weight_lpf = atof(*++argv); #endif /* HTS_MELP */ } else if (find_operand(argv, endv, "-z")) { app->audio_buff_size = atoi(*++argv); } else if ((*argv)[0] == '-') { app_error("Invalid option %s.\n", *argv); exit(1); } else { app->txtfn = *argv; } } /* sanity check */ if (app->fn_voice == NULL) { app_error("HTS void is not specified.\n"); exit(1); } else if (app->dn_mecab == NULL) { app_error("dictionary directory is not specified.\n"); exit(1); } return 0; }