home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-386-Vol-2of3.iso / c / cr-macro.zip / CLASSES.SCM next >
Text File  |  1990-02-20  |  1KB  |  43 lines

  1. ; Expression classes
  2.  
  3. (define class/literal       0)
  4. (define class/variable        1)
  5. (define class/application   2)
  6. (define class/lambda        3)
  7. (define class/letrec        4)
  8. (define class/if        5)
  9. (define class/quote        6)
  10. (define class/begin        7)
  11. (define class/set!        8)
  12.  
  13. ; Macro-related classes
  14.  
  15. (define class/let-syntax    9)
  16. (define class/letrec-syntax 10)
  17.  
  18. ; Definition classes
  19.  
  20. (define class/define        11)
  21. (define class/define-syntax 12)
  22.  
  23.  
  24. (define number-of-classes 13)
  25.  
  26. (define classes
  27.   (let ((v (make-vector number-of-classes #f)))
  28.     (vector-set! v class/literal       'literal)
  29.     (vector-set! v class/variable      'variable)
  30.     (vector-set! v class/application   'application)
  31.     (vector-set! v class/lambda        'lambda)
  32.     (vector-set! v class/letrec        'letrec)
  33.     (vector-set! v class/if            'if)
  34.     (vector-set! v class/quote         'quote)
  35.     (vector-set! v class/begin         'begin)
  36.     (vector-set! v class/set!          'set!)
  37.     (vector-set! v class/let-syntax    'let-syntax)
  38.     (vector-set! v class/letrec-syntax 'letrec-syntax)
  39.     (vector-set! v class/define        'define)
  40.     (vector-set! v class/define-syntax 'define-syntax)
  41.     v))
  42.