123456789101112131415161718192021222324252627282930313233343536373839 |
- %
- % ONOFF.RED - Macros for setting/resetting flags, with SIMPFG hook
- %
- % Author: Martin Griss
- % Symbolic Computation Group
- % Computer Science Dept.
- % University of Utah
- % Date: 21 July 1982
- % Copyright (c) 1982 University of Utah
- %
- % ONOFF.RED - ON and OFF for Bare PSL
- % MLG, from PU:RLISP-PARSER.RED
- lisp procedure OnOff!*(IdList, U);
- %
- % IdList is list of variables without !* prefix, U is T or NIL
- %
- begin scalar Y;
- for each X in IdList do
- if not IDP X then NonIDError(X, if null U then 'OFF else 'ON)
- else
- << Set(MkFlagVar X, U);
- if (Y := Atsoc(U, get(X, 'SIMPFG))) then Eval second Y >>;
- end;
- lisp procedure MkFlagVar U; % Should be redefined in PACKAGE.RED
- Intern Concat("*", ID2String U); % to lambda-bind current pkg to GLOBAL
- macro procedure ON U;
- list('OnOff!*, MkQuote cdr U, T);
- macro procedure OFF U;
- list('OnOff!*, MkQuote cdr U, NIL);
- flag('(ON OFF), 'IGNORE);
- END;
|