SNAP Library 2.3, Developer Reference  2014-06-16 11:58:46
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
exp.h
Go to the documentation of this file.
1 #include "bd.h"
2 
4 // Expression-Value-Type
6 
8 // Expression-Value
10 private:
11  static PExpVal UndefExpVal;
12  static PExpVal ZeroExpVal;
13  TInt ValType;
14  TAscFlt Flt;
15  TStr Str;
16  TExpValV ValV;
17  TExpValL ValL;
18 public:
19  TExpVal(const TExpValType& _ValType=evtUndef): ValType(_ValType){}
20  TExpVal(const TFlt& _Flt): ValType(evtFlt), Flt(_Flt){}
21  TExpVal(const double& _Flt): ValType(evtFlt), Flt(TFlt(_Flt)){}
22  TExpVal(const TStr& _Str): ValType(evtStr), Str(_Str){}
23  static PExpVal New(const TExpValType& ValType=evtUndef){
24  return PExpVal(new TExpVal(ValType));}
25  static PExpVal New(const TFlt& Flt){return PExpVal(new TExpVal(Flt));}
26  static PExpVal New(const double& Flt){return PExpVal(new TExpVal(Flt));}
27  static PExpVal New(const TStr& Str){return PExpVal(new TExpVal(Str));}
29  TExpVal(TSIn& SIn):
30  ValType(SIn), Flt(SIn), Str(SIn), ValV(SIn), ValL(SIn){}
31  static PExpVal Load(TSIn& SIn){return PExpVal(new TExpVal(SIn));}
32  void Save(TSOut& SOut) const {
33  ValType.Save(SOut);
34  Flt.Save(SOut); Str.Save(SOut); ValV.Save(SOut); ValL.Save(SOut);}
35 
36  TExpVal& operator=(const TExpVal&){Fail; return *this;}
37  bool operator==(const TExpVal& ExpVal) const;
38  bool operator<(const TExpVal& ExpVal) const;
39 
40  void AddToVec(const PExpVal& ExpVal){
41  IAssert(TExpValType(static_cast<int>(ValType))==evtVec); ValV.Add(ExpVal);}
42  void AddToLst(const PExpVal& ExpVal){
43  IAssert(TExpValType(static_cast<int>(ValType))==evtLst); ValL.AddBack(ExpVal);}
44 
45  TExpValType GetValType() const {return TExpValType(int(ValType));}
46  bool IsFltVal(TFlt& _Flt) const {
47  if (GetValType()==evtFlt){_Flt=Flt; return true;} else {return false;}}
48  bool IsFltVal(double& _Flt) const {
49  if (GetValType()==evtFlt){_Flt=Flt; return true;} else {return false;}}
50  double GetFltVal() const {
51  if (GetValType()==evtFlt){return Flt;} else {return 0;}}
52  int GetFltValAsInt(const bool& ThrowExceptP=true) const;
53  TStr GetStrVal() const {IAssert(GetValType()==evtStr); return Str;}
54 
55  void SaveTxt(TOLx& Lx) const;
56  void SaveTxt(const PSOut& SOut) const;
57  TStr GetStr() const;
58 
59  static PExpVal MkClone(const PExpVal& ExpVal);
60  static PExpVal GetUndefExpVal();
61  static PExpVal GetZeroExpVal();
62 };
63 
65 // Expression-Environment
66 typedef enum {
72 
74 private:
75  TRnd Rnd;
76 public:
77  TExpEnv(): Rnd(){}
78  virtual ~TExpEnv(){}
79  TExpEnv(TSIn& SIn): Rnd(SIn){}
80  static PExpEnv Load(TSIn& SIn){return new TExpEnv(SIn);}
81  virtual void Save(TSOut& SOut) const {Rnd.Save(SOut);}
82 
83  TExpEnv& operator=(const TExpEnv&){Fail; return *this;}
84  bool operator==(const TExpEnv&) const {Fail; return false;}
85 
86  virtual void PutVarVal(const TStr& /*VarNm*/, const PExpVal& /*ExpVal*/){Fail;}
87  virtual PExpVal GetVarVal(const TStr& /*VarNm*/, bool& IsVar){
88  IsVar=false; return TExpVal::GetUndefExpVal();}
89  virtual PExpVal GetVarVal(const TStr& VarNm){
90  bool IsVar; return GetVarVal(VarNm, IsVar);}
91  virtual int GetVars() const {return 0;}
92  virtual void GetVarNmVal(
93  const int& /*VarN*/, TStr& /*VarNm*/, PExpVal& /*VarVal*/) const {Fail;}
94 
96  const TStr& /*FuncNm*/, const TExpValV& /*ArgValV*/, bool& IsFunc){
97  IsFunc=false; return TExpVal::GetUndefExpVal();}
98 
99  virtual TRnd& GetRnd(){return Rnd;}
100 
101  static bool IsFuncOk(
102  const TStr& RqFuncNm, const TExpFuncArgType& RqFuncArgType,
103  const TStr& FuncNm, const TExpValV& ArgValV);
104 
106 };
107 
109 // Expression-BuiltIn-Ids
110 typedef enum {
111  // constants
113 
114  // trigonometric funcions
118 
119  // exponential functions
122 
123  // number manipulation functions
125 
126  // random deviates
130 } TExpBiId;
131 
133 // Expression-BuiltIn-Argument-Type
134 typedef enum {
136 } TExpBiArgType;
137 
139 // Expression-BuiltIn
140 class TExpBi{
141 private:
145  void AddBi(const TStr& ExpBiNm, const TExpBiId& ExpBiId,
146  const TExpBiArgType& ExpBiArgType=ebatUndef);
147 public:
148  TExpBi();
149 
150  TExpBi& operator=(const TExpBi&){Fail; return *this;}
151  bool operator==(const TExpBi&) const {Fail; return false;}
152 
153  bool IsExpBiId(const TStr& ExpBiNm, TExpBiId& ExpBiId);
154  bool IsExpBiId(const TStr& ExpBiNm){
155  TExpBiId ExpBiId; return IsExpBiId(ExpBiNm, ExpBiId);}
156  TExpBiArgType GetExpBiArgType(const TExpBiId& ExpBiId);
157 
158  void AssertArgs(const int& RqArgs, const int& ActArgs);
159  void AssertArgValType(const TExpValType& ExpValType, const PExpVal& ExpVal);
160 
161  PExpVal GetBiConstVal(const TExpBiId& ExpBiId);
163  const TExpBiId& ExpBiId, const TExpValV& ArgValV, const PExpEnv& ExpEnv);
164 };
165 
167 // Expression-Type
168 typedef enum {
172 
174 // Expression-Operator
175 typedef enum {
182 } TExpOp;
183 
185 // Expression
187 private:
188  static TExpBi ExpBi;
189  TInt ExpType;
190  TBool IsParen;
191  PExpVal ExpVal;
192  TStr ExpNm;
193  TInt ExpOp;
194  TInt ExpBiId;
195  TExpV ArgExpV;
196 private:
197  static const TFSet MulOpSymSet, UAddOpSymSet, AddOpSymSet, RelOpSymSet;
198  static const TFSet FactExpExpect, MulExpExpect, AddExpExpect;
199  static const TFSet RelExpExpect, ExpExpect;
200  static TExpOp GetExpOpFromLxSym(const TLxSym& LxSym);
201  static TLxSym GetLxSymFromExpOp(const TExpOp& ExpOp);
202  static PExp LoadTxtFact(TILx& Lx, const TFSet& Expect);
203  static PExp LoadTxtMulExp(TILx& Lx, const TFSet& Expect);
204  static PExp LoadTxtAddExp(TILx& Lx, const TFSet& Expect);
205  static PExp LoadTxtRelExp(TILx& Lx, const TFSet& Expect);
206  static PExp LoadTxtExp(TILx& Lx, const TFSet& Expect);
207  void SaveTxtOp(TOLx& Lx) const;
208  PExpVal EvalExpOp(
209  const PExpEnv& ExpEnv, const bool& DbgP, TChA& DbgChA);
210  PExpVal EvalExp(
211  const PExpEnv& ExpEnv, const bool& DbgP, TChA& DbgChA);
212 public:
213  TExp(const TExpType& _ExpType=etUndef):
214  ExpType(_ExpType), IsParen(false),
215  ExpVal(), ExpNm(), ExpOp(), ExpBiId(), ArgExpV(){}
216  TExp(const TExpOp& _ExpOp,
217  const PExp& Exp1, const PExp& Exp2=NULL, const PExp& Exp3=NULL);
218  TExp(const PExpVal& _ExpVal);
219  TExp(const TStr& _VarNm);
220  TExp(const TStr& _FuncNm, const TExpV& _ArgExpV);
221  ~TExp(){}
222  TExp(TSIn& SIn):
223  ExpType(SIn), IsParen(SIn),
224  ExpVal(SIn), ExpNm(SIn), ExpOp(SIn), ExpBiId(SIn), ArgExpV(SIn){}
225  static PExp Load(TSIn& SIn){return PExp(new TExp(SIn));}
226  void Save(TSOut& SOut) const {
227  ExpType.Save(SOut); IsParen.Save(SOut);
228  ExpVal.Save(SOut); ExpNm.Save(SOut); ExpOp.Save(SOut);
229  ExpBiId.Save(SOut); ArgExpV.Save(SOut);}
230 
231  TExp& operator=(const TExp&){Fail; return *this;}
232  bool operator==(const TExp&) const {Fail; return false;}
233 
234  static bool IsExpStrOk(const TStr& ExpStr, TStr& MsgStr){
235  bool Ok; LoadTxt(ExpStr, Ok, MsgStr); return Ok;}
236  static PExp LoadTxt(const PSIn& SIn, bool& Ok, TStr& MsgStr,
237  const TFSet& Expect=TFSet()|syEof);
238  static PExp LoadTxt(const TStr& ExpStr, bool& Ok, TStr& MsgStr){
239  PSIn SIn=TStrIn::New(ExpStr); return LoadTxt(SIn, Ok, MsgStr);}
240  static PExp LoadTxt(const TStr& ExpStr){
241  bool Ok; TStr MsgStr; return LoadTxt(ExpStr, Ok, MsgStr);}
242 
243  void SaveTxt(TOLx& Lx) const;
244  void SaveTxt(const PSOut& SOut) const {
245  TOLx Lx(SOut, TFSet()|oloCmtAlw|oloSigNum|oloCsSens); SaveTxt(Lx);}
246  TStr GetStr() const;
247  TStr GetTopObjNm() const;
248  int GetArgExps() const;
249  TStr GetArgExpStr(const int& ArgExpN) const;
250 
251  PExpVal Eval(bool& Ok, TStr& MsgStr, const bool& DbgP, TStr& DbgStr,
252  const PExpEnv& ExpEnv=TExpEnv::DfExpEnv);
254  bool Ok; TStr MsgStr; TStr DbgStr;
255  return Eval(Ok, MsgStr, false, DbgStr, ExpEnv);}
256  PExpVal Eval(bool& Ok, TStr& MsgStr, const PExpEnv& ExpEnv=TExpEnv::DfExpEnv){
257  TStr DbgStr; return Eval(Ok, MsgStr, false, DbgStr, ExpEnv);}
258  PExpVal Eval(const PExpEnv& ExpEnv, const bool& DbgP, TStr& DbgStr){
259  bool Ok; TStr MsgStr; return Eval(Ok, MsgStr, DbgP, DbgStr, ExpEnv);}
260 
261  static PExpVal LoadAndEvalExpL(
262  const TStr& ExpLStr, bool& Ok, TStr& MsgStr,
263  const PExpEnv& ExpEnv=TExpEnv::DfExpEnv);
264 
265  static TStr GetExpTypeStr(const TExpType& ExpType);
266  static TStr GetExpOpStr(const TExpOp& ExpOp){
268  static void GetBiDescV(TStrPrV& BiDescV);
269 };
270 
272 // Expression-Help-Item
274 private:
275  TStr Nm;
276  TStr TypeStr;
277  TStr DescStr;
278  TStr DfValStr;
279 public:
280  TExpHelpItem(): Nm(), TypeStr(), DescStr(), DfValStr(){}
281  TExpHelpItem(const TStr& _Nm, const TStr& _TypeStr,
282  const TStr& _DescStr, const TStr& _DfValStr):
283  Nm(_Nm), TypeStr(_TypeStr), DescStr(_DescStr), DfValStr(_DfValStr){}
284  static PExpHelpItem New(const TStr& Nm, const TStr& TypeStr,
285  const TStr& DescStr, const TStr& DfValStr){
286  return PExpHelpItem(new TExpHelpItem(Nm, TypeStr, DescStr, DfValStr));}
289  Nm(SIn), TypeStr(SIn), DescStr(SIn), DfValStr(SIn){}
290  static PExpHelpItem Load(TSIn& SIn){
291  return PExpHelpItem(new TExpHelpItem(SIn));}
292  void Save(TSOut& SOut) const {
293  Nm.Save(SOut); TypeStr.Save(SOut); DescStr.Save(SOut); DfValStr.Save(SOut);}
294 
295  TExpHelpItem& operator=(const TExpHelpItem&){Fail; return *this;}
296  bool operator==(const TExpHelpItem&) const {Fail; return false;}
297 
298  // component retrieval
299  TStr GetNm() const {return Nm;}
300  TStr GetTypeStr() const {return TypeStr;}
301  TStr GetDescStr() const {return DescStr;}
302  TStr GetDfValStr() const {return DfValStr;}
303 };
304 
306 // Expression-Help-Object
308 
310 private:
311  TInt Type; // TExpHelpObjType
312  TStr CatNm;
313  PExpHelpItem HdItem;
314  TExpHelpItemV ArgItemV;
315 public:
317  TExpHelpObj(const TExpHelpObjType& _Type, const TStr& _CatNm,
318  const PExpHelpItem& _HdItem, const TExpHelpItemV& _ArgItemV):
319  Type(_Type), CatNm(_CatNm), HdItem(_HdItem), ArgItemV(_ArgItemV){}
320  static PExpHelpObj New(const TExpHelpObjType& Type, const TStr& CatNm,
321  const PExpHelpItem& HdItem, const TExpHelpItemV& ArgItemV=TExpHelpItemV()){
322  return PExpHelpObj(new TExpHelpObj(Type, CatNm, HdItem, ArgItemV));}
325  Type(SIn), CatNm(SIn), HdItem(SIn), ArgItemV(SIn){}
326  static PExpHelpObj Load(TSIn& SIn){
327  return PExpHelpObj(new TExpHelpObj(SIn));}
328  void Save(TSOut& SOut) const {
329  Type.Save(SOut); CatNm.Save(SOut); HdItem.Save(SOut); ArgItemV.Save(SOut);}
330 
331  TExpHelpObj& operator=(const TExpHelpObj&){Fail; return *this;}
332  bool operator==(const TExpHelpObj&) const {Fail; return false;}
333 
334  // component retrieval
335  TExpHelpObjType GetType() const {return TExpHelpObjType(int(Type));}
336  TStr GetCatNm() const {return CatNm;}
337  PExpHelpItem GetHdItem() const {return HdItem;}
338  int GetArgItems() const {return ArgItemV.Len();}
339  PExpHelpItem GetArgItem(const int& ArgItemN) const {
340  return ArgItemV[ArgItemN];}
341 
342  // strings
343  TStr GetHdArgNmStr() const;
344 
345  // object type
346  static TExpHelpObjType GetObjTypeFromStr(const TStr& TypeStr);
347 };
348 
350 // Expression-Help
352 private:
354 public:
355  TExpHelp(): ObjV(){}
356  static PExpHelp New(){return PExpHelp(new TExpHelp());}
358  TExpHelp(TSIn& SIn): ObjV(SIn){}
359  static PExpHelp Load(TSIn& SIn){return PExpHelp(new TExpHelp(SIn));}
360  void Save(TSOut& SOut) const {ObjV.Save(SOut);}
361 
362  TExpHelp& operator=(const TExpHelp&){Fail; return *this;}
363  bool operator==(const TExpHelp&) const {Fail; return false;}
364 
365  static PExpHelp LoadXml(const PSIn& SIn);
366  static PExpHelp LoadXml(const TStr& FNm){
367  PSIn SIn=TFIn::New(FNm); return LoadXml(SIn);}
368 
369  void AddObj(const PExpHelpObj& Obj){ObjV.Add(Obj);}
370 
371  void GetCatNmV(TStrV& CatNmV) const;
372  void GetObjHdNmV(const TStr& CatNm, TStrV& ObjHdNmV) const;
373 
374  PExpHelpObj GetObj(const TStr& ObjNm) const;
375 };
376 
Definition: exp.h:171
Definition: exp.h:69
Definition: exp.h:5
#define IAssert(Cond)
Definition: bd.h:262
Definition: exp.h:121
Definition: exp.h:70
void SaveTxt(const PSOut &SOut) const
Definition: exp.h:244
TExpHelp(TSIn &SIn)
Definition: exp.h:358
Definition: exp.h:169
PExpVal GetBiConstVal(const TExpBiId &ExpBiId)
Definition: exp.cpp:268
TExpHelpItem(const TStr &_Nm, const TStr &_TypeStr, const TStr &_DescStr, const TStr &_DfValStr)
Definition: exp.h:281
Definition: lx.h:248
PExpVal Eval(bool &Ok, TStr &MsgStr, const PExpEnv &ExpEnv=TExpEnv::DfExpEnv)
Definition: exp.h:256
TExpBi()
Definition: exp.cpp:183
static PExpHelpItem Load(TSIn &SIn)
Definition: exp.h:290
Definition: exp.h:170
bool operator==(const TExp &) const
Definition: exp.h:232
Definition: exp.h:116
Definition: exp.h:67
TStr GetCatNm() const
Definition: exp.h:336
static TLxSym GetLxSymFromExpOp(const TExpOp &ExpOp)
Definition: exp.cpp:628
bool operator==(const TExpEnv &) const
Definition: exp.h:84
virtual int GetVars() const
Definition: exp.h:91
Definition: dt.h:11
TExpVal(const double &_Flt)
Definition: exp.h:21
static PExp LoadTxt(const TStr &ExpStr)
Definition: exp.h:240
Definition: exp.h:180
TExpVal & operator=(const TExpVal &)
Definition: exp.h:36
TExpOp
Definition: exp.h:175
bool operator==(const TExpHelpItem &) const
Definition: exp.h:296
void AddBi(const TStr &ExpBiNm, const TExpBiId &ExpBiId, const TExpBiArgType &ExpBiArgType=ebatUndef)
Definition: exp.cpp:235
Definition: exp.h:5
static PExpVal GetUndefExpVal()
Definition: exp.cpp:123
Definition: exp.h:179
Definition: exp.h:180
TExpHelpObj(const TExpHelpObjType &_Type, const TStr &_CatNm, const PExpHelpItem &_HdItem, const TExpHelpItemV &_ArgItemV)
Definition: exp.h:317
TExpBiArgType
Definition: exp.h:134
#define Fail
Definition: bd.h:238
virtual void GetVarNmVal(const int &, TStr &, PExpVal &) const
Definition: exp.h:92
Definition: exp.h:117
TLxSym
Definition: lx.h:44
Definition: exp.h:180
Definition: bits.h:119
TExpVal(const TFlt &_Flt)
Definition: exp.h:20
Definition: exp.h:176
void Save(TSOut &SOut) const
Definition: exp.h:292
Definition: exp.h:116
static PExpHelp LoadXml(const TStr &FNm)
Definition: exp.h:366
TExpHelpItem & operator=(const TExpHelpItem &)
Definition: exp.h:295
Definition: exp.h:5
Definition: exp.h:9
virtual void PutVarVal(const TStr &, const PExpVal &)
Definition: exp.h:86
Definition: exp.h:120
TStr GetDfValStr() const
Definition: exp.h:302
PExpHelpItem GetHdItem() const
Definition: exp.h:337
virtual PExpVal GetVarVal(const TStr &, bool &IsVar)
Definition: exp.h:87
~TExp()
Definition: exp.h:221
static PExpHelpObj New(const TExpHelpObjType &Type, const TStr &CatNm, const PExpHelpItem &HdItem, const TExpHelpItemV &ArgItemV=TExpHelpItemV())
Definition: exp.h:320
Definition: exp.h:351
Definition: exp.h:120
Definition: exp.h:307
Definition: exp.h:178
TPt< TExpVal > PExpVal
Definition: exp.h:9
Definition: exp.h:181
static PExpEnv Load(TSIn &SIn)
Definition: exp.h:80
void Save(TSOut &SOut) const
Definition: exp.h:226
~TExpHelpObj()
Definition: exp.h:323
Definition: exp.h:135
TPt< TExp > PExp
Definition: exp.h:186
virtual ~TExpEnv()
Definition: exp.h:78
TExpVal(TSIn &SIn)
Definition: exp.h:29
Definition: exp.h:186
Definition: dt.h:1289
Definition: exp.h:178
Definition: fl.h:58
#define ClassTPVL(TNm, PNm, TNmV, TNmL, TNmLN)
Definition: bd.h:177
Definition: exp.h:180
Definition: exp.h:115
Definition: exp.h:112
#define ClassTP(TNm, PNm)
Definition: bd.h:126
TExpFuncArgType
Definition: exp.h:66
Definition: exp.h:179
static PSIn New(const TStr &FNm)
Definition: fl.cpp:290
int GetArgItems() const
Definition: exp.h:338
#define ClassTPV(TNm, PNm, TNmV)
Definition: bd.h:162
TExpHelpObj(TSIn &SIn)
Definition: exp.h:324
PPp MkClone(const PPp &Pp)
Definition: pp.h:237
PExpVal Eval(const PExpEnv &ExpEnv=TExpEnv::DfExpEnv)
Definition: exp.h:253
void AssertArgs(const int &RqArgs, const int &ActArgs)
Definition: exp.cpp:255
Definition: exp.h:5
PExpVal Val_E
Definition: exp.h:144
Definition: exp.h:112
static TStr GetExpOpStr(const TExpOp &ExpOp)
Definition: exp.h:266
Definition: exp.h:135
TExpBiArgType GetExpBiArgType(const TExpBiId &ExpBiId)
Definition: exp.cpp:250
virtual PExpVal GetVarVal(const TStr &VarNm)
Definition: exp.h:89
void AddObj(const PExpHelpObj &Obj)
Definition: exp.h:369
static PExpVal New(const TFlt &Flt)
Definition: exp.h:25
void Save(TSOut &SOut, const bool &IsSmall=false) const
Definition: dt.h:440
Definition: exp.h:73
Definition: exp.h:124
bool operator==(const TExpHelp &) const
Definition: exp.h:363
TVec< PExpHelpItem > TExpHelpItemV
Definition: exp.h:273
Definition: exp.h:307
Definition: lx.h:51
~TExpVal()
Definition: exp.h:28
static PSIn New(const TStr &Str)
Definition: dt.h:709
Definition: lx.h:129
static PExp Load(TSIn &SIn)
Definition: exp.h:225
Definition: exp.h:68
Definition: exp.h:170
static PExpHelp New()
Definition: exp.h:356
Definition: exp.h:180
Definition: exp.h:171
TExpVal(const TStr &_Str)
Definition: exp.h:22
TStr GetStrVal() const
Definition: exp.h:53
Definition: exp.h:178
Definition: lx.h:251
Definition: exp.h:115
bool operator==(const TExpHelpObj &) const
Definition: exp.h:332
Definition: exp.h:5
PExpVal Val_False
Definition: exp.h:144
Definition: exp.h:140
TExpValType GetValType() const
Definition: exp.h:45
TPt< TExpHelp > PExpHelp
Definition: exp.h:351
TStrIntH ExpBiNmToIdH
Definition: exp.h:142
Definition: exp.h:179
Definition: exp.h:124
Definition: exp.h:69
static PExpVal New(const double &Flt)
Definition: exp.h:26
TExpBiId
Definition: exp.h:110
TExpValType
Definition: exp.h:5
virtual void Save(TSOut &SOut) const
Definition: exp.h:81
Definition: exp.h:180
Definition: exp.h:178
Definition: fl.h:128
static PExp LoadTxt(const TStr &ExpStr, bool &Ok, TStr &MsgStr)
Definition: exp.h:238
~TExpHelpItem()
Definition: exp.h:287
double GetFltVal() const
Definition: exp.h:50
Definition: exp.h:121
PExpVal GetBiFuncVal(const TExpBiId &ExpBiId, const TExpValV &ArgValV, const PExpEnv &ExpEnv)
Definition: exp.cpp:279
bool IsExpBiId(const TStr &ExpBiNm, TExpBiId &ExpBiId)
Definition: exp.cpp:241
Definition: exp.h:177
Definition: exp.h:112
virtual PExpVal GetFuncVal(const TStr &, const TExpValV &, bool &IsFunc)
Definition: exp.h:95
bool operator==(const TExpBi &) const
Definition: exp.h:151
Definition: dt.h:1041
bool IsExpBiId(const TStr &ExpBiNm)
Definition: exp.h:154
static PExpVal New(const TExpValType &ValType=evtUndef)
Definition: exp.h:23
Definition: exp.h:112
Definition: dt.h:201
TStr GetNm() const
Definition: exp.h:299
Definition: exp.h:117
void AddToVec(const PExpVal &ExpVal)
Definition: exp.h:40
TExpEnv & operator=(const TExpEnv &)
Definition: exp.h:83
static bool IsExpStrOk(const TStr &ExpStr, TStr &MsgStr)
Definition: exp.h:234
Definition: exp.h:124
TExpHelp & operator=(const TExpHelp &)
Definition: exp.h:362
virtual TRnd & GetRnd()
Definition: exp.h:99
void AssertArgValType(const TExpValType &ExpValType, const PExpVal &ExpVal)
Definition: exp.cpp:261
Definition: exp.h:115
Definition: exp.h:307
Definition: exp.h:178
TExp(TSIn &SIn)
Definition: exp.h:222
Definition: exp.h:307
static PExpEnv DfExpEnv
Definition: exp.h:105
Definition: exp.h:307
static PExpVal New(const TStr &Str)
Definition: exp.h:27
Definition: exp.h:69
void Save(TSOut &SOut) const
Definition: xmlser.h:16
Definition: dt.h:412
Definition: exp.h:135
PExpVal Val_Undef
Definition: exp.h:144
static PExpHelpObj Load(TSIn &SIn)
Definition: exp.h:326
static PExpHelp Load(TSIn &SIn)
Definition: exp.h:359
Definition: exp.h:120
TExpHelpObj & operator=(const TExpHelpObj &)
Definition: exp.h:331
Definition: lx.h:249
void AddToLst(const PExpVal &ExpVal)
Definition: exp.h:42
PExpVal Eval(const PExpEnv &ExpEnv, const bool &DbgP, TStr &DbgStr)
Definition: exp.h:258
PExpHelpItem GetArgItem(const int &ArgItemN) const
Definition: exp.h:339
static TStr GetSymStr(const TLxSym &Sym)
Definition: lx.cpp:142
Definition: exp.h:68
Definition: exp.h:170
Definition: exp.h:171
PExpVal Val_True
Definition: exp.h:144
Definition: exp.h:120
static PExpHelpItem New(const TStr &Nm, const TStr &TypeStr, const TStr &DescStr, const TStr &DfValStr)
Definition: exp.h:284
Definition: exp.h:177
Definition: exp.h:171
bool IsFltVal(double &_Flt) const
Definition: exp.h:48
Definition: exp.h:67
TPt< TExpHelpItem > PExpHelpItem
Definition: exp.h:273
void Save(TSOut &SOut) const
Definition: exp.h:328
Definition: lx.h:248
void Save(TSOut &SOut) const
Definition: exp.h:360
TExpHelpItem(TSIn &SIn)
Definition: exp.h:288
Definition: exp.h:117
Definition: exp.h:124
Definition: exp.h:116
TExpHelpObjType GetType() const
Definition: exp.h:335
TStr GetTypeStr() const
Definition: exp.h:300
void Save(TSOut &SOut) const
Definition: exp.h:32
TExpType
Definition: exp.h:168
TExp & operator=(const TExp &)
Definition: exp.h:231
Definition: dt.h:881
TPt< TExpHelpObj > PExpHelpObj
Definition: exp.h:309
~TExpHelp()
Definition: exp.h:357
TExpEnv(TSIn &SIn)
Definition: exp.h:79
Definition: exp.h:178
TExpHelpObjType
Definition: exp.h:307
TStr GetDescStr() const
Definition: exp.h:301
TExpBi & operator=(const TExpBi &)
Definition: exp.h:150
static PExpVal Load(TSIn &SIn)
Definition: exp.h:31
Definition: dt.h:1391
Definition: exp.h:112
bool IsFltVal(TFlt &_Flt) const
Definition: exp.h:46
TIntIntH ExpBiIdToArgTypeH
Definition: exp.h:143
Definition: exp.h:171
Definition: exp.h:124
Definition: exp.h:68
PExpVal Val_Pi
Definition: exp.h:144