1234567891011121314151617181920212223242526272829303132333435363738394041 |
- ;;; Ported from Scheme 48 1.9. See file COPYING for notices and license.
- ;;;
- ;;; Port Author: Andrew Whatson
- ;;;
- ;;; Original Authors: Richard Kelsey, Jonathan Rees
- ;;;
- ;;; scheme48-1.9.2/scheme/alt/locations.scm
- ;;;
- ;;; Locations
- (define-module (prescheme locations)
- #:use-module (srfi srfi-9)
- #:use-module (prescheme record-discloser)
- #:export (location?
- location-defined?
- location-assigned?
- location-id
- set-location-id!
- make-undefined-location
- set-location-defined?!
- contents
- set-contents!))
- (define-record-type :location
- (make-location id defined? contents)
- location?
- (id location-id set-location-id!)
- (defined? location-defined? set-defined?!)
- (contents contents set-contents!))
- (define-record-discloser :location
- (lambda (l) `(location ,(location-id l))))
- (define (make-undefined-location id)
- (make-location id #f '*empty*))
- (define (set-location-defined?! loc ?)
- (set-defined?! loc ?)
- (if (not ?)
- (set-contents! loc '*empty*)))
|