nendo 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/example/scratch.nnd +107 -49
- data/lib/init.nnd +429 -78
- data/lib/init.nndc +16939 -9197
- data/lib/nendo.rb +163 -53
- data/lib/rfc/json.nnd +1 -1
- data/lib/rfc/json.nndc +21 -6
- data/lib/srfi-1.nnd +9 -5
- data/lib/srfi-1.nndc +684 -626
- data/lib/srfi-2.nnd +42 -0
- data/lib/srfi-2.nndc +1350 -0
- data/lib/srfi-26.nnd +50 -0
- data/lib/srfi-26.nndc +4124 -0
- data/lib/text/html-lite.nndc +7 -1
- data/lib/util/list.nnd +184 -0
- data/lib/util/list.nndc +5453 -0
- data/test/{util-test.nnd → nendo-util-test.nnd} +4 -4
- data/test/nendo_spec.rb +136 -81
- data/test/srfi-1-test.nnd +8 -4
- data/test/srfi-2-test.nnd +63 -0
- data/test/srfi-26-test.nnd +89 -0
- data/test/syntax_spec.rb +200 -0
- data/test/util-list-test.nnd +178 -0
- metadata +16 -5
data/lib/srfi-2.nnd
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
;;;-*- mode: nendo; syntax: scheme -*-;;;
|
2
|
+
;;;
|
3
|
+
;;; srfi-2.nnd - srfi-2 : AND-LET*: an AND with local bindings, a guarded LET* special form
|
4
|
+
;;;
|
5
|
+
;;; Copyright (c) 2009 Alex Shinn
|
6
|
+
;;; All rights reserved.
|
7
|
+
;;;
|
8
|
+
;;; Redistribution and use in source and binary forms, with or without
|
9
|
+
;;; modification, are permitted provided that the following conditions
|
10
|
+
;;; are met:
|
11
|
+
;;; 1. Redistributions of source code must retain the above copyright
|
12
|
+
;;; notice, this list of conditions and the following disclaimer.
|
13
|
+
;;; 2. Redistributions in binary form must reproduce the above copyright
|
14
|
+
;;; notice, this list of conditions and the following disclaimer in the
|
15
|
+
;;; documentation and/or other materials provided with the distribution.
|
16
|
+
;;; 3. The name of the author may not be used to endorse or promote products
|
17
|
+
;;; derived from this software without specific prior written permission.
|
18
|
+
;;;
|
19
|
+
;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
20
|
+
;;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
21
|
+
;;; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
22
|
+
;;; IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
23
|
+
;;; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
24
|
+
;;; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
25
|
+
;;; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
26
|
+
;;; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
27
|
+
;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
28
|
+
;;; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
29
|
+
;;;
|
30
|
+
;;; ported for Nendo language by Kiyoka Nishiyama.
|
31
|
+
;;;
|
32
|
+
|
33
|
+
(define-syntax and-let*
|
34
|
+
(syntax-rules ()
|
35
|
+
((and-let* () . body)
|
36
|
+
(begin . body))
|
37
|
+
((and-let* ((var expr) . rest) . body)
|
38
|
+
(let ((var expr))
|
39
|
+
(and var (and-let* rest . body))))
|
40
|
+
((and-let* ((expr) . rest) . body)
|
41
|
+
(let ((tmp expr))
|
42
|
+
(and tmp (and-let* rest . body))))))
|