forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			247 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			247 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | /*
 | ||
|  | 	stplugin.h, version 3.0.0 | ||
|  | 	copyright (c) 2003, 2004, 2006, 2015 StataCorp LP | ||
|  | */ | ||
|  | #if !defined(STPLUGIN_H)
 | ||
|  | #define STPLUGIN_H
 | ||
|  | 
 | ||
|  | #if !defined(SD_FASTMODE)
 | ||
|  | #define SD_SAFEMODE
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #define	HP9000		1
 | ||
|  | #define OPUNIX		2
 | ||
|  | #define APPLEMAC	3
 | ||
|  | #define STWIN32		4
 | ||
|  | 
 | ||
|  | #ifndef SYSTEM
 | ||
|  | #define SYSTEM		STWIN32
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | typedef signed char	ST_sbyte ; | ||
|  | typedef unsigned char	ST_ubyte ; | ||
|  | typedef int		ST_int ; | ||
|  | typedef unsigned	ST_unsigned ; | ||
|  | typedef short int	ST_int2 ; | ||
|  | typedef int		ST_int4 ; | ||
|  | typedef long		ST_long ; | ||
|  | typedef unsigned int	ST_uint4 ; | ||
|  | typedef float		ST_float ; | ||
|  | typedef double		ST_double ; | ||
|  | typedef unsigned char	ST_boolean ; | ||
|  | typedef int		ST_retcode ; | ||
|  | typedef double *	ST_dmkey ; | ||
|  | 
 | ||
|  | #if !defined(bTrue)
 | ||
|  | #define bTrue		1
 | ||
|  | #define bFalse		0
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #define SF_HIWORD(x)	((ST_int2)((ST_int4)(x)>>16))
 | ||
|  | #define SF_LOWORD(x)	((ST_int2)(x))
 | ||
|  | #define SF_MAKELONG(x,y)	((ST_int4)(((ST_int2)(x))|((ST_int4)((ST_int2)(y)))<<16))
 | ||
|  | 
 | ||
|  | #if SYSTEM==STWIN32
 | ||
|  | #if __cplusplus
 | ||
|  | #define STDLL	extern "C" __declspec(dllexport) ST_retcode
 | ||
|  | #else
 | ||
|  | #define STDLL	extern __declspec(dllexport) ST_retcode
 | ||
|  | #endif
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #if SYSTEM!=STWIN32
 | ||
|  | #if SYSTEM==HP9000
 | ||
|  | #include <dl.h>
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #if SYSTEM==OPUNIX
 | ||
|  | #include <dlfcn.h>
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #if __cplusplus
 | ||
|  | #define STDLL extern "C" ST_retcode
 | ||
|  | #else
 | ||
|  | #define STDLL ST_retcode
 | ||
|  | #endif
 | ||
|  | #define LPSTR		char *
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | typedef struct { | ||
|  | 	ST_int	type ; | ||
|  | 	ST_int	nel ; | ||
|  | 	ST_int	m ; | ||
|  | 	ST_int	n ; | ||
|  | } ST_matinfo ; | ||
|  | 
 | ||
|  | #define SD_PLUGINMAJ	3
 | ||
|  | #define SD_PLUGINMIN	0
 | ||
|  | #define SD_PLUGINVER	SF_MAKELONG(SD_PLUGINMAJ,SD_PLUGINMIN)
 | ||
|  | 
 | ||
