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