123456789101112131415161718192021222324252627282930313233343536373839 |
- (define-module (derivative language)
- #:use-module (srfi srfi-9)
- #:export (<alt>
- alt?
- alt-this
- alt-that
- <cat>
- cat?
- cat-left
- cat-right
- <rep>
- rep?
- rep-lang))
- ;;; TODO: Explore what it would be like to have a single list
- ;;; argument, a list of languages, and treat it appropriately in the
- ;;; macros and procedures. Same for <cat>.
- (define-record-type <alt>
- (make-alt this that)
- alt?
- (this alt-this)
- (that alt-that))
- (define-record-type <cat>
- (make-cat left right)
- cat?
- (left cat-left)
- (right cat-right))
- (define-record-type <rep>
- (make-rep lang)
- rep?
- (lang rep-lang))
- ;;; The empty and null languages are simply the symbols 'empty and
- ;;; 'epsilon, respectively.
|