File: [local] / OpenXM_contrib2 / asir2000 / builtin / result.c (download)
Revision 1.1.1.1 (vendor branch), Fri Dec 3 07:39:07 1999 UTC (24 years, 7 months ago) by noro
Branch: NORO
CVS Tags: RELEASE_20000124, RELEASE_1_1_2, ASIR2000 Changes since 1.1: +0 -0
lines
Imported asir2000 as OpenXM_contrib2/asir2000.
|
/* $OpenXM: OpenXM_contrib2/asir2000/builtin/result.c,v 1.1.1.1 1999/12/03 07:39:07 noro Exp $ */
#include "ca.h"
#include "parse.h"
void Presult(), Psrcr();
struct ftab result_tab[] = {
{"res",Presult,-4},
{"srcr",Psrcr,3},
{0,0,0},
};
void Presult(arg,rp)
NODE arg;
P *rp;
{
int mod;
P p1,p2,r;
asir_assert(ARG0(arg),O_P,"res");
asir_assert(ARG1(arg),O_P,"res");
asir_assert(ARG2(arg),O_P,"res");
if ( argc(arg) == 3 )
resultp(CO,VR((P)ARG0(arg)),(P)ARG1(arg),(P)ARG2(arg),rp);
else {
mod = QTOS((Q)ARG3(arg));
ptomp(mod,(P)ARG1(arg),&p1); ptomp(mod,(P)ARG2(arg),&p2);
resultmp(CO,mod,VR((P)ARG0(arg)),p1,p2,&r);
mptop(r,rp);
}
}
void Psrcr(arg,rp)
NODE arg;
P *rp;
{
asir_assert(ARG0(arg),O_P,"srcr");
asir_assert(ARG1(arg),O_P,"srcr");
asir_assert(ARG2(arg),O_P,"srcr");
res_ch_det(CO,VR((P)ARG0(arg)),(P)ARG1(arg),(P)ARG2(arg),rp);
}