home *** CD-ROM | disk | FTP | other *** search
- /*
- * File: ovalue.c
- * Contents: nonnull, null, value
- */
-
- #include "../h/config.h"
- #include "../h/rt.h"
- #include "rproto.h"
-
-
- /*
- * \x - test x for nonnull value.
- */
-
- #ifdef WATERLOO_C_V3_0
- struct b_iproc Bnonnull = {
- T_Proc,
- Vsizeof(struct b_proc),
- Ononnull,
- 1,
- -1,
- 0,
- 0,
- {sizeof(BackSlash)-1,BackSlash}}; Ononnull(cargp,sptr) register dptr cargp;
- #else /* WATERLOO_C_V3_0 */
- OpDcl(nonnull,1,BackSlash)
- #endif /* WATERLOO_C_V3_0 */
- {
-
- /*
- * If Arg1 is not null, it is returned, otherwise, the function fails.
- * Because the pre-dereference value of Arg1 is the return value (if
- * any), Arg1 is copied into Arg0.
- */
- Arg0 = Arg1;
- if (DeRef(Arg1) == Error)
- RunErr(0, NULL);
- if (ChkNull(Arg1))
- Fail;
- Return;
- }
-
- /*
- * /x - test x for null value.
- */
-
- OpDcl(null,1,"/")
- {
-
- /*
- * If Arg1 is null, it is returned, otherwise, the function fails.
- * Because the pre-dereference value of Arg1 is the return value (if
- * any), Arg1 is copied into Arg0.
- */
- Arg0 = Arg1;
- if (DeRef(Arg1) == Error)
- RunErr(0, NULL);
- if (!ChkNull(Arg1))
- Fail;
- Return;
- }
-
- /*
- * .x - produce value of x.
- */
-
- OpDcl(value,1,".")
- {
-
- if (DeRef(Arg1) == Error)
- RunErr(0, NULL);
- Arg0 = Arg1;
- Return;
- }
-