blob: cd2ee7d37f70c480a8a11890cd8c61b91a4d8961 [file] [log] [blame]
/*
* Header file for FDS routines.
*
* Copyright (c) 1996-2002 by Guardsoft Pty Ltd.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
*/
#ifndef _FDS_H
#define _FDS_H
#define FDS_ARRAY_END ']'
#define FDS_ARRAY_START '['
#define FDS_BOOLEAN 'b'
#define FDS_CHARACTER 'c'
#define FDS_ENUM_END '>'
#define FDS_ENUM_CONST_SEP ','
#define FDS_ENUM_SEP '='
#define FDS_ENUM_START '<'
#define FDS_FLOATING 'f'
#define FDS_FUNCTION '&'
#define FDS_FUNCTION_ARG_END '/'
#define FDS_FUNCTION_ARG_SEP ','
#define FDS_ID '|'
#define FDS_INTEGER 'i'
#define FDS_INTEGER_SIGNED 's'
#define FDS_INTEGER_UNSIGNED 'u'
#define FDS_INVALID '?'
#define FDS_NAME '%'
#define FDS_NAME_END '/'
#define FDS_POINTER '^'
#define FDS_RANGE 'r'
#define FDS_RANGE_SEP '.'
#define FDS_REFERENCE '>'
#define FDS_REFERENCE_END '/'
#define FDS_REGION 'z'
#define FDS_STRING 's'
#define FDS_ADDRESS 'a'
#define FDS_STRUCT_ACCESS_SEP ';'
#define FDS_STRUCT_END '}'
#define FDS_STRUCT_FIELD_NAME_END '='
#define FDS_STRUCT_FIELD_SEP ','
#define FDS_STRUCT_START '{'
#define FDS_UNION_END ')'
#define FDS_UNION_FIELD_NAME_END '='
#define FDS_UNION_FIELD_SEP ','
#define FDS_UNION_START '('
#define FDS_VOID 'v'
#define FDS_CHAR_POINTER 'p'
extern char * FDSAddFieldToClass(char *, aifaccess, char *, char *);
extern char * FDSAddConstToEnum(char *, char *, int);
extern char * FDSAddFieldToStruct(char *, char *, char *);
extern char * FDSAddFieldToUnion(char *, char *, char *);
extern char * FDSRangeInit(int, int);
extern char * FDSArrayInit(int, int, char *);
extern int FDSArrayRank(char *);
extern int FDSArraySize(char *);
extern char * FDSArrayIndexType(char *);
extern int FDSArrayMinIndex(char *, int);
extern int FDSArrayMaxIndex(char *, int);
extern AIFIndex * FDSArrayIndexInit(char *);
extern void FDSArrayInfo(char *, int *, char **, char **);
extern void FDSArrayBounds(char *, int , int **, int **, int **);
extern char * FDSBaseType(char *);
extern int FDSClassAdd(char **, aifaccess, char *, char *);
extern int FDSClassFieldByName(char *, char *, char **);
extern int FDSClassFieldByNumber(char *, int, char **, char **);
extern int FDSClassFieldIndex(char *, char *);
extern int FDSClassFieldSize(char *, char *);
extern char * FDSClassInit(char *);
extern int FDSDataSize(char *, char *);
extern int FDSEnumAdd(char **, char *, int);
extern int FDSEnumConstByName(char *, char *, int *);
extern int FDSEnumConstByValue(char *, char **, int val);
extern char * FDSEnumInit(char *);
extern char * FDSGetIdentifier(char *);
extern int FDSIsSigned(char *);
extern int FDSNumFields(char *);
extern int FDSSetIdentifier(char **, char *);
extern int FDSStructAdd(char **, char *, char *);
extern int FDSStructFieldByName(char *, char *, char **);
extern int FDSStructFieldByNumber(char *, int, char **, char **);
extern int FDSStructFieldIndex(char *, char *);
extern int FDSStructFieldSize(char *, char *);
extern char * FDSStructInit(char *);
extern int FDSType(char *);
extern int FDSTypeCompare(char *, char *);
extern int FDSTypeSize(char *);
extern int FDSUnionAdd(char **, char *, char *);
extern int FDSUnionFieldByName(char *, char *, char **);
extern char * FDSUnionInit(char *);
extern char * TypeToFDS(int, ...);
#endif /* !_FDS_H */