#ifndef EMACHINE_ARCHSPNAMES_H
#define EMACHINE_ARCHSPNAMES_H

/* archspnames.h: contains the declaration of a number of static
 * arrays that describe the expression support procedures.
 * these definitions are derived from p5spdefs.h see that file
 * for the encoding of the values in these arrays
 */

/* the following arrays are indexed by enum ExpProc */
#define Nexpprocs num_ExpProcs

/* This contains the function name*/
static char *Expprocs [Nexpprocs+1] = {
#define _EXP(x,op,name,retype,nargs,p1,p2,p3,p4,p5) name,
#define _SP(x,op,name,retype,nargs)
#include "p5spdefs3.h"
#undef _EXP
#undef _SP
};

/* This array encodes the number of parameters and totlal parameter size */
static const int Expprocpdesc [Nexpprocs+1] = {
#define _EXP(x,op,name,retype,nargs,p1,p2,p3,p4,p5) nargs,
#define _SP(x,op,name,retype,nargs)
#include "p5spdefs3.h"
#undef _EXP
#undef _SP
};

/* This array encodes the types of up to MAXEXPPARAM parameters */
#define MAXEXPPARAM 5
static const int Expparaminfo [(Nexpprocs+1)*MAXEXPPARAM] = {
#define _EXP(x,op,name,retype,nargs,p1,p2,p3,p4,p5) p1,p2,p3,p4,p5,
#define _SP(x,op,name,retype,nargs)
#include "p5spdefs3.h"
#undef _EXP
#undef _SP
};

/* This array encodes the return type and other properties */
static const int Expproctype [Nexpprocs+1] = {
#define _EXP(x,op,name,retype,nargs,p1,p2,p3,p4,p5) retype,
#define _SP(x,op,name,retype,nargs)
#include "p5spdefs3.h"
#undef _EXP
#undef _SP
};

/* This array will hold the procedure id after the first call */
static int Expprocref [Nexpprocs+1];


/* the following arrays are indexed by enum SpProcs */
#define Spprocnum num_SpProcs

/* This array contains the function name*/
static char * Spprocs [Spprocnum+1] = {
#define _EXP(x,op,name,retype,nargs,p1,p2,p3,p4,p5)
#define _SP(x,op,name,retype,nargs) name,
#include "p5spdefs3.h"
#undef _EXP
#undef _SP
};

/* This array encodes the number of parameters and totlal parameter size */
static const int Spprocpdesc [Spprocnum+1] = {
#define _EXP(x,op,name,retype,nargs,p1,p2,p3,p4,p5)
#define _SP(x,op,name,retype,nargs) nargs,
#include "p5spdefs3.h"
#undef _EXP
#undef _SP
};

/* This array encodes the return type and other properties */
static const int Spproctype [Spprocnum+1] = {
#define _EXP(x,op,name,retype,nargs,p1,p2,p3,p4,p5)
#define _SP(x,op,name,retype,nargs) retype,
#include "p5spdefs3.h"
#undef _EXP
#undef _SP
};

/* This array will hold the procedure id after the first call */
static int Spprocref [Spprocnum+1];

static int Spparams [11+1];

#endif
