Example #1
0
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);
}
Example #2
0
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;
}