Ejemplo n.º 1
0
static num_t parser(struct calc *calc, const char *expr)
{
	assert(calc != NULL);
	assert(expr != NULL && expr != '\0');
	
	calc->cur = expr;
	for (; *calc->cur != '\0'; calc->cur++) {
		switch(*calc->cur) {
			case '0' ... '9': num_handler(calc);break;
			case '-':
			case '+':
			case '*':
			case '/':
			case '%': opr_handler(calc);break;
			case ' ':
			case '\t':
			case '\n': break;
			case '(': left_bracket_handler(calc);break;
			case ')': right_bracket_handler(calc);break;
			default: fprintf(stderr, "Error: Unknow character ");return -1;
		}
	}
	while(!STACK_IS_EMPTY(calc->opr))
		do_operate(calc);
	num_t res = 0;
	NUM_POP(res);
	return res;
}
Ejemplo n.º 2
0
Archivo: vv.cpp Proyecto: TiesB/RM2
void MainWindow::on_but_9_clicked()
{
    in_num = 9;
    num_handler (in_num);
}