source: project/release/4/srfi-102/trunk/notes.txt @ 16080

Last change on this file since 16080 was 16080, checked in by Kon Lovett, 11 years ago

Rmvd use of sys ns. Simplification.

File size: 1.5 KB
Line 
1
2#|
3  ; [..] - optional
4  ; <..> - non-terminal
5  ; ...  - one or more
6  ; ..   - terminal
7 
8  <signature>   ::  ( <procedure> [#!condition <conditions>] )
9                 |  <procedure>
10
11  ; match-lambda ?
12  <procedure>   ::  <lambda> | <case-lambda>
13 
14  ; conditions are a kind-of struct
15  <conditions>  ::  <identifier> ...
16 
17  <lambda>      ::  procedure
18                 |  ( [<formals>] -> [<result>] )
19 
20  <formals>     ::  <old-formals> | <new-formals>
21
22  <old-formals> ::  [<requireds>] [#!optional <optionals>] [#!rest <rest>] [#!key <keys>]
23
24  ; from proposed DSSSL parsing extension
25  <new-formals> ::  [<requireds>] [#!optional <optionals>] [#!key <keys>] [#!rest <rest>]
26 
27  <requireds>   ::  <type> ...
28 
29  <optionals>   ::  <type> ...
30 
31  <keys>        ::  <keyword> <type> <keys>
32 
33  <rest>        ::  <type> | values | noreturn
34 
35  <result>      ::  <type> | ( <type> ... )
36
37  <type>        ::  <basic-type>
38                 |  ( struct <identifier> )
39                 |  <signature>
40                 |  ( or <type> ... )  ; union
41                 |  <other-type>
42
43  <basic-type>  ::  * | string | symbol | char | number | boolean | list | pair |
44                    vector | null | eof | undefined | port |
45                    blob | pointer | locative | fixnum | float
46 
47  <case-lambda> ::  ( <lambda> ... )
48|#
49
50#| 
51  <metadata>    ::  <keyword> <metadatum> <metadata>
52
53  <metadatum>   ::  <datum> | <data>
54
55  <datum>       ::  <symbol> | <string> | <number>
56
57  <data>        ::  ( <datums> )
58
59  <datums>      ::  <datum> <datums>
60|#
Note: See TracBrowser for help on using the repository browser.