105#include <das3/operator.h>
118#define DASFORM_NAME_SZ 64
122typedef struct das_form DasForm;
143 const DasForm* pForm;
174typedef struct das_binop DasBinOp;
176typedef struct DasBinOp_VTbl {
181 const DasBinOp* pThis,
const ubyte* pLRun,
const ubyte* pRRun,
185 void (*release)(DasBinOp* pThis);
191 const DasBinOp_VTbl* pVTbl;
211typedef enum das_binop_stat_e {
217DAS_API
int DasBinOp_incRef(DasBinOp* pThis);
218DAS_API
int DasBinOp_decRef(DasBinOp* pThis);
220#define DasBinOp_apply(P,L,R,O) ((P)->pVTbl->apply((P),(L),(R),(O)))
227typedef struct DasForm_VTbl {
234 DasForm* (*create)(void);
239 DasForm* pThis,
const char* sName,
const char* sVal
255 DasForm* pThis,
int nIntRank,
const ptrdiff_t* pIntShape
267 const char* (*getParam)(
268 const DasForm* pThis,
const char* sName, ubyte* pType
274 const DasForm* pThis,
struct das_buffer* pBuf
280 const DasForm* pThis,
const das_operand* pOp,
const ubyte* pRun,
291 const DasForm* pThis,
const ubyte* pRun, uint32_t nElems,
302 const char* (*compSym)(
const DasForm* pThis,
int iComp);
316 const DasForm* pThis,
const das_operand* pL,
int nOp,
320 const DasForm* pThis,
const das_operand* pL,
int nOp,
324 DasForm* (*copy)(
const DasForm* pThis);
325 void (*release)(DasForm* pThis);
330 const DasForm_VTbl* pVTbl;
334#define DasForm_kindStr(P) ((P)->pVTbl->sKind)
347#define DasForm_isKind(P,VT) (((P) != NULL)&&((P)->pVTbl == (VT)))
352DAS_API
extern const DasForm_VTbl das_form_generic_vtbl;
360#define DAS_FORM_EXT (&das_form_generic_vtbl)
364DAS_API
const char* DasFormGeneric_kind(
const DasForm* pThis);
372DAS_API
bool DasFormGeneric_paramAt(
373 const DasForm* pThis,
int iParam,
const char** psName,
const char** psVal
383DAS_API
void del_DasForm(DasForm* pThis);
388DAS_API DasForm* DasForm_copy(
const DasForm* pThis);
402DAS_API
const char* DasForm_getParam(
403 const DasForm* pThis,
const char* sName, ubyte* pType
423DAS_API DasForm* new_DasForm_pairs(
const char** psAttr);
450DAS_API
const char* DasForm_compSym(
const DasForm* pThis,
int iComp);
452DAS_API
char* DasForm_prnRun(
453 const DasForm* pThis,
const ubyte* pRun, uint32_t nElems,
466DAS_API
char* DasForm_toStr(
const DasForm* pThis,
char* sBuf,
int nLen);
476 DasForm* pThis,
int nIntRank,
const ptrdiff_t* pIntShape
487 struct das_buffer* pBuf,
const ubyte* pOrder, ubyte uComps
Value sources for the DasVar layer.
#define VARIDX_MAX
Max index count for the model.
Definition generator.h:55
int DasErrCode
return code type 0 indicates success, negative integer indicates failure
Definition defs.h:184
const char * das_units
Handle SI and other units, with accommodations for Epoch systems, from units.h.
Definition units.h:144
das_val_type
Enumeration of types stored in Das Array (DasAry) objects from value.h.
Definition value.h:81
The form layer's currency: a snapshot of the facts a formalism may need.
Definition form.h:139
Defines units used for items in the stream, most notably time units that reference an epoch and a ste...
A generic value type for use in arrays, datums and variables.