DIRECTORY Core, CoreOps, CoreName, CoreWire, CoreXform; CoreWireImpl: CEDAR PROGRAM IMPORTS CoreOps, CoreName, CoreWire, CoreXform EXPORTS CoreWire = BEGIN OPEN CoreWire; Signal: SIGNAL = CODE; f: PUBLIC PROC[wire: CWire, name: ROPE] RETURNS[subWire: CWire] = { index: INT _ CoreOps.GetWireIndex[wire.w, name]; RETURN[IF index=-1 OR wire.w.size<(index+1) THEN [NIL] ELSE [wire.w[index]]]}; i: PUBLIC PROC[wire: CWire, index: INT] RETURNS[subWire: CWire] = { RETURN[IF index=-1 OR wire=NIL OR wire.w.size<(index+1) THEN [NIL] ELSE [wire.w[index]]]}; x: PUBLIC PROC[wire: CWire, index: INT] RETURNS[subWire: CWire] = { wireXform: CoreXform.Xform _ CoreXform.GetXform[wire.w]; addr: CoreXform.Addr; IF wireXform=NIL THEN RETURN[IF wire=NIL THEN [NIL] ELSE IF wire.size=0 THEN wire ELSE wire.i[index] ]; addr _ CoreXform.XformIndex[wireXform, rl, index].a; FOR addr _ addr, addr.rest WHILE addr#NIL DO IF wire.size=0 THEN EXIT; wire _ wire.i[ addr.first ] ENDLOOP; RETURN[wire]}; n: PUBLIC PROC[wire: CWire] RETURNS[name: ROPE] = {RETURN[ CoreName.WireNm[ wire.w ].n ]}; END. ‚CoreWireImpl.mesa Created by Don Curry, February 1, 1986 2:43:22 pm PST Edited by Don Curry, March 26, 1986 7:37:24 am PST Ęč˜šœ™J™5J™2—J˜JšĪk œ.˜7J•StartOfExpansion[]˜šœœ˜Jšœ'˜.Jšœ ˜Jšœœ ˜J˜Jšœœœ˜J˜š œœœœœ˜CJšœœ'˜1Jš œœ œœœ˜N—š œœœœœ˜Cš œœ œœœ˜7Jšœœ˜ Jšœ˜——š œœœœœ˜CJšœ8˜8Jšœ˜šœ œ˜Jšœœœœœœœ œœ˜Q—JšœĪn œ˜6šœœœ˜,Jšœ œœ˜Jšœœ˜$—Jšœ˜—š œœœœœ˜1Jšœœ!˜(—J˜Jšœ˜—J˜—…—>¨