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
TExpEnv Class Reference

#include <exp.h>

Collaboration diagram for TExpEnv:

Public Member Functions

 TExpEnv ()
 
virtual ~TExpEnv ()
 
 TExpEnv (TSIn &SIn)
 
virtual void Save (TSOut &SOut) const
 
TExpEnvoperator= (const TExpEnv &)
 
bool operator== (const TExpEnv &) const
 
virtual void PutVarVal (const TStr &, const PExpVal &)
 
virtual PExpVal GetVarVal (const TStr &, bool &IsVar)
 
virtual PExpVal GetVarVal (const TStr &VarNm)
 
virtual int GetVars () const
 
virtual void GetVarNmVal (const int &, TStr &, PExpVal &) const
 
virtual PExpVal GetFuncVal (const TStr &, const TExpValV &, bool &IsFunc)
 
virtual TRndGetRnd ()
 

Static Public Member Functions

static PExpEnv Load (TSIn &SIn)
 
static bool IsFuncOk (const TStr &RqFuncNm, const TExpFuncArgType &RqFuncArgType, const TStr &FuncNm, const TExpValV &ArgValV)
 

Static Public Attributes

static PExpEnv DfExpEnv =PExpEnv(new TExpEnv())
 

Private Attributes

TCRef CRef
 
TRnd Rnd
 

Friends

class TPt< TExpEnv >
 

Detailed Description

Definition at line 73 of file exp.h.

Constructor & Destructor Documentation

TExpEnv::TExpEnv ( )
inline

Definition at line 77 of file exp.h.

77 : Rnd(){}
TRnd Rnd
Definition: exp.h:75
virtual TExpEnv::~TExpEnv ( )
inlinevirtual

Definition at line 78 of file exp.h.

78 {}
TExpEnv::TExpEnv ( TSIn SIn)
inline

Definition at line 79 of file exp.h.

79 : Rnd(SIn){}
TRnd Rnd
Definition: exp.h:75

Member Function Documentation

virtual PExpVal TExpEnv::GetFuncVal ( const TStr ,
const TExpValV ,
bool &  IsFunc 
)
inlinevirtual

Definition at line 95 of file exp.h.

References TExpVal::GetUndefExpVal().

96  {
97  IsFunc=false; return TExpVal::GetUndefExpVal();}
static PExpVal GetUndefExpVal()
Definition: exp.cpp:123

Here is the call graph for this function:

virtual TRnd& TExpEnv::GetRnd ( )
inlinevirtual

Definition at line 99 of file exp.h.

99 {return Rnd;}
TRnd Rnd
Definition: exp.h:75
virtual void TExpEnv::GetVarNmVal ( const int &  ,
TStr ,
PExpVal  
) const
inlinevirtual

Definition at line 92 of file exp.h.

References Fail.

93  {Fail;}
#define Fail
Definition: bd.h:238
virtual int TExpEnv::GetVars ( ) const
inlinevirtual

Definition at line 91 of file exp.h.

91 {return 0;}
virtual PExpVal TExpEnv::GetVarVal ( const TStr ,
bool &  IsVar 
)
inlinevirtual

Definition at line 87 of file exp.h.

References TExpVal::GetUndefExpVal().

87  {
88  IsVar=false; return TExpVal::GetUndefExpVal();}
static PExpVal GetUndefExpVal()
Definition: exp.cpp:123

Here is the call graph for this function:

virtual PExpVal TExpEnv::GetVarVal ( const TStr VarNm)
inlinevirtual

Definition at line 89 of file exp.h.

89  {
90  bool IsVar; return GetVarVal(VarNm, IsVar);}
virtual PExpVal GetVarVal(const TStr &, bool &IsVar)
Definition: exp.h:87
bool TExpEnv::IsFuncOk ( const TStr RqFuncNm,
const TExpFuncArgType RqFuncArgType,
const TStr FuncNm,
const TExpValV ArgValV 
)
static

Definition at line 137 of file exp.cpp.

