Example #1
0
int main(int argc, char *argv[])
{
	if (argc < 2) {
		fprintf(stderr, "miss args\n");
		usage(argv[0]);
		exit(1);
	}
	
	struct calc_info  *q =  (struct calc_info *)malloc(sizeof(*q));

	if (q == NULL) {
		perror("malloc");
		goto err_malloc;
	}

	calc_init(q);
	num_t ret = 0;

	int i;
	for (i = 1; i < argc; ++i) {
		ret = q->calc(q, argv[i]);
		printf("\n---%s = %d----\n", argv[i], ret);
	}

	calc_destroy(q);
	free(q);

	return 0;
err_malloc:
	return -1;
}
Example #2
0
int main(int argc, char *argv[])
{
	assert(argc >= 2);
	
	struct calc_info *pcalc = (struct calc_info *)
		malloc(sizeof(*pcalc));
	assert(pcalc != NULL);

	calc_init(pcalc);

	printf("%s = %d\n", argv[1], 
		pcalc->parser(pcalc, argv[1]));

	calc_destroy(pcalc);
	free(pcalc);
	
	return 0;
}
Example #3
0
File: main.c Project: sktwj/var
int main(int argc, char *argv[])
{
	struct calc *this = NULL;
	//const char *default_expr = \
		"(--1 ++2 + +-3 * (1 + 1)) * 2";
	const char *default_expr = "1 -+- 2";

	if (argc == 1) {
		this = calc_init(this, default_expr);	
		printf("%s = %d\n", default_expr, this->analyze(this, default_expr));	
	} else if (argc == 2) {
		this = calc_init(this, argv[1]);
		printf("%s = %d\n", argv[1], this->analyze(this, argv[1]));	
	} else {
		printf("sorry, 最多只能传递一个参数!\n使用方法:可执行文件 要进行运算的表达式\n");
		return 1;
	}

	calc_destroy(this);

	return 0;
}