miniscm: add notices and change "macro" to more standard "define-macro"

This commit is contained in:
Peter McGoron 2024-10-13 22:12:53 -04:00
parent b9a1460115
commit ca1b77d013
3 changed files with 56 additions and 31 deletions

11
miniscm/README.rst Normal file
View File

@ -0,0 +1,11 @@
=======
Miniscm
=======
A lightly modified version of minischeme. Includes
1) String access operators (``string-ref``, ``string-length``)
2) ability to create strings and symbols using ``list->string``,
``string->symbol``
3) ports (``open-input-port``, etc.)
4) chars

View File

@ -1,5 +1,17 @@
; This is a init file for Mini-Scheme. ; This is a init file for Mini-Scheme.
; Modified for UNSLISP. ; Copyright (C) 2024 Peter McGoron
;
; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, version 3 of the License.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program. If not, see <https://www.gnu.org/licenses/>.
(define modulo remainder) (define modulo remainder)
@ -146,8 +158,7 @@
(lambda args (lambda args
(list->string args))) (list->string args)))
(macro (define-macro cond-expand
cond-expand
(lambda (body) (lambda (body)
(letrec (letrec
((loop ((loop

View File

@ -26,16 +26,19 @@
*/ */
/* This version of MiniScheme has been modified to bootstrap UNSLISP. /* This version of MiniScheme has been modified to bootstrap UNSLISP.
* Copyright (C) 2024 Peter McGoron
* *
* Additions: * This program is free software: you can redistribute it and/or modify
* * Proper support for disabling quasiquote * it under the terms of the GNU General Public License as published by
* * Chars * the Free Software Foundation, version 3 of the License.
* * Proper support for changing init file by preprocessor define
* * Ports
* *
* Ports and chars only support the minimum necessary to run UNSLISP. * This program is distributed in the hope that it will be useful,
* The eof-object is #f. (Defining an entire type for EOF seems like * but WITHOUT ANY WARRANTY; without even the implied warranty of
* a kludge. An EOF test function would be a better design.) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
/* /*
@ -2628,7 +2631,7 @@ init_syntax()
mk_syntax(OP_OR0, "or"); mk_syntax(OP_OR0, "or");
mk_syntax(OP_C0STREAM, "cons-stream"); mk_syntax(OP_C0STREAM, "cons-stream");
#ifdef USE_MACRO #ifdef USE_MACRO
mk_syntax(OP_0MACRO, "macro"); mk_syntax(OP_0MACRO, "define-macro");
#endif #endif
mk_syntax(OP_CASE0, "case"); mk_syntax(OP_CASE0, "case");
} }