|
|
1.1 ! root 1: /* ! 2: * File: ovalue.c ! 3: * Contents: nonnull, null, value ! 4: */ ! 5: ! 6: #include "../h/rt.h" ! 7: ! 8: /* ! 9: * \x - test x for nonnull value. ! 10: */ ! 11: ! 12: OpDcl(nonnull,1,"\\") ! 13: { ! 14: ! 15: /* ! 16: * If x is not null, it is returned, otherwise, the function fails. ! 17: * Because the pre-dereference value of x is the return value (if ! 18: * any), x is copied into Arg0. ! 19: */ ! 20: Arg0 = Arg1; ! 21: DeRef(Arg1); ! 22: if (ChkNull(Arg1)) ! 23: Fail; ! 24: Return; ! 25: } ! 26: ! 27: ! 28: /* ! 29: * /x - test x for null value. ! 30: */ ! 31: ! 32: OpDcl(null,1,"/") ! 33: { ! 34: ! 35: /* ! 36: * If x is null, it is returned, otherwise, the function fails. ! 37: * Because the pre-dereference value of x is the return value (if ! 38: * any), x is copied into Arg0. ! 39: */ ! 40: Arg0 = Arg1; ! 41: DeRef(Arg1); ! 42: if (!ChkNull(Arg1)) ! 43: Fail; ! 44: Return; ! 45: } ! 46: ! 47: ! 48: /* ! 49: * .x - produce value of x by dereferencing it. ! 50: */ ! 51: ! 52: OpDcl(value,1,".") ! 53: { ! 54: ! 55: Arg0 = Arg1; ! 56: Return; ! 57: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.