4.3BSD/usr/contrib/icon/operators/asgn.c

Compare this file to the similar file:
Show the results in this format:

#include "../h/rt.h"

/*
 * x := y - assign y to x.
 */

asgn(nargs, arg2, arg1, arg0)
int nargs;
struct descrip arg2, arg1, arg0;
   {
   DclSave
   SetBound;
   /*
    * Make sure that x is a variable.
    */
   if (QUAL(arg1) || !VAR(arg1))
      runerr(111, &arg1);
   /*
    * Return value is the variable being assigned to.
    */
   arg0 = arg1;
   DeRef(arg2)
   /*
    * doasgn does all the work.
    */
   doasgn(&arg1, &arg2);
   ClearBound;
   }

Opblock(asgn,2,":=")