|  | typedef void		(* ST_VV)	(void) ; | ||
|  | typedef ST_int		(* ST_IV)	(void) ; | ||
|  | typedef ST_int		(* ST_IS)	(char *) ; | ||
|  | typedef void		(* ST_VU)	(ST_ubyte) ; | ||
|  | typedef ST_boolean	(* ST_BI)	(ST_int) ; | ||
|  | typedef ST_boolean	(* ST_BII)	(ST_int,ST_int) ; | ||
|  | typedef ST_boolean	(* ST_BD)	(ST_double) ; | ||
|  | typedef ST_int		(* ST_III)	(ST_int,ST_int) ; | ||
|  | typedef ST_double	(* ST_DII)	(ST_int,ST_int) ; | ||
|  | typedef ST_double	(* ST_DV)	(void) ; | ||
|  | typedef ST_double	(* ST_DD)	(ST_double) ; | ||
|  | typedef ST_double	(* ST_DDD)	(ST_double,ST_double) ; | ||
|  | typedef ST_int		(* ST_ISS)	(char *,char *) ; | ||
|  | typedef ST_int		(* ST_ISI)	(char *,ST_int) ; | ||
|  | typedef ST_int		(* ST_ISSI)	(char *,char *,ST_int) ; | ||
|  | typedef void		(* ST_VSD)	(char *,ST_double) ; | ||
|  | typedef ST_int		(* ST_ISD)	(char *, ST_double) ; | ||
|  | typedef ST_int		(* ST_ISDp)	(char *,ST_double *) ; | ||
|  | typedef ST_int		(* ST_ISDpIIIII)	(char *,ST_int,ST_double *,ST_int,ST_int,ST_int,ST_int,ST_int) ; | ||
|  | typedef ST_int		(* ST_ISIID)	(char *, ST_int, ST_int, ST_double) ; | ||
|  | typedef ST_int		(* ST_ISIIDp)	(char *,ST_int,ST_int,ST_double *) ; | ||
|  | typedef ST_int		(* ST_ISDpI)	(char *,ST_double *,ST_int) ; | ||
|  | typedef void		(* ST_VSMip)	(char *,ST_matinfo *) ; | ||
|  | typedef ST_int		(* ST_IIIDp)	(ST_int, ST_int, ST_double *) ; | ||
|  | typedef ST_int 		(* ST_IIID)	(ST_int, ST_int, ST_double) ; | ||
|  | typedef char *		(* ST_SSI)	(char *,ST_int) ; | ||
|  | typedef char *		(* ST_SSSD)	(char *,char *,ST_double) ; | ||
|  | typedef char *		(* ST_SSSDM)	(char *,char *,ST_double, ST_dmkey) ; | ||
|  | typedef ST_int 		(* ST_IIIS)	(ST_int, ST_int, char *) ; | ||
|  | typedef ST_int 		(* ST_IIISI)	(ST_int, ST_int, char *, ST_int) ; | ||
|  | 
 | ||
|  | typedef struct { | ||
|  | 	ST_IS		spoutsml ; | ||
|  | 	ST_IS		spoutnosml ; | ||
|  | 	ST_VV		spoutflush ; | ||
|  | 	ST_VU		set_outputlevel ; | ||
|  | 	ST_ISI		get_input ; | ||
|  | 
 | ||
|  | 	ST_IV		pollstd ; | ||
|  | 	ST_IV		pollnow ; | ||
|  | 
 | ||
|  | 	ST_SSSD		safereforms ; | ||
|  | 	ST_SSSDM	safereforml ; | ||
|  | 
 | ||
|  | 	ST_SSI		gettok ; | ||
|  | 
 | ||
|  | 	ST_ISS		macresave ; | ||
|  | 	ST_ISSI		macuse ; | ||
|  | 
 | ||
|  | 	ST_ISDp		scalaruse ; | ||
|  | 	ST_ISDp		scalarsave ; | ||
|  | 
 | ||
|  | 	ST_ISDpIIIII	matrixstore ; | ||
|  | 	ST_ISDpI	matrixload ; | ||
|  | 	ST_VSMip	matrixinfo ; | ||
|  | 	ST_ISIIDp	matrixel ; | ||
|  | 	ST_int		matsize ; | ||
|  | 
 | ||
|  | 	ST_DII		data, safedata ; | ||
|  | 
 | ||
|  | 	ST_IV		nobs ; | ||
|  | 	ST_IV		nvar ; | ||
|  | 
 | ||
|  | 	ST_double	missval ; | ||
|  | 	ST_BD		ismissing ; | ||
|  | 
 | ||
|  | 	ST_ISI		stfindvar ; | ||
|  | 	ST_BI		isstr ; | ||
|  | 	ST_VSD		abvarfcn ; | ||
|  | 
 | ||
|  | 	ST_int		*stopflag ; | ||
|  | 
 | ||
|  | 	ST_DDD		stround ; | ||
|  | 	ST_DD		stsqrt ; | ||
|  | 	ST_DDD		stpow ; | ||
|  | 	ST_DD		stlog ; | ||
|  | 	ST_DD		stexp ; | ||
|  | 	ST_DV		strandom ; | ||
|  | 
 | ||
|  | 	ST_IIID		store ; | ||
|  | 	ST_IIID 	safestore ; | ||
|  | 	ST_IIIS		sstore ; | ||
|  | 	ST_BI		selobs ; | ||
|  | 	ST_IV		nobs1 ; | ||
|  | 	ST_IV		nobs2 ; | ||
|  | 	ST_IV 		nvars ; | ||
|  | 	ST_IS		spouterr ; | ||
|  | 	ST_ISIIDp	safematel ; | ||
|  | 	ST_ISIID	safematstore ; | ||
|  | 	ST_ISIIDp	matel ; | ||
|  | 	ST_ISIID	matstore ; | ||
|  | 	ST_IIIDp	safevdata ; | ||
|  | 	ST_IIIDp	vdata ; | ||
|  | 	ST_IS		colsof ; | ||
|  | 	ST_IS		rowsof ; | ||
|  | 	ST_ISD		scalsave ; | ||
|  | 
 | ||
|  | 	ST_IIIS		sdata ; | ||
|  | 
 | ||
|  | 	ST_int2		major ; | ||
|  | 	ST_int2		minor ; | ||
|  | 	ST_BI		isstrl ; | ||
|  | 	ST_BII		isbinary ; | ||
|  | 	ST_III		sdatalen ; | ||
|  | 	ST_IIISI	strldata ; | ||
|  | } ST_plugin ; | ||
|  | 
 | ||
