Modifica 95/11

Aggiunta funzione ansi alle espressioni


git-svn-id: svn://10.65.10.50/trunk@1716 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1995-08-21 14:46:26 +00:00
parent 501f7783e8
commit d6047bf5b8
2 changed files with 13 additions and 4 deletions

View File

@ -5,6 +5,7 @@
#include <expr.h>
#include <stack.h>
#include <utility.h>
#include <date.h>
TCodearray::TCodearray(int size) : _rpn(size)
{
@ -490,6 +491,12 @@ void TExpression::eval()
evalstack.push(o1);
}
break;
case _ansi:
{
const TDate d((const TString&)evalstack.pop());
const TString16 s(d.string(ANSI));
evalstack.push(s);
}
default:
break;
}
@ -507,11 +514,11 @@ HIDDEN char _tok[81];
HIDDEN const char* _fntable[] = { "sqrt", "sqr", "exp10", "exp", "log10",
"log", "sin", "cos", "tan", "left",
"right", "pow", "min", "max", "mid", "upper",
"round", NULL };
"round", "ansi", NULL };
HIDDEN TCodesym _fntok[] = { _sqrt, _sqr, _exp10, _exp, _log10, _log,
_sin, _cos, _tan, _left, _right, _pow,
_min, _max, _mid, _upper, _round};
_min, _max, _mid, _upper, _round, _ansi};
TCodesym TExpression::__gettoken(bool reduct)
@ -723,7 +730,8 @@ TCodesym TExpression::__factor(TCodesym startsym)
case _pow:
case _min:
case _max:
case _round:
case _round:
case _ansi:
sym = __gettoken();
if (sym == _lpar) sym = __gettoken(TRUE);
else break;

View File

@ -52,7 +52,8 @@ enum TCodesym {
_max, // @emem Massimo tra piu' elementi
_mid, // @emem Media degli elementi
_upper, // @emem Trasformazione in maiuscolo
_round } ; // @emem Arrotondamento
_round, // @emem Arrotondamento
_ansi } ; // @emem Data in ansi
// @enum TTypeesp | Tipi di espressioni definiti
enum TTypeexp {