
(SDEFUN |OMPKG;OMunhandledSymbol;2SE;1|
        ((|u| |String|) (|v| |String|) ($ |Exit|))
        (|error|
         (SPADCALL
          (LIST "AXIOM is unable to process the symbol " |u| " from CD " |v|
                ".")
          (QREFELT $ 8)))) 

(SDEFUN |OMPKG;OMread;OmdA;2| ((|dev| |OpenMathDevice|) ($ |Any|))
        (SPADCALL (OM-READ |dev|) (QREFELT $ 13))) 

(SDEFUN |OMPKG;OMreadFile;SA;3| ((|filename| |String|) ($ |Any|))
        (SPROG ((|res| (|Any|)) (|dev| (|OpenMathDevice|)))
               (SEQ
                (LETT |dev|
                      (SPADCALL |filename| "r" (SPADCALL (QREFELT $ 17))
                                (QREFELT $ 18))
                      . #1=(|OMPKG;OMreadFile;SA;3|))
                (LETT |res| (SPADCALL (OM-READ |dev|) (QREFELT $ 13)) . #1#)
                (SPADCALL |dev| (QREFELT $ 20)) (EXIT |res|)))) 

(SDEFUN |OMPKG;OMreadStr;SA;4| ((|str| |String|) ($ |Any|))
        (SPROG ((|res| (|Any|)) (|dev| (|OpenMathDevice|)) (|strp| (|None|)))
               (SEQ
                (LETT |strp| (OM-STRINGTOSTRINGPTR |str|)
                      . #1=(|OMPKG;OMreadStr;SA;4|))
                (LETT |dev|
                      (SPADCALL |strp| (SPADCALL (QREFELT $ 17))
                                (QREFELT $ 22))
                      . #1#)
                (LETT |res| (SPADCALL (OM-READ |dev|) (QREFELT $ 13)) . #1#)
                (SPADCALL |dev| (QREFELT $ 20)) (EXIT |res|)))) 

(PUT '|OMPKG;OMlistCDs;L;5| '|SPADreplace| 'OM-LISTCDS) 

(SDEFUN |OMPKG;OMlistCDs;L;5| (($ |List| (|String|))) (OM-LISTCDS)) 

(PUT '|OMPKG;OMlistSymbols;SL;6| '|SPADreplace| 'OM-LISTSYMBOLS) 

(SDEFUN |OMPKG;OMlistSymbols;SL;6| ((|cd| |String|) ($ |List| (|String|)))
        (OM-LISTSYMBOLS |cd|)) 

(SDEFUN |OMPKG;OMsupportsCD?;SB;7| ((|cd| |String|) ($ |Boolean|))
        (NULL (SPADCALL (OM-SUPPORTSCD |cd|) (QREFELT $ 29)))) 

(SDEFUN |OMPKG;OMsupportsSymbol?;2SB;8|
        ((|cd| |String|) (|name| |String|) ($ |Boolean|))
        (NULL (SPADCALL (OM-SUPPORTSSYMBOL |cd| |name|) (QREFELT $ 29)))) 

(DECLAIM (NOTINLINE |OpenMathPackage;|)) 

(DEFUN |OpenMathPackage| ()
  (SPROG NIL
         (PROG (#1=#:G714)
           (RETURN
            (COND
             ((LETT #1# (HGET |$ConstructorCache| '|OpenMathPackage|)
                    . #2=(|OpenMathPackage|))
              (|CDRwithIncrement| (CDAR #1#)))
             ('T
              (UNWIND-PROTECT
                  (PROG1
                      (CDDAR
                       (HPUT |$ConstructorCache| '|OpenMathPackage|
                             (LIST (CONS NIL (CONS 1 (|OpenMathPackage;|))))))
                    (LETT #1# T . #2#))
                (COND
                 ((NOT #1#)
                  (HREM |$ConstructorCache| '|OpenMathPackage|)))))))))) 

(DEFUN |OpenMathPackage;| ()
  (SPROG ((|dv$| NIL) ($ NIL) (|pv$| NIL))
         (PROGN
          (LETT |dv$| '(|OpenMathPackage|) . #1=(|OpenMathPackage|))
          (LETT $ (GETREFV 32) . #1#)
          (QSETREFV $ 0 |dv$|)
          (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
          (|haddProp| |$ConstructorCache| '|OpenMathPackage| NIL (CONS 1 $))
          (|stuffDomainSlots| $)
          (SETF |pv$| (QREFELT $ 3))
          $))) 

(MAKEPROP '|OpenMathPackage| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|List| $) (|String|) (0 . |concat|)
              (|Exit|) |OMPKG;OMunhandledSymbol;2SE;1| (|Any|) (|InputForm|)
              (5 . |interpret|) (|OpenMathDevice|) |OMPKG;OMread;OmdA;2|
              (|OpenMathEncoding|) (10 . |OMencodingUnknown|)
              (14 . |OMopenFile|) (|Void|) (21 . |OMclose|)
              |OMPKG;OMreadFile;SA;3| (26 . |OMopenString|)
              |OMPKG;OMreadStr;SA;4| (|List| 7) |OMPKG;OMlistCDs;L;5|
              |OMPKG;OMlistSymbols;SL;6| (|Boolean|) (|SExpression|)
              (32 . |null?|) |OMPKG;OMsupportsCD?;SB;7|
              |OMPKG;OMsupportsSymbol?;2SB;8|)
           '#(|OMunhandledSymbol| 37 |OMsupportsSymbol?| 43 |OMsupportsCD?| 49
              |OMreadStr| 54 |OMreadFile| 59 |OMread| 64 |OMlistSymbols| 69
              |OMlistCDs| 74)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 31
                                                 '(1 7 0 6 8 1 12 11 0 13 0 16
                                                   0 17 3 14 0 7 7 16 18 1 14
                                                   19 0 20 2 14 0 7 16 22 1 28
                                                   27 0 29 2 0 9 7 7 10 2 0 27
                                                   7 7 31 1 0 27 7 30 1 0 11 7
                                                   23 1 0 11 7 21 1 0 11 14 15
                                                   1 0 24 7 26 0 0 24 25)))))
           '|lookupComplete|)) 

(MAKEPROP '|OpenMathPackage| 'NILADIC T) 
