00001 #pragma once
00002 #ifndef _SEXP_PARSE_H
00003 #define _SEXP_PARSE_H
00004
00005 #include <stddef.h>
00006 #include <stdint.h>
00007 #include "public/sexp-parse.h"
00008 #include "_sexp-manip.h"
00009 #include "../../../common/util.h"
00010
00011 OSCAP_HIDDEN_START;
00012
00013
00014 #define NUMCLASS_INV 0
00015 #define NUMCLASS_INT 1
00016 #define NUMCLASS_FLT 2
00017 #define NUMCLASS_FRA 3
00018 #define NUMCLASS_EXP 4
00019
00020 typedef uint8_t SEXP_pflags_t;
00021
00022 #define PF_EOFOK 0x01
00023 #define PF_ALL 0xff
00024
00025
00026 struct SEXP_pstate {
00027 char *buffer;
00028 size_t buffer_data_len;
00029 size_t buffer_fail_off;
00030
00031 SEXP_pflags_t pflags;
00032
00033 SEXP_t *p_list;
00034 size_t l_size;
00035 size_t l_real;
00036 SEXP_t **l_sref;
00037 };
00038
00039 struct SEXP_psetup {
00040 SEXP_format_t fmt;
00041 SEXP_pflags_t pflags;
00042 };
00043
00044 void SEXP_psetup_init (SEXP_psetup_t *psetup);
00045
00046 struct SEXP_pext_dsc {
00047 SEXP_t *s_exp;
00048 const char *t_beg;
00049 size_t t_len;
00050 size_t b_len;
00051 uint8_t flags;
00052 };
00053
00054 #define SEXP_EXT_SUCCESS 0
00055 #define SEXP_EXT_EUNFIN 1
00056 #define SEXP_EXT_EINVAL 2
00057 #define SEXP_EXT_EUNDEF 255
00058
00059 OSCAP_HIDDEN_END;
00060
00061 #endif