perm filename DATADI[PAT,LMM] blob sn#096404 filedate 1974-04-08 generic text, type T, neo UTF8
(FILECREATED " 8-APR-74 02:07:55" DATADICT

     changes to:  @1, @2, DATADICTVARS, CATDICT)


  (LISPXPRINT (QUOTE DATADICTVARS)
              T)
  (RPAQQ DATADICTVARS
         ((FNS @1 @2)
          (PROP PRETTYTYPE STRUCS)
          [ADDVARS (PRETTYMACROS
                     (STRUCS X (VARS * (MAPCAR (QUOTE X)
                                               (FUNCTION
                                                 (LAMBDA
                                                   (Y)
                                                   (LIST (QUOTE Y)
                                                         (@1 (CAR Y]
          (STRUCS CATDICT)))
(DEFINEQ

(@1
  [LAMBDA (X M)
    (COND
      ((OR (NULL X)
           (NUMBERP X)
           (STRINGP X)
           (EQ X T))
        X)
      ((SETQ M (@2 X M))
        M)
      (T (LIST (QUOTE QUOTE)
               X])

(@2
  [LAMBDA (BODY)
    (PROG (N M)
          [RETURN
            (SELECTQ
              (NTYP BODY)
              ((24 12 16 18 20)
                NIL)
              [8 (COND
                   ((NULL (CDR BODY))
                     (AND (SETQ N (@2 (CAR BODY)
                                      N))
                          (LIST (QUOTE LIST)
                                N)))
                   (T (SETQ M (@2 (CAR BODY)
                                  N))
                      (SETQ N (@2 (CDR BODY)
                                  N))
                      (AND (NULL M)
                           (NULL N)
                           (RETURN NIL))
                      (AND (NULL M)
                           (SETQ M (CAR BODY))
                           (NOT (NUMBERP M))
                           (NOT (EQ M T))
                           (NOT (STRINGP M))
                           (SETQ M (LIST (QUOTE QUOTE)
                                         M)))
                      (COND
                        [(EQ (CAR N)
                             (QUOTE LIST))
                          (CONS (CAR N)
                                (CONS M (CDR N]
                        (T (LIST (QUOTE CONS)
                                 M
                                 (COND
                                   ((AND (NULL N)
                                         (SETQ N (CDR BODY))
                                         (NOT (NUMBERP N))
                                         (NOT (EQ N T)))
                                     (LIST (QUOTE QUOTE)
                                           N))
                                   (T N]
              (OR
                [AND (SETQ N (GETP [CDR (FASSOC (NTYP BODY)
                                                (LISTP (CAR (QUOTE 
                                                              USERDATATYPES]
                                   (QUOTE DATATYPE)))
                     [SETQ M (RECORDECL (GETP N (QUOTE CLISPRECORD]
                     (CONS (QUOTE CREATE)
                           (CONS N (FOR FIELD IN (CADDR M)
                                      WHEN (NULL (CADDDR FIELD))
                                      JOIN (LIST (CAR FIELD)
                                                 (QUOTE ←)
                                                 (@1 (EVAL (CADR FIELD]
                (HELP]

          (* THE TRANSLATIONS OF THE FIELDS ARE ALWAYS IN TERMS OF THE 
          VARIABLE "BODY")


      ])
)
(DEFLIST(QUOTE(
  [STRUCS (LAMBDA (X Y)
                  (AND (EQ Y (QUOTE VARS))
                       (CDR X]
))(QUOTE PRETTYTYPE))

  [ADDTOVAR PRETTYMACROS (STRUCS X
                                 (VARS * (MAPCAR
                                         (QUOTE X)
                                         (FUNCTION
                                           (LAMBDA (Y)
                                                   (LIST (QUOTE Y)
                                                         (@1 (CAR Y]
  [RPAQ Y (LIST (QUOTE CATDICT.;1)
                5 100
                [LIST (QUOTE (POLYGONAL 2 2))
                      NIL
                      [CREATE STRUCTURE CTABLE ←
                              (LIST (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (2 2 4 2))
                                            NODENUM ← 1 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (1 1 3 1))
                                            NODENUM ← 2 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (4 4 2))
                                            NODENUM ← 3 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (3 1 3))
                                            NODENUM ← 4 FREEVALENCE ← 0))
                              UGRAPH ← (QUOTE (4 A A))
                              LASTNODE# ← 4 GROUP ←
                              (QUOTE (((4 3 2 1))
                                      ((3 4 1 2]
                      [CREATE STRUCTURE CTABLE ←
                              (LIST (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (3 2 4 2))
                                            NODENUM ← 1 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (1 3 1))
                                            NODENUM ← 2 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (1 4 4 2))
                                            NODENUM ← 3 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (3 1 3))
                                            NODENUM ← 4 FREEVALENCE ← 0))
                              UGRAPH ← (QUOTE (4 A A))
                              LASTNODE# ← 4 GROUP ←
                              (QUOTE (((4 3 2 1))
                                      ((2 1 4 3]
                      [CREATE STRUCTURE CTABLE ←
                              (LIST (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (2 4 2))
                                            NODENUM ← 1 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (3 1 3 1))
                                            NODENUM ← 2 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (2 4 4 2))
                                            NODENUM ← 3 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (3 1 3))
                                            NODENUM ← 4 FREEVALENCE ← 0))
                              UGRAPH ← (QUOTE (4 A A))
                              LASTNODE# ← 4 GROUP ←
                              (QUOTE (((4 3 2 1))
                                      ((1 2 3 4]
                      (CREATE STRUCTURE CTABLE ←
                              (LIST (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (2 3 4 2))
                                            NODENUM ← 1 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (1 4 3 1))
                                            NODENUM ← 2 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (1 4 2))
                                            NODENUM ← 3 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (2 1 3))
                                            NODENUM ← 4 FREEVALENCE ← 0))
                              UGRAPH ← (QUOTE (4 B B))
                              LASTNODE# ← 4 GROUP ←
                              (QUOTE (((4 3 2 1))
                                      ((3 4 2 1))
                                      ((4 3 1 2))
                                      ((3 4 1 2]
                [LIST (QUOTE (POLYGONAL 2))
                      NIL
                      (CREATE STRUCTURE CTABLE ←
                              (LIST (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (2 2 2))
                                            NODENUM ← 1 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (1 1 1))
                                            NODENUM ← 2 FREEVALENCE ← 0))
                              UGRAPH ← (QUOTE (2 A))
                              LASTNODE# ← 2 GROUP ← (QUOTE (((1 2))
                                                            ((2 1]
                [LIST (QUOTE (POLYGONAL 0 2))
                      NIL
                      (CREATE STRUCTURE CTABLE ←
                              (LIST (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (2 2 2 2))
                                            NODENUM ← 1 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (1 1 1 1))
                                            NODENUM ← 2 FREEVALENCE ← 0))
                              UGRAPH ← (QUOTE (MBONDS . 4))
                              LASTNODE# ← 2 GROUP ← (QUOTE (((1 2))
                                                            ((2 1]
                [LIST (QUOTE (POLYGONAL 2 1))
                      NIL
                      (CREATE STRUCTURE CTABLE ←
                              (LIST (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (2 2 3 3))
                                            NODENUM ← 1 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (1 1 3))
                                            NODENUM ← 2 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (1 1 2))
                                            NODENUM ← 3 FREEVALENCE ← 0))
                              UGRAPH ← (QUOTE T21)
                              LASTNODE# ← 3 GROUP ← (QUOTE (((2 3)
                                                             (1))
                                                            ((3 2)
                                                             (1]
                (LIST (QUOTE (POLYGONAL 0 3))
                      NIL
                      (CREATE STRUCTURE CTABLE ←
                              (LIST (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (2 2 3 3))
                                            NODENUM ← 1 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (1 1 3 3))
                                            NODENUM ← 2 FREEVALENCE ← 0)
                                    (CREATE CTENTRY ATOMTYPE ← NIL NBRS ←
                                            (QUOTE (1 1 2 2))
                                            NODENUM ← 3 FREEVALENCE ← 0))
                              UGRAPH ← (QUOTE T03)
                              LASTNODE# ← 3 GROUP ← (QUOTE (((1 2 3))
                                                            ((2 1 3))
                                                            ((1 3 2))
                                                            ((3 1 2))
                                                            ((2 3 1))
                                                            ((3 2 1]
STOP