References efatFlt, efatFltFlt, efatFltStr, efatStr, efatStrAny, efatStrFlt, efatStrStr, efatVoid, evtFlt, evtStr, Fail, TStr::GetUc(), and TVec< TVal, TSizeTy >::Len().

139  {
140  if (RqFuncNm.GetUc()!=FuncNm.GetUc()){return false;}
141  switch (RqFuncArgType){
142  case efatVoid: return ArgValV.Len()==0;
143  case efatFlt:
144  if (ArgValV.Len()!=1){return false;}
145  if (ArgValV[0]->GetValType()!=evtFlt){return false;}
146  return true;
147  case efatStr:
148  if (ArgValV.Len()!=1){return false;}
149  if (ArgValV[0]->GetValType()!=evtStr){return false;}
150  return true;
151  case efatFltFlt:
152  if (ArgValV.Len()!=2){return false;}
153  if (ArgValV[0]->GetValType()!=evtFlt){return false;}
154  if (ArgValV[1]->GetValType()!=evtFlt){return false;}
155  return true;
156  case efatFltStr:
157  if (ArgValV.Len()!=2){return false;}
158  if (ArgValV[0]->GetValType()!=evtFlt){return false;}
159  if (ArgValV[1]->GetValType()!=evtStr){return false;}
160  return true;
161  case efatStrFlt:
162  if (ArgValV.Len()!=2){return false;}
163  if (ArgValV[0]->GetValType()!=evtStr){return false;}
164  if (ArgValV[1]->GetValType()!=evtFlt){return false;}
165  return true;
166  case efatStrStr:
167  if (ArgValV.Len()!=2){return false;}
168  if (ArgValV[0]->GetValType()!=evtStr){return false;}
169  if (ArgValV[1]->GetValType()!=evtStr){return false;}
170  return true;
171  case efatStrAny:
172  if (ArgValV.Len()!=2){return false;}
173  if (ArgValV[0]->GetValType()!=evtStr){return false;}
174  return true;
175  default: Fail; return false;
176  }
177 }
Definition: exp.h:69
Definition: exp.h:70
Definition: exp.h:67
#define Fail
Definition: bd.h:238
TStr GetUc() const
Definition: dt.h:493
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:535
Definition: exp.h:5
Definition: exp.h:68
Definition: exp.h:5
Definition: exp.h:69
Definition: exp.h:69
Definition: exp.h:68
Definition: exp.h:68

Here is the call graph for this function:

static PExpEnv TExpEnv::Load ( TSIn SIn)
inlinestatic

Definition at line 80 of file exp.h.

80 {return new TExpEnv(SIn);}
TExpEnv()
Definition: exp.h:77
TExpEnv& TExpEnv::operator= ( const TExpEnv )
inline

Definition at line 83 of file exp.h.

References Fail.

83 {Fail; return *this;}
#define Fail
Definition: bd.h:238
bool TExpEnv::operator== ( const TExpEnv ) const
inline

Definition at line 84 of file exp.h.

References Fail.

84 {Fail; return false;}
#define Fail
Definition: bd.h:238
virtual void TExpEnv::PutVarVal ( const TStr ,
const PExpVal  
)
inlinevirtual

Definition at line 86 of file exp.h.

References Fail.

86 {Fail;}
#define Fail
Definition: bd.h:238
virtual void TExpEnv::Save ( TSOut SOut) const
inlinevirtual

Definition at line 81 of file exp.h.

81 {Rnd.Save(SOut);}
TRnd Rnd
Definition: exp.h:75
void Save(TSOut &SOut) const
Definition: dt.h:23

Friends And Related Function Documentation

friend class TPt< TExpEnv >
friend

Definition at line 73 of file exp.h.

Member Data Documentation

TCRef TExpEnv::CRef
private

Definition at line 73 of file exp.h.

PExpEnv TExpEnv::DfExpEnv =PExpEnv(new TExpEnv())
static

Definition at line 105 of file exp.h.

TRnd TExpEnv::Rnd
private

Definition at line 75 of file exp.h.


The documentation for this class was generated from the following files: