-
Notifications
You must be signed in to change notification settings - Fork 1
/
x-ann.sex
53 lines (41 loc) · 1.6 KB
/
x-ann.sex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; File: x-ann.s ;;
;; Project: the specializer Unmix ;;
;; Author: S.A.Romanenko, the Institute for Applied ;;
;; Mathematics, the USSR Acedemy of Sciences, ;;
;; Moscow. ;;
;; Created: August 1990 ;;
;; Revised: ;;
;; ;;
;; Contents: Macro definitions of some constructs, which are ;;
;; useless for ordinary programming, but are used ;;
;; to annotate source programs. ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; This construct is used for marking residual function calls.
;; "exp" is supposed to be a function call of the form
;; (<fname> <arg> ...).
;;
(extend-syntax
(rcall)
((rcall exp) exp)
)
;;
;; This construct is used to convert static values to dynamic ones.
;; The result of specializing (generalize <exp>) will be dynamic
;; even if <exp> is static.
;;
(extend-syntax
(generalize)
((generalize exp) exp)
)
;;
;; Following are some general-purpose macro-extensions...
;;
(extend-syntax
(when)
((when pred exp1 exp2 ...)
(if pred (begin exp1 exp2 ...)))
)