/* Copyright (C) 1993 by Thomas Glen Smith. All Rights Reserved. */
/* matchok APL2 V1.0.0 *************************************************
* Called by cat, deal, decode, execjotz, find, match and mdivide. *
* Called to ensure two apl variables are of the same data type, *
* converting as necessary. A character variable will be converted to *
* a numeric type only if it is empty. When the data types are a *
* combination of integer and real, the integer will be converted to *
* real. 1 is returned if matching data types are obtained. Otherwise *
* 0 will be returned. *
***********************************************************************/
#define INCLUDES APLCB
#include "includes.h"
int matchok(pleft,prite,datatyp)
Aplcb pleft[], prite[];
int datatyp;
{
Endoper; Errinit; Matchoks;
extern int aplerr;
if (errinit() == 0)
if (matchoks(pleft,prite,datatyp))
return(1); /* ok */
endoper(*pleft);
*pleft = NULL;
endoper(*prite);
*prite = NULL;
if (aplerr == 0)
aplerr = 1; /* dissimilar types */
return(0); /* data not ok */
}