|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T o
Length: 5079 (0x13d7) Types: TextFile Names: »or2pe.py«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« └─⟦e5a54fb17⟧ └─⟦this⟧ »pp-5.0/Lib/or/or2pe.py«
-- or2pe: OR structure to P1 OR name -- @(#) $Header: /cs/research/pp/hubris/pp-beta/Lib/or/RCS/or2pe.py,v 5.0 90/09/20 16:08:56 pp Exp Locker: pp $ -- -- $Log: or2pe.py,v $ -- Revision 5.0 90/09/20 16:08:56 pp -- rcsforce : 5.0 public release -- -- OR DEFINITIONS ::= %{ #ifndef lint static char *Rcsid = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/or/RCS/or2pe.py,v 5.0 90/09/20 16:08:56 pp Exp Locker: pp $"; #endif lint #include "util.h" #include "or.h" #include <ctype.h> # define PEPYPARM OR_ptr # define or_present(or, type) (or_locate(or, type) != NULLOR) PE or2pe (or) OR_ptr or; { PE pe = NULLPE; PE tpe; if (build_OR_ORName (&pe, 1, 0, NULLCP, or) == NOTOK) { if (pe) pe_free (pe); return NULLPE; } /* SEK - strip off the APPLICATION TAG */ tpe = pe -> pe_cons; pe -> pe_cons = NULLPE; pe_free (pe); return tpe; } #undef DEBUG %} BEGIN ENCODER build -- O/R name ORName ::= [APPLICATION 0] IMPLICIT SEQUENCE { standard StandardAttributeList [[p parm]], domaindefined DomainDefinedAttributeList [[p parm]] OPTIONAL <<or_present (parm, OR_DD)>> } StandardAttributeList %{ OR_ptr op; %} ::= SEQUENCE { CountryName [[p or_locate (parm, OR_C)]] OPTIONAL <<or_present (parm, OR_C) >>, AdministrationDomainName [[p or_locate (parm, OR_ADMD)]] OPTIONAL << or_present (parm, OR_ADMD) >>, [0] IMPLICIT X121Address [[s or_value (parm, OR_X121)]] OPTIONAL << or_present (parm, OR_X121) >>, [1] IMPLICIT TerminalID [[s or_value (parm, OR_TID) ]] OPTIONAL << or_present (parm, OR_TID) >>, [2] PrivateDomainName [[p or_locate (parm, OR_PRMD)]] OPTIONAL << or_present (parm, OR_PRMD) >>, [3] IMPLICIT OrganizationName [[s or_value (parm, OR_O)]] OPTIONAL <<or_present (parm, OR_O) >>, [4] IMPLICIT UniqueUAIdentifier [[p or_locate (parm, OR_UAID)]] OPTIONAL << or_present (parm, OR_UAID) >>, [5] IMPLICIT PersonalName [[p parm]] OPTIONAL <<or_present (parm, OR_S)>>, [6] IMPLICIT SEQUENCE OF <<op = or_locate (parm, OR_OU); op && op -> or_type == OR_OU; op = op -> or_next >> OrganizationalUnit [[s op -> or_value]] OPTIONAL <<or_present (parm, OR_OU) >> } DomainDefinedAttributeList %{ OR_ptr op; %} ::= SEQUENCE OF << op = or_lastpart (parm); op && op -> or_type == OR_DD; op = op -> or_prev>> DomainDefinedAttribute [[p op]] DomainDefinedAttribute ::= SEQUENCE { type PrintableString [[s parm -> or_ddname]], value PrintableString [[s parm -> or_value]] } CountryName ::= [APPLICATION 1] CHOICE << 2 >> { NumericString [[s parm -> or_value ]], PrintableString [[s parm -> or_value ]] } AdministrationDomainName ::= [APPLICATION 2] CHOICE << 2 >> { NumericString [[s parm -> or_value]], PrintableString [[s parm -> or_value]] } PrivateDomainIdentifier ::= CHOICE << 2 >> { NumericString [[s parm -> or_value]], PrintableString [[s parm -> or_value]] } X121Address ::= NumericString TerminalID ::= PrintableString OrganizationName ::= PrintableString UniqueUAIdentifier ::= NumericString PersonalName ::= SET { surName[0] IMPLICIT PrintableString [[s or_value (parm, OR_S)]], givenName[1] IMPLICIT PrintableString [[s or_value (parm, OR_G)]] OPTIONAL <<or_present (parm, OR_G)>>, initials[2] IMPLICIT PrintableString [[s or_value (parm, OR_I)]] OPTIONAL <<or_present (parm, OR_I)>>, generalQualifier[3] IMPLICIT PrintableString [[s or_value (parm, OR_GQ)]] OPTIONAL <<or_present (parm, OR_GQ)>> } OrganizationalUnit ::= PrintableString PrivateDomainName ::= CHOICE << 2 >> { NumericString [[s parm -> or_value]], PrintableString [[s parm -> or_value]] } END