00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #pragma once
00023 #ifndef SEXP_PARSER_H
00024 #define SEXP_PARSER_H
00025
00026 #include <stddef.h>
00027 #include <stdint.h>
00028 #include "public/sexp-parser.h"
00029 #include "_sexp-manip.h"
00030 #include "generic/spb.h"
00031
00032 OSCAP_HIDDEN_START;
00033
00034
00035 #define SEXP_NUMCLASS_INV 0
00036 #define SEXP_NUMCLASS_INT 1
00037 #define SEXP_NUMCLASS_UINT 2
00038 #define SEXP_NUMCLASS_FLT 3
00039 #define SEXP_NUMCLASS_EXP 4
00040 #define SEXP_NUMCLASS_FRA 5
00041 #define SEXP_NUMCLASS_PRE 6
00042
00043
00044
00045
00046 struct SEXP_pstate {
00047
00048
00049
00050 spb_t *p_buffer;
00051 spb_size_t p_bufoff;
00052 spb_size_t p_explen;
00053 SEXP_pflags_t p_flags;
00054 SEXP_t *p_sexp;
00055 SEXP_pflags_t p_flags0;
00056
00057 void *sp_data;
00058 void (*sp_free)(void *);
00059
00060 uint8_t p_label;
00061
00062 uint8_t p_numclass;
00063 uint8_t p_numbase;
00064 uint8_t p_numstage;
00065
00066
00067
00068
00069 SEXP_lstack_t l_stack;
00070 };
00071
00072 struct SEXP_psetup {
00073 SEXP_format_t p_format;
00074 SEXP_pflags_t p_flags;
00075 };
00076
00077 #define SEXP_PSLOT_MAX 1024
00078
00079 #define SEXP_PRET_SUCCESS 0
00080 #define SEXP_PRET_EUNFIN 1
00081 #define SEXP_PRET_EINVAL 2
00082 #define SEXP_PRET_EUNDEF 255
00083
00084 #ifdef __GNUC__
00085 # define __predict(expr, v) __builtin_expect (expr, v)
00086 #else
00087 # define __predict(expr, v) expr
00088 #endif
00089
00090 OSCAP_HIDDEN_END;
00091
00092 #endif