17
17
;; These META-PROP functions allow selected commands to
18
18
;; also output DEFPROP's when processed in the Macsyma->lisp translation.
20
(DEFMVAR META-PROP-P NIL)
21
(DEFMVAR META-PROP-L NIL)
20
(defmvar meta-prop-p nil)
21
(defmvar meta-prop-l nil)
23
(DEFUN META-OUTPUT (FORM)
24
(IF *IN-TRANSLATE-FILE* (PUSH FORM META-PROP-L))
23
(defun meta-output (form)
24
(if *in-translate-file* (push form meta-prop-l))
25
25
;; unfortunately, MATCOM needs to see properties in order
26
26
;; to compose tellsimps. so eval it always.
29
(DEFMFUN META-ADD2LNC (ITEM SSYMBOL)
31
(META-OUTPUT `(ADD2LNC ',ITEM ,SSYMBOL))
32
(ADD2LNC ITEM (SYMBOL-VALUE SSYMBOL))))
34
(DEFMFUN META-PUTPROP (SSYMBOL ITEM KEY)
36
(PROG1 ITEM (META-OUTPUT `(DEFPROP ,SSYMBOL ,ITEM ,KEY)))
37
(PUTPROP SSYMBOL ITEM KEY)))
39
(DEFMFUN META-MPUTPROP (SSYMBOL ITEM KEY)
41
(PROG1 ITEM (META-OUTPUT `(MDEFPROP ,SSYMBOL ,ITEM ,KEY)))
42
(MPUTPROP SSYMBOL ITEM KEY)))
44
(DEFMFUN META-FSET (SSYMBOL DEFINITION)
46
(PROG1 DEFINITION (META-OUTPUT
47
`(FSET ',SSYMBOL (coerce ',DEFINITION 'function))))
48
(FSET SSYMBOL (coerce definition 'function))))
29
(defmfun meta-add2lnc (item ssymbol)
31
(meta-output `(add2lnc ',item ,ssymbol))
32
(add2lnc item (symbol-value ssymbol))))
34
(defmfun meta-putprop (ssymbol item key)
36
(prog1 item (meta-output `(defprop ,ssymbol ,item ,key)))
37
(putprop ssymbol item key)))
39
(defmfun meta-mputprop (ssymbol item key)
41
(prog1 item (meta-output `(mdefprop ,ssymbol ,item ,key)))
42
(mputprop ssymbol item key)))
44
(defmfun meta-fset (ssymbol definition)
46
(prog1 definition (meta-output
47
`(fset ',ssymbol (coerce ',definition 'function))))
48
(fset ssymbol (coerce definition 'function))))