! File: CSWO.RTN ! ! This work was supported by the Advanced Research ! Projects Agency of the Office of the Secretary of ! Defense (F44620-73-C-0074) and is monitored by the ! Air Force Office of Scientific Research. ROUTINE CREATESWO(SYMBOL,OFF)= BEGIN LOCAL STVEC X; REGISTER STVEC T; BIND STVEC OP1=SYMBOL; BIND LEXEME O2=OFF; IF LITVALUE(.O2) EQL 0 THEN RETURN .OP1; X_BASESYM(.OP1); T_.X[NXTHREAD]; WHILE .T NEQ 0 DO IF .T[NAMEXPTR] EQL .X THEN IF LITVALUE(.T[OFFSETF]) EQL LITVALUE(.OP1[OFFSETF]+.O2[ADDRF]) THEN EXITLOOP ELSE T_.T[NXTHREAD] ELSE T_.T[NXTHREAD]; IF .T EQL 0 THEN BEGIN T_GETSPACE(ST,.STSZ[.OP1[TYPEF]]); MOVECORE(.OP1,.T,.STSZ[.OP1[TYPEF]]); IF NOT .T[NAMEXP] THEN (T[NAMEXP]_1; T[NAMEXPTR]_.OP1); T[OFFSETF]_(.T[OFFSETF]+LITVALUE(.O2)) AND #177777; T[NXTHREAD]_.X[NXTHREAD]; X[NXTHREAD]_.T; END; LEXOUT(BNDVAR,.T) END;