racket/collects/redex/private/enum.rkt
2013-05-01 10:46:11 -05:00

22 lines
581 B
Racket

#lang racket/base
(require racket/contract
"lang-struct.rkt")
(provide
(contract-out
[lang-enumerators (-> (listof nt?) (hash/c symbol? enum?))]
[pat-enumerator (-> (hash/c symbol? enum?)
any/c ;; pattern
enum?)]
[enum-ith (-> enum? exact-nonnegative-integer? any/c)]
[enum? (-> any/c boolean?)]))
(struct enum ())
(define (lang-enumerators nts) (make-hash))
(define (pat-enumerator li p)
(unless (equal? p '(name natural natural))
(error 'enum.rkt "not yet implemented"))
(enum))
(define (enum-ith e i) i)