|  | 
 | ||
|  | #if __cplusplus
 | ||
|  | extern "C" ST_plugin *_stata_ ; | ||
|  | #else
 | ||
|  | extern ST_plugin *_stata_ ; | ||
|  | #endif
 | ||
|  | STDLL pginit(ST_plugin *p) ; | ||
|  | 
 | ||
|  | #define SF_display(a)		((_stata_)->spoutsml((a)))
 | ||
|  | #define SF_error(a)		((_stata_)->spouterr((a)))
 | ||
|  | 
 | ||
|  | #define SF_poll			((_stata_)->pollstd)
 | ||
|  | #define SW_stopflag		(*((_stata_)->stopflag))
 | ||
|  | 
 | ||
|  | #define SF_macro_save(m,t)	((_stata_)->macresave((m),(t)))
 | ||
|  | #define SF_macro_use(m,d,l)	((_stata_)->macuse((m),(d),(l)))
 | ||
|  | 
 | ||
|  | #define SF_scal_use(s,d)	((_stata_)->scalaruse((s),(d)))
 | ||
|  | #define SF_scal_save(s,d)	((_stata_)->scalsave((s),(d)))
 | ||
|  | 
 | ||
|  | #if defined(SD_SAFEMODE)
 | ||
|  | #define SF_mat_el(s,r,c,d)	((_stata_)->safematel((s),(r),(c),(d)))
 | ||
|  | #define	SF_mat_store(s,r,c,d)	((_stata_)->safematstore((s),(r),(c),(d)))
 | ||
|  | #else
 | ||
|  | #define SF_mat_el(s,r,c,d)	((_stata_)->matel((s),(r),(c),(d)))
 | ||
|  | #define	SF_mat_store(s,r,c,d)	((_stata_)->matstore((s),(r),(c),(d)))
 | ||
|  | #endif
 | ||
|  | #define SV_matsize		((_stata_)->matsize)
 | ||
|  | #define SF_col(s)		((_stata_)->colsof((s)))
 | ||
|  | #define SF_row(s)		((_stata_)->rowsof((s)))
 | ||
|  | 
 | ||
|  | #if defined(SD_SAFEMODE)
 | ||
|  | #define SF_vdata(i,j,d)		((_stata_)->safevdata((i),(j),(d)))
 | ||
|  | #define SF_vstore(i,j,v)	((_stata_)->safestore((i),(j),(v)))
 | ||
|  | #else
 | ||
|  | #define SF_vdata(i,j,d)		((_stata_)->vdata((i),(j),(d)))
 | ||
|  | #define SF_vstore(i,j,v)	((_stata_)->store((i),(j),(v)))
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #define SF_nobs			((_stata_)->nobs)
 | ||
|  | #define SF_in1			((_stata_)->nobs1)
 | ||
|  | #define SF_in2			((_stata_)->nobs2)
 | ||
|  | #define SF_nvar			((_stata_)->nvar)
 | ||
|  | #define SF_nvars		((_stata_)->nvars)
 | ||
|  | 
 | ||
|  | #define SF_sstore(i,j,s)	((_stata_)->sstore((i),(j),(s)))
 | ||
|  | #define SF_sdata(i,j,s)		((_stata_)->sdata((i),(j),(s)))
 | ||
|  | #define SF_strldata(i,j,s,l)	((_stata_)->strldata((i),(j),(s),(l)))
 | ||
|  | 
 | ||
|  | #define SF_sdatalen(i,j)	((_stata_)->sdatalen((i),(j)))
 | ||
|  | #define SF_var_is_string(a)	((_stata_)->isstr(a))
 | ||
|  | #define SF_var_is_strl(a)	((_stata_)->isstrl(a))
 | ||
|  | #define SF_var_is_binary(i,j)	((_stata_)->isbinary((i),(j)))
 | ||
|  | 
 | ||
|  | #define SV_missval		((_stata_)->missval)
 | ||
|  | 
 | ||
|  | #define SF_is_missing(z)	((_stata_)->ismissing(z))
 | ||
|  | #define SF_ifobs(z)		((_stata_)->selobs(z))
 | ||
|  | 
 | ||
|  | #endif
 |