/******************************************************************************
*
* NSSDC/CDF Header file for SkeletonCDF.
*
* Version 1.6a, 18-Nov-97, Hughes STX.
*
* Modification history:
*
* V1.0 13-May-92, J Love Original version.
* V1.1 3-Jun-92, J Love Increased MAX_STREAM_LEN.
* V1.2 22-Jul-92, J Love CDF V2.3 (shareable/NeXT/zVar).
* V1.3 26-Nov-93, J Love CDF V2.4.
* V1.3a 6-Feb-94, J Love DEC Alpha/OpenVMS port.
* V1.3b 8-Apr-94, J Love Solaris using Gnu C compiler.
* V1.4 13-Dec-94, J Love CDF V2.5.
* V1.4a 28-Feb-95, J Love Pass `char' as `int'.
* V1.5 28-Mar-95, J Love POSIX.
* V1.6 6-Aug-96, J Love CDF V2.6.
* V1.6a 18-Nov-97, J Love Windows NT/Visual C++.
*
******************************************************************************/
#if !defined(SKT2CDFh_INCLUDEd__)
#define SKT2CDFh_INCLUDEd__
/******************************************************************************
* Include files.
******************************************************************************/
#include "cdftools.h"
#if defined(mac)
# include "skt2cdf.rh"
#endif
/******************************************************************************
* Parameter/qualifier constants.
******************************************************************************/
#define SKTPATHparm 0
#define CDFPATHqual 0
#define LOGqual 1
#define NOLOGqual 2
#define DELqual 3
#define NODELqual 4
#define FILLVALqual 5
#define NOFILLVALqual 6
#define REPORTqual 7
#define NEG2POSqual 8
#define NONEG2POSqual 9
#define ABOUTqual 10
#define ZMODEqual 11
#define STATSqual 12
#define NOSTATSqual 13
#define CACHEqual 14
/******************************************************************************
* Lengths/sizes.
******************************************************************************/
#define MAX_SKTLINE_LEN 132
#define MAX_MSG_LEN 132
#define BASE_STREAM_SIZE 132
#define BASE_TOKEN_SIZE 25
#define BASE_STRING_SIZE 132
#define BASE_LOCATION_SIZE 20
#define BASE_EVALUE_SIZE 132
/******************************************************************************
* Enumerated types.
******************************************************************************/
enum searchForENUM { TOKEN, DELIMSTRING, BRACEDchar, BRACEDnonChar,
VALLOCATION, VAREPOCH, VAREPOCH16 };
enum nextItemENUM { HEADERmark,
CDForOUTPUTmark,
FILEmark,
NAMEmark,
NAMECOLONmark,
CDFPATHfield,
DATAmark,
ENCODINGmark,
ENCODINGCOLONmark,
ENCODINGfield,
MAJORITYmark,
MAJORITYCOLONmark,
MAJORITYfield,
FORMATmarkOrNUMVARSfield,
FORMATCOLONmark,
FORMATfield,
NUMVARSfield,
NUMGATTRSfield,
NUMVATTRSfield,
NUMRECSfield,
NUMDIMSfield,
DIMSIZEfield,
GATTRmark,
GaNAMEfieldOrVATTRmark,
GaNAMEfield,
PERIODmarkOrGa1stENTRYNUMfield,
GaENTRYNUMfield,
GaDATATYPEfield,
GaVALUEfield,
PERIODmarkOrGaENTRYNUMfield,
GaDATATYPEfieldOrBRACEmark,
VaNAMEfieldOrVARmark,
VaNAMEfield,
VARNAMEfieldORzVARmarkOrENDmark,
VARNAMEfieldOrENDmark,
VARNAMEfield,
VARDATATYPEfield,
VARNUMELEMSfield,
zVARNUMDIMSfield,
zVARDIMSIZEfield,
VARRECVARYfield,
VARDIMVARYfield,
VaNAMEfieldOrPERIODmark,
VaeNAMEfield,
VaeDATATYPEfield,
VaeVALUEfield,
LOCfieldOrVARNAMEfieldOrENDmark,
LOCfieldOrVARNAMEfieldORzVARmarkOrENDmark,
LOCfield,
EQUALmark,
VARVALUEfield };
/******************************************************************************
* TEMPcharSTRING.
* Note: This only works if this is between the last variable declaration and
* the first executable statement.
******************************************************************************/
#define TEMPcharSTRING(chr,str) \
char str[1+1]; \
str[0] = (char) chr; \
str[1] = NUL;
/******************************************************************************
* Function Prototypes.
******************************************************************************/
Logical CreateSkeletonCDF PROTOARGs((int argC, char *argV[]));
Logical CreateSkeletonQOPs PROTOARGs((int *argC, char **argV[]));
Logical CharStream PROTOARGs((int chr));
Logical ItemStream PROTOARGs((char *item));
void ParseError PROTOARGs((char *msg));
void NextSearchItem PROTOARGs((enum searchForENUM type,
enum nextItemENUM item));
void ItemError1 PROTOARGs((char *expected, char *found));
void ItemError2 PROTOARGs((char *expected1, char *expected2, char *found));
void ItemError3 PROTOARGs((char *expected1, char *expected2, char *expected3,
char *found));
long WhichDataType PROTOARGs((char *item));
void CATchr PROTOARGs((char **str, int chr, size_t *size, int base));
Logical RecurCharStream PROTOARGs((char *stream, enum searchForENUM type,
enum nextItemENUM next));
void AllocateGrowingStrings PROTOARGs((void));
void FreeGrowingStrings PROTOARGs((void));
Logical StatusHandlerS2C PROTOARGs((CDFstatus, char *));
/*****************************************************************************/
#endif
syntax highlighted by Code2HTML, v. 0.9.1