Marsyas  0.6.0-alpha
Data Structures | Namespaces | Defines | Functions
/usr/src/RPM/BUILD/marsyas-0.6.0/src/marsyas/expr/ExNode.h File Reference
#include <marsyas/expr/ExVal.h>
#include <marsyas/expr/ExSymTbl.h>
#include <marsyas/expr/ExCommon.h>
#include <marsyas/sched/TmTimer.h>
#include <marsyas/system/MarControl.h>
#include <marsyas/system/MarSystem.h>
#include <marsyas/common_header.h>
#include <string>
#include <iostream>
#include <cstdlib>

Go to the source code of this file.

Data Structures

class  ExCNameAlias
class  ExFun
class  ExFun_ListLen
class  ExFun_NaturalAbs
class  ExFun_NaturalMax
class  ExFun_NaturalMin
class  ExFun_NaturalRand
class  ExFun_NaturalRandRange1
class  ExFun_NaturalRandRange2
class  ExFun_NaturalSRand
class  ExFun_RealAbs
class  ExFun_RealACos
class  ExFun_RealASin
class  ExFun_RealATan
class  ExFun_RealCos
class  ExFun_RealCosH
class  ExFun_RealLog
class  ExFun_RealLog10
class  ExFun_RealLog2
class  ExFun_RealRand
class  ExFun_RealSin
class  ExFun_RealSinH
class  ExFun_RealSqrt
class  ExFun_RealTan
class  ExFun_StreamOutBool
class  ExFun_StreamOutNatural
class  ExFun_StreamOutNBool
class  ExFun_StreamOutNNatural
class  ExFun_StreamOutNReal
class  ExFun_StreamOutNString
class  ExFun_StreamOutNVal
class  ExFun_StreamOutReal
class  ExFun_StreamOutString
class  ExFun_StrLen
class  ExFun_StrSub
class  ExFun_TimerGetName
class  ExFun_TimerGetPrefix
class  ExFun_TimerGetTime
class  ExFun_TimerGetType
class  ExFun_TimerIntrvlSize
class  ExFun_TimerUpdBool
class  ExFun_TimerUpdNatural
class  ExFun_TimerUpdReal
class  ExFun_TimerUpdString
class  ExNode
 ExNode is the base class for an expression tree node. More...
class  ExNode_ADD
class  ExNode_AND
class  ExNode_AsgnVar
class  ExNode_BoolNeg
class  ExNode_BoolToString
class  ExNode_Conditional
class  ExNode_DIV
class  ExNode_EQ
class  ExNode_GE
class  ExNode_GetCtrlBool
class  ExNode_GetCtrlNatural
class  ExNode_GetCtrlReal
class  ExNode_GetCtrlString
class  ExNode_GetElem
class  ExNode_GT
class  ExNode_IterFor
 iterate over list and do something with each value in the list, not destroying old list More...
class  ExNode_IterIter
 iter : iterate over list and replace each element in original list More...
class  ExNode_IterMap
 map : iterate over list creating new list of same size without destroying original More...
class  ExNode_IterRFor
class  ExNode_LE
class  ExNode_Link
class  ExNode_LT
class  ExNode_MathNeg_Natural
class  ExNode_MathNeg_Real
class  ExNode_MOD
class  ExNode_MUL
class  ExNode_NaturalToReal
class  ExNode_NaturalToString
class  ExNode_NE
class  ExNode_OR
class  ExNode_Range
class  ExNode_ReadVar
class  ExNode_RealToNatural
class  ExNode_RealToString
class  ExNode_SetCtrlBool
class  ExNode_SetCtrlNatural
class  ExNode_SetCtrlReal
class  ExNode_SetCtrlString
class  ExNode_SetElem
class  ExNode_StringFor
 iterate over list and do something with each value in the list, not destroying old list, returns unit More...
class  ExNode_StringIter
 iter : iterate over list and replace each element in original list More...
class  ExNode_StringMap
class  ExNode_StringRFor
class  ExNode_SUB

Namespaces

namespace  Marsyas

Defines

#define BINOP(_NM, _KIND, _OP)
#define ExFun_StreamOutNType(_TYPE, _CONVERSION, _METHOD, _type, _sig)
#define ExFun_StreamOutType(_TYPE, _CONVERSION, _METHOD, _type, _sig)
#define GETCTRL(_T, _METHOD, _TP)
#define LibExFun1(_NM, _FUN, _T1, type_, sig_)
#define LibExFun2(_NM, _FUN, _T1, _T2)
#define LibExNode0(_NM, _FUN)
#define SETCTRL(_N, _METHOD, _TP)
#define TIMER_GET(_NM, _ZERO, _METHOD, _type, _sig)
#define TIMER_UPD(_NM, _ZERO, _METHOD, _type, _sig)
#define UNARYOP(_NM, _KIND, _TYPE, _TO, _OP)

Functions

void load_symbols (ExRecord *)
void loadlib_List (ExRecord *st)
void loadlib_Natural (ExRecord *st)
void loadlib_Real (ExRecord *st)
void loadlib_Stream (ExRecord *st)
void loadlib_String (ExRecord *st)
void loadlib_timer (ExRecord *st, TmTimer **tmr)

Define Documentation

#define BINOP (   _NM,
  _KIND,
  _OP 
)
Value:
class ExNode_##_NM : public ExNode { \
    ExNode* lchild; ExNode* rchild; std::string d; public: \
    ExNode_##_NM(std::string t, ExNode* u, ExNode* v) : ExNode(_KIND,t) { \
        lchild=u; rchild=v; \
        if (getType()=="mrs_real") { d="d"; } else d=""; \
    } \
    virtual ~ExNode_##_NM() { lchild->deref(); rchild->deref(); } \
    virtual ExVal calc() { return (lchild->eval()) _OP (rchild->eval()); } \
};

Definition at line 167 of file ExNode.h.

#define ExFun_StreamOutNType (   _TYPE,
  _CONVERSION,
  _METHOD,
  _type,
  _sig 
)
Value:
class ExFun_StreamOutN##_TYPE : public ExFun { public: \
    ExFun_StreamOutN##_TYPE() : ExFun(_type,_sig,false) { } \
    virtual ExVal calc() { ExVal x = params[0]->eval(); std::cout << _CONVERSION(x._METHOD()) << std::endl; return x; } \
    ExFun* copy() { return new ExFun_StreamOutN##_TYPE(); } \
};

Definition at line 680 of file ExNode.h.

#define ExFun_StreamOutType (   _TYPE,
  _CONVERSION,
  _METHOD,
  _type,
  _sig 
)
Value:
class ExFun_StreamOut##_TYPE : public ExFun { public: \
    ExFun_StreamOut##_TYPE() : ExFun(_type,_sig,false) { } \
    virtual ExVal calc() { ExVal x = params[0]->eval(); std::cout << _CONVERSION(x._METHOD()); return x; } \
    ExFun* copy() { return new ExFun_StreamOut##_TYPE(); } \
};

Definition at line 668 of file ExNode.h.

#define GETCTRL (   _T,
  _METHOD,
  _TP 
)
Value:
class ExNode_GetCtrl##_T : public ExNode { public: \
    std::string nm; MarControlPtr ptr; \
    ExNode_GetCtrl##_T(std::string n, MarControlPtr p) : ExNode(OP_GETCTRL,_TP) { nm=n; ptr=p; } \
    virtual ExVal calc() { return ptr->_METHOD; } \
};

Definition at line 427 of file ExNode.h.

#define LibExFun1 (   _NM,
  _FUN,
  _T1,
  type_,
  sig_ 
)
Value:
class ExFun_##_NM : public ExFun { public: \
    ExFun_##_NM() : ExFun(type_,sig_,true) { } \
    virtual ExVal calc() { return _FUN((params[0]->eval())._T1); } \
    ExFun* copy() { return new ExFun_##_NM (); } \
};

Definition at line 531 of file ExNode.h.

#define LibExFun2 (   _NM,
  _FUN,
  _T1,
  _T2 
)
Value:
class ExFun_##_NM : public ExFun { public: \
    ExFun_##_NM() : ExFun(type_,sig_,true) { } \
    virtual ExVal calc() { return _FUN((params[0]->eval())._T1,(params[1]->eval())._T2); } \
    ExFun* copy() { return new ExFun_##_NM (); } \
};

Definition at line 537 of file ExNode.h.

#define LibExNode0 (   _NM,
  _FUN 
)
Value:
class ExFun_##_NM : public ExFun { public: \
    ExFun_##_NM() : ExFun(type_,sig_,true) { } \
    virtual ExVal calc() { return _FUN(); } \
    ExFun* copy() { return new ExFun_##_NM (); } \
};

Definition at line 524 of file ExNode.h.

#define SETCTRL (   _N,
  _METHOD,
  _TP 
)
Value:
class ExNode_SetCtrl##_N : public ExNode { \
    std::string nm; MarControlPtr ptr; ExNode* ex; public: \
    ExNode_SetCtrl##_N(std::string n, MarControlPtr p, ExNode* u) : ExNode(OP_SETCTRL,_TP) { nm=n; ptr=p; ex=u; } \
    ~ExNode_SetCtrl##_N() { ex->deref(); } \
    virtual ExVal calc() { ExVal v=ex->eval(); ptr->setValue(v._METHOD); return v; } \
};

Definition at line 439 of file ExNode.h.

#define TIMER_GET (   _NM,
  _ZERO,
  _METHOD,
  _type,
  _sig 
)
Value:
class ExFun_TimerGet##_NM : public ExFun { \
    ExFun* child; public: \
    ExFun_TimerGet##_NM() : ExFun(_type,_sig,false) {} \
    virtual ExVal calc() { TmTimer** t=params[0]->eval().toTimer(); return (t==NULL||*t==NULL) ? _ZERO : (*t)->_METHOD; } \
    ExFun* copy() { return new ExFun_TimerGet##_NM(); } \
};

Definition at line 700 of file ExNode.h.

#define TIMER_UPD (   _NM,
  _ZERO,
  _METHOD,
  _type,
  _sig 
)
Value:
class ExFun_TimerUpd##_NM : public ExFun { public: \
    ExFun_TimerUpd##_NM() : ExFun(_type,_sig,false) {} \
    virtual ExVal calc() { \
        TmTimer** t=params[0]->eval().toTimer(); \
        ExVal s=params[1]->eval(); \
        ExVal v=params[2]->eval(); \
        if (t==NULL||*t==NULL) { (*t)->updtimer(s.toString(),v._METHOD); return true; } return false; \
    } \
    ExFun* copy() { return new ExFun_TimerUpd##_NM(); } \
};

Definition at line 732 of file ExNode.h.

#define UNARYOP (   _NM,
  _KIND,
  _TYPE,
  _TO,
  _OP 
)
Value:
class ExNode_##_NM : public ExNode { \
    ExNode* child; public: \
    ExNode_##_NM(ExNode* v) : ExNode(_KIND,_TYPE) { child=v; } \
    virtual ~ExNode_##_NM() { child->deref(); } \
    virtual ExVal calc() { return _OP((child->eval())._TO); } \
};

Definition at line 146 of file ExNode.h.