/* parse.h */ /* Structures, etc for parse/test module */ #define PARSEH_VERSION "parse.h v 2.2 20 May 2009 " /* 22 May 09 v 2.2 WJS */ /* Reparametrize a couple of arrays */ /* Get rid of multi-precision stuff. Able to do this by insisting */ /* that iovaldouble_ be present */ /* 18 Apr 09 v 2.1 WJS */ /* Define varnames_in_sel according to precision */ /* 3 Apr 09 v 2.1 WJS */ /* Add some functions to parse_function_struct */ /* 14 Feb 09 v 2.0 WJS */ /* Define function entries according to precision */ /* Add ".h" to PARSEH_VERSION */ /* Include precision info in version */ /* 20 Jul 07 v 1.0 */ #include "core.h" #define N_JG_SEL_TESTS 100 /* Number of relational ops; eg <= */ #define N_JG_SEL_OPERATIONS N_JG_SEL_TESTS+50 /* Number of ops; incl &s */ #ifdef USE_DOUBLE #if USE_DOUBLE #warning "USE_DOUBLE macro obsolete. Please remove at your convenience. \ See readme.outer" #else #error "USE_DOUBLE=FALSE no longer possible. Function iovaldouble_ needed. \ See readme.outer" #endif #endif #define FULL_PARSEH_VERSION PARSEH_VERSION"/"COREH_VERSION struct parse_test_struct { int testlev; int testvar; int testcode; double testval; char *teststr; char *upteststr; int lenteststr; int testres; Logical case_sensitive; }; struct parse_data { int tstcnt; int tstproccnt; struct parse_test_struct tst[N_JG_SEL_TESTS]; int tstproc[N_JG_SEL_OPERATIONS]; }; /* When parse was part of outer, functions below were in outer */ /* (except for iovarlevel_ which is documented in outer) */ /* If parse is NOT called from outer, the equivalent functions must */ /* be defined. See the commented function names in the outer source */ /* to see what these functions must do, their calling sequences, etc */ struct parse_functions { int (*varname_lookup)(); /* See varname_lookup */ int (*iovarlevel)(); /* See iovarlevel_ */ void (*err)(); /* See out_err */ void (*errn)(); /* See out_errn */ void (*malloc_err)(); /* See malloc_err */ };