#| Copyright 2024 Peter McGoron | | Licensed under the Apache License, Version 2.0 (the "License"); | you may not use this file except in compliance with the License. | You may obtain a copy of the License at | | http://www.apache.org/licenses/LICENSE-2.0 | | Unless required by applicable law or agreed to in writing, software | distributed under the License is distributed on an "AS IS" BASIS, | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | See the License for the specific language governing permissions and | limitations under the License. |# (define-record-type (make-iterator-exception iterator type fields) iterator-exception? (iterator iterator-exception-iterator) (type iterator-exception-type) (fields iterator-exception-fields)) (define (not-implemented-exception iterator field) (make-iterator-exception iterator 'not-implemented (list (cons 'field field)))) (define (non-integer-movement-exception iterator spaces) (make-iterator-exception iterator 'non-integer-movement (list (cons 'spaces spaces)))) (define (negative-movement-exception iterator spaces) (make-iterator-exception iterator 'negative-movement (list (cons 'spaces spaces)))) (define (ref-at-end-exception iterator) (make-iterator-exception iterator 'ref-at-end '()))