コード例 #1
0
ファイル: parser.c プロジェクト: rrizun/littlec
/* Is a unary + or -. */
void eval_exp4(int *value)
{
  register char  op;
  op = '\0';
  if(*token=='+' || *token=='-') {
    op = *token;
    get_token();
  }
  eval_exp5(value);
  if(op)
    if(op=='-') *value = -(*value);
}
コード例 #2
0
ファイル: parser.cpp プロジェクト: TimofonicJunkRoom/Oldies
/* Processa um expoente */
void Parser::eval_exp4(double *answer) {
  double temp, ex;
  register int t;

  eval_exp5(answer);
  if (*token=='^') {
    get_token();
    eval_exp4(&temp);
    ex = *answer;
    if (temp == 0.0) {
      *answer = 1.0;
      return;
    }
    *answer = pow (ex,double (temp));
  }
}
コード例 #3
0
ファイル: parser.cpp プロジェクト: jsjtxietian/Cpp
// Is a unary +, -, ++, or --. 
void eval_exp4(int &value)
{
	char  op;
	char temp;

	op = '\0';
	if (*token == '+' || *token == '-' ||
		*token == INC || *token == DEC)
	{
		temp = *token;
		op = *token;
		get_token();
		if (temp == INC)
			assign_var(token, find_var(token) + 1);
		if (temp == DEC)
			assign_var(token, find_var(token) - 1);
	}

	eval_exp5(value);
	if (op == '-') value = -(value);
}
コード例 #4
0
ファイル: Parser.cpp プロジェクト: FavoRiteKK/Cplusplus-Temp
// Process an exponent
void parser::eval_exp4(double &result)
{
	double temp, ex;
	register int t;
	
	eval_exp5(result);
	
	if(*token== '^') {
		
		get_token();
		eval_exp4(temp);
		
		ex = result;
		
		if(temp==0.0) {
			result = 1.0;
			return;
		}
		
		for(t=(int)temp-1; t>0; --t) result = result * (double)ex;
	}
}