;;; -*-scheme-*-
;;; Mes --- Maxwell Equations of Software
-;;; Copyright © 2016,2017 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016,2017,2018 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of Mes.
;;;
(define (d x cont? sep)
(for-each (cut write-char <> port) (string->list sep))
(cond
+ ((eof-object? x)
+ (display "#<eof>" port))
((char? x)
(if (not write?) (write-char x port)
- (let ((name (and=> (assq x '((#\*eof* . *eof*)
- (#\nul . nul)
+ (let ((name (and=> (assq x '((#\nul . nul)
(#\alarm . alarm)
(#\backspace . backspace)
(#\tab . tab)
\f
(define integer? number?)
-(define (eof-object? x)
- (or (and (number? x) (= x -1))
- (and (char? x) (eof-object? (char->integer x)))))
-
(if (not (defined? 'peek-char))
(define (peek-char)
(integer->char (peek-byte))))
(if (not (defined? 'unread-char))
(define (unread-char c)
- (unread-byte (char->integer c))))
+ (integer->char (unread-byte (char->integer c)))))
(define (assq-set! alist key val)
(let ((entry (assq key alist)))
;;; -*-scheme-*-
;;; Mes --- Maxwell Equations of Software
-;;; Copyright © 2016,2017 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016,2017,2018 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of Mes.
;;;
(cond ((assq (core:type x) cell:type-alist) => cdr)))
(define (char? x)
- (eq? (core:type x) <cell:char>))
+ (and (eq? (core:type x) <cell:char>)
+ (>= (char->integer x) 0)))
+
+(define (eof-object? x)
+ (and (eq? (core:type x) <cell:char>)
+ (= (char->integer x) -1)))
(define (closure? x)
(eq? (core:type x) <cell:closure>))
;;; -*-scheme-*-
;;; Mes --- Maxwell Equations of Software
-;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016,2018 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of Mes.
;;;
(begin (set! seen? #t)
(cont 2)))))
+(if (not guile?)
+ (pass-if-not "#<eof>"
+ (char? (integer->char -1))))
+
(result 'report)