00001 #pragma once 00002 #ifndef SEXP_PARSE_H 00003 #define SEXP_PARSE_H 00004 00005 #ifdef __cplusplus 00006 extern "C" { 00007 #endif 00008 00009 #include <stddef.h> 00010 #include <seap-debug.h> 00011 #include <sexp-types.h> 00012 00013 typedef struct SEXP_psetup SEXP_psetup_t; 00014 00015 SEXP_psetup_t *SEXP_psetup_new (void); 00016 void SEXP_psetup_free (SEXP_psetup_t *); 00017 00018 typedef struct SEXP_pstate SEXP_pstate_t; 00019 00020 SEXP_pstate_t *SEXP_pstate_new (void); 00021 void SEXP_pstate_free (SEXP_pstate_t *); 00022 SEXP_pstate_t *SEXP_pstate_init (SEXP_pstate_t *); 00023 00024 SEXP_t *SEXP_parse_fd (SEXP_format_t fmt, int fd, size_t max, SEXP_pstate_t **state); 00025 SEXP_t *SEXP_parse_buf (SEXP_format_t fmt, void *buf, size_t len, SEXP_pstate_t **state); 00026 SEXP_t *SEXP_parse (const SEXP_psetup_t *setup, const char *buf, size_t buflen, SEXP_pstate_t **pstate); 00027 00028 #ifdef __cplusplus 00029 } 00030 #endif 00031 00032 #endif /* SEXP_PARSE_H */