DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T o

⟦6d220ca58⟧ TextFile

    Length: 5079 (0x13d7)
    Types: TextFile
    Names: »or2pe.py«

Derivation

└─⟦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« 

TextFile

-- 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