📄 exprint.c
字号:
/*
File: ExprInt.c
Auth: Brian Allen Vanderburg II
Date: Thursday, May 1, 2003
Desc: Functions for the internal workings of ExprEval
This file is part of ExprEval.
*/
/* Includes */
#include "expreval.h"
#include "exprincl.h"
#include "exprint.h"
/* This function evaluates each subnode. The result
is the value of the last subnode */
EXPR_FUNCTIONSOLVER(__exprMultiFunc)
{
int pos;
int err;
EXPRTYPE tmp;
for(pos = 0; pos < count; pos++)
{
EXPR_EVALNODE(pos, tmp);
}
*val = tmp;
return EXPR_ERROR_NOERROR;
}
/* Function for addition */
EXPR_FUNCTIONSOLVER(__exprAddFunc)
{
EXPRTYPE val1, val2;
int err;
EXPR_REQUIRECOUNT(2)
EXPR_EVALNODE(0, val1);
EXPR_EVALNODE(1, val2);
*val = val1 + val2;
return EXPR_ERROR_NOERROR;
}
/* Function for subtraction */
EXPR_FUNCTIONSOLVER(__exprSubFunc)
{
EXPRTYPE val1, val2;
int err;
EXPR_REQUIRECOUNT(2);
EXPR_EVALNODE(0, val1);
EXPR_EVALNODE(1, val2);
*val = val1 - val2;
return EXPR_ERROR_NOERROR;
}
/* Function for multiplication */
EXPR_FUNCTIONSOLVER(__exprMulFunc)
{
EXPRTYPE val1, val2;
int err;
EXPR_REQUIRECOUNT(2);
EXPR_EVALNODE(0, val1);
EXPR_EVALNODE(1, val2);
*val = val1 * val2;
return EXPR_ERROR_NOERROR;
}
/* Function for division */
EXPR_FUNCTIONSOLVER(__exprDivFunc)
{
EXPRTYPE val1, val2;
int err;
EXPR_REQUIRECOUNT(2);
EXPR_EVALNODE(0, val1);
EXPR_EVALNODE(1, val2);
/* dividing by zero? */
if(val2 == 0.0)
{
EXPR_RETURNSOFTERR(EXPR_ERROR_DIVBYZERO);
}
*val = val1 / val2;
return EXPR_ERROR_NOERROR;
}
/* Function for negative */
EXPR_FUNCTIONSOLVER(__exprNegFunc)
{
EXPRTYPE val1;
int err;
EXPR_REQUIRECOUNT(1);
EXPR_EVALNODE(0, val1);
*val = -val1;
return EXPR_ERROR_NOERROR;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -