Metropoli BBS
VIEWER: funstruc.h MODE: TEXT (ASCII)
/* Copyright (C) 1993 by Thomas Glen Smith.  All Rights Reserved. */
/* funstruc.h - APL2 V1.0.0 ********************************************
* Funstruc.h and funstrud.h define all the structures used to describe *
* builtin APL functions and operators.                                 *
***********************************************************************/
#if !defined(FUNSTRUC_INCL)
#define FUNSTRUC_INCL
#if !defined(SCALAR_PROC_DEF)
#define SCALAR_PROC_DEF   
typedef void (*SCALAR_PROC)(); /* Entry to dyadic scalar proc. */
#endif
#include "funstrud.h"
typedef struct oper { /* slash, slope, each, dot, etc. */
     Codes codes;
     int (*eptok)(Apltoken); /* transformer to derived function */
} Oper;
typedef struct dmxo { /* dyadic mixed only, or dual purpose */
     Codes codes;
     Mixed_dyadics dyad;
} Dmxo;
typedef struct mixa { /* mixed functions */
     Codes codes;
     Mixed_monadics mona;
     Mixed_dyadics  dyad;
} Mixa;
typedef struct msmd {/*monadic scalar mixed dyadic roll/deal not/without*/
     Codes codes;
     Scalar_monadics mona;
     Mixed_dyadics   dyad;
} Msmd;
typedef struct rela { /* relational functions */
     Codes codes;
     Scalar_dyadics dyad;
} Rela;
typedef struct eqne { /* equality functions */
     Rela rel;
     int    (*ch)(char, char);
     void   (*ph)(char*, char*, int*);
     void   (*pd)(char*, char*, double*);
     void   (*eqnedum)(void*, void*, int*);
} Eqne;
typedef struct scalars {
     Codes codes;
     Scalar_dyadics  dyad;
     Scalar_monadics mona;
} Scalars;
#endif
[ RETURN TO DIRECTORY ]