miniscm: add notices and change "macro" to more standard "define-macro"
This commit is contained in:
parent
b9a1460115
commit
ca1b77d013
|
@ -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
|
|
@ -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
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue