-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME-files
98 lines (75 loc) · 3.7 KB
/
README-files
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Note: To modify the version number, modify it in configure.ac,
and then follow the instructions in configure.ac.
Key files
=========
Some of the key files are:
## Installed:
Executables:
* unsweeten: A filter that reads in (from stdin) a file of
sweet-expressions, and outputs sweet-expressions. You can use this
in "makefiles" so that you can write files using sweet-expressions.
MIT license.
* sweeten: A filter that reads in s-expressions (Scheme format) from
standard in, and generates sweet-expressions on standard out.
This makes it much easier to transition to sweet-expressions.
MIT license.
* diff-s-sweet: A program that tells you if 2 files are semantically
different. When transitioning to sweet-expressions, run "sweeten" and
then this tool if you want to confirm that everything's okay. MIT license.
* neoteric-guile: Start up guile, but use neoteric-expressions to
interact with it. MIT license.
* sweet-guile: Start up guile, but use sweet-expressions to interact
with it. MIT license.
Common Lisp implementation:
* readable.asd - The ASDF file that simplifies compiling and loading
* basic-curly.lisp - Implementation of basic curly-infix-expressions
* neoteric.lisp - Implementation of neoteric-expressions
* backquote.lisp - Support file for sweet-expressions
* sweet.lisp - Implementation of sweet-expressions
Documentation:
* README: This file.
* solution.md: A description of the notations this project implements.
See the project website for the current version of this.
* scheme-tutorial.md: A tutorial (Scheme-focused).
See the project website for a current version of this.
* common-lisp-tutorial.md: A tutorial (Common-Lisp-focused).
See the project website for a current version of this.
* src/sweeten.sscm: An example of code written using sweet-expressions.
* "man pages"
The spec-* files need to be updated (volunteers welcome). For now, see
"solution.md" for the real specification.
## Not Installed:
* src/kernel.scm: An implementation of the three notation tiers
curly-infix-read, neoteric-read, and sweet-read. Implemented in the
Guile dialect of Scheme; it includes hooks for other dialects. This is
installed into the "readable" site directory of guile. MIT license.
* src/sweeten.sscm: The source of the "sweeten" program. It's written
in Scheme using sweet-expressions, so if you want to see what
sweet-expressions look like, well, here's an example.
* SRFI-105.html - The SRFI defining curly-infix-expressions for Scheme
* SRFI-110.html - The draft SRFI defining sweet-expressions for Scheme
Key directories
===============
src/ - Most source files
bin/ - Generated command (script) files for installation
readable/ - Guile library (generated, don't edit these)
tests/ - Test scripts and test cases
The "src/" directory holds most of the source code.
A "make" will generate files in the top dir, bin/ directory, and the
readable/ directory. The generated files in the top directory are
scripts designed to invoke the locally-built readable library, even if
there's another one installed.
File suffixes are:
.lisp - Common Lisp
.scm - Scheme
.sscm - Sweet-Scheme; Scheme written with sweet-expressions.
You can invoke the readers from your own Guile programs by doing:
(use-modules (readable kernel))
and you can even:
(replace-read sweet-read)
On Guile 2.0 there are occassional strangenesses in the interaction
between the module system and autocompilation - the particular
strangeness is when autocompilation is turned OFF. If you want to
use sweet-guile or neoteric-guile, turn ON autocompilation, as
otherwise use-modules will use the default reader rather than
what you replace.