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:
parent
501f7783e8
commit
d6047bf5b8
@ -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;
|
||||
|
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user