

#include <stdio.h>
typedef enum {
	PARSE_TYPE_NULL,
	PARSE_TYPE_INT,
	PARSE_TYPE_SHORT,
	PARSE_TYPE_CHAR,
	PARSE_TYPE_END,
} parse_type;

typedef enum {
	PARSE_TBL_NULL,
	PARSE_TBL_FIXED,
	PARSE_TBL_LOOP,
	PARSE_TBL_END,
} parse_tbl;

typedef struct {
	parse_type		type;
	int			offset;
	unsigned int	size;
} parseData;

typedef struct {
	parse_tbl		type;
	void*		addrHead;
	void*		count;
	parse_type		countType;
	unsigned int	stSize;
	parseData*	tbl;
} parseList;

typedef int (*parseFunc)(void *, char *, int* , int);

#define  _PARSECSV_EROR_OK				0
#define  _PARSECSV_EROR_NODATA			1
#define  _PARSECSV_EROR_MOREDATA		2
#define  _PARSECSV_EROR_CHEKLENGTH		3
#define  _PARSECSV_EROR_TOOLONG		-1

extern int	parseMsg(parseList *list, char *data, int size);
extern int parseCommonTbl(void *addrStruc, parseData* tbl, char *data, int* startPos, int size);
extern int parseFixedTbl(void *list, char *data, int* startPos, int size);
extern int parseLoopTbl(void *list, char *data, int* startPos, int size);
extern int parseCsvData(char* data, int* startPos, int size, char* to,unsigned int* len);





