/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 2002-2012 AT&T Intellectual Property *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* *
***********************************************************************/
#pragma prototyped
/*
* C expression library interface
*
* Glenn Fowler
* AT&T Research
*/
#ifndef _CX_H
#define _CX_H
#include <ast.h>
#include <math.h>
#include <dt.h>
#include <vmalloc.h>
/* Cx_t.flags */
/* _CX_HEADER_.flags */
/* Cxpart_t.flags */
/* Cxtype_t.representation */
#define CX_void 0
/* Cxformat_t.flags */
#define CX_NOP (( 0))
#define CXMIN(a,b) (((a)<(b))?(a):(b))
#define CXMAX(a,b) (((a)>(b))?(a):(b))
#define CXDETAILS(d,f,t,v) \
#define CX_HEADER_INIT {{0},0}
#if ! _ast_fltmax_double
#endif
{
};
#define _CX_HEADER_ \
const char* name; /* key name */ \
const char* description; /* description */
#define _CX_HEADER_LINK_ \
#define _CX_NAME_HEADER_ \
struct \
{ \
} header;
#define _CX_LIST_HEADER_ \
struct \
{ \
} header;
#define _CX_CODE_HEADER_ \
{
} Cxheader_t;
{
{
{
{
} Cxbuffer_t;
{
} Cxstring_t;
{
} Cxvalue_t;
Cxoperand_t*, int, void*, Cxdisc_t*);
Cxdisc_t*);
Cxinstruction_t*, Cxinstruction_t*, void*,
Cxdisc_t*);
{
};
{
#ifdef _CX_ITEM_PRIVATE_
#endif
};
{
#ifdef _CX_EDIT_PRIVATE_
#endif
};
{
};
{
};
{
#ifdef _CX_CONSTRAINT_PRIVATE_
#endif
};
{
};
{
};
{
};
{
};
{
};
{
};
{
};
{
};
{
} Cxcallout_t;
{
} Cxrecode_t;
{
};
{
};
{
#ifdef _CX_QUERY_PRIVATE_
#endif
};
{
/* the remaining are set by Cxdisc_t.loadf */
};
{
#ifdef _CX_EXPR_PRIVATE_
#endif
};
{
#ifdef _CX_STATE_PRIVATE_
#endif
};
{
#ifdef _CX_PRIVATE_
#endif
};
#define cxinit(d,e) (memset(d,0,sizeof(Cxdisc_t)),(d)->version=CX_VERSION,(d)->errorf=(Error_f)(e),cxstate(d))
#if _BLD_cx && defined(__EXPORT__)
#define extern __EXPORT__
#endif
extern char* cxlocation(Cx_t*, void*);
extern void cxcodetrace(Cx_t*, const char*, Cxinstruction_t*, unsigned int, Cxoperand_t*, Cxoperand_t*);
extern char* cxcodename(int);
#undef extern
#endif