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 <expr.h>
|
||||||
#include <stack.h>
|
#include <stack.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
|
#include <date.h>
|
||||||
|
|
||||||
TCodearray::TCodearray(int size) : _rpn(size)
|
TCodearray::TCodearray(int size) : _rpn(size)
|
||||||
{
|
{
|
||||||
@ -490,6 +491,12 @@ void TExpression::eval()
|
|||||||
evalstack.push(o1);
|
evalstack.push(o1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case _ansi:
|
||||||
|
{
|
||||||
|
const TDate d((const TString&)evalstack.pop());
|
||||||
|
const TString16 s(d.string(ANSI));
|
||||||
|
evalstack.push(s);
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -507,11 +514,11 @@ HIDDEN char _tok[81];
|
|||||||
HIDDEN const char* _fntable[] = { "sqrt", "sqr", "exp10", "exp", "log10",
|
HIDDEN const char* _fntable[] = { "sqrt", "sqr", "exp10", "exp", "log10",
|
||||||
"log", "sin", "cos", "tan", "left",
|
"log", "sin", "cos", "tan", "left",
|
||||||
"right", "pow", "min", "max", "mid", "upper",
|
"right", "pow", "min", "max", "mid", "upper",
|
||||||
"round", NULL };
|
"round", "ansi", NULL };
|
||||||
|
|
||||||
HIDDEN TCodesym _fntok[] = { _sqrt, _sqr, _exp10, _exp, _log10, _log,
|
HIDDEN TCodesym _fntok[] = { _sqrt, _sqr, _exp10, _exp, _log10, _log,
|
||||||
_sin, _cos, _tan, _left, _right, _pow,
|
_sin, _cos, _tan, _left, _right, _pow,
|
||||||
_min, _max, _mid, _upper, _round};
|
_min, _max, _mid, _upper, _round, _ansi};
|
||||||
|
|
||||||
TCodesym TExpression::__gettoken(bool reduct)
|
TCodesym TExpression::__gettoken(bool reduct)
|
||||||
|
|
||||||
@ -724,6 +731,7 @@ TCodesym TExpression::__factor(TCodesym startsym)
|
|||||||
case _min:
|
case _min:
|
||||||
case _max:
|
case _max:
|
||||||
case _round:
|
case _round:
|
||||||
|
case _ansi:
|
||||||
sym = __gettoken();
|
sym = __gettoken();
|
||||||
if (sym == _lpar) sym = __gettoken(TRUE);
|
if (sym == _lpar) sym = __gettoken(TRUE);
|
||||||
else break;
|
else break;
|
||||||
|
@ -52,7 +52,8 @@ enum TCodesym {
|
|||||||
_max, // @emem Massimo tra piu' elementi
|
_max, // @emem Massimo tra piu' elementi
|
||||||
_mid, // @emem Media degli elementi
|
_mid, // @emem Media degli elementi
|
||||||
_upper, // @emem Trasformazione in maiuscolo
|
_upper, // @emem Trasformazione in maiuscolo
|
||||||
_round } ; // @emem Arrotondamento
|
_round, // @emem Arrotondamento
|
||||||
|
_ansi } ; // @emem Data in ansi
|
||||||
|
|
||||||
// @enum TTypeesp | Tipi di espressioni definiti
|
// @enum TTypeesp | Tipi di espressioni definiti
|
||||||
enum TTypeexp {
|
enum TTypeexp {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user