blob: 970878a664be9a618397d3c45d2a463ce024e6f5 (
plain)
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
|
% Copyright 1991-2018 by Norman Ramsey. All rights reserved.
% See file COPYRIGHT for more information.
% $Id: readme.nw,v 2.19 2008/10/06 01:03:05 nr Exp nr $
Guidebook.
Here's a breakdown of files by function.
columns.nw Used to help accumulate indentations across module
boundaries by measuring the widths of various strings
in columns. Depends on your notion of tabs.
errors.nw Functions that issue error messages.
getline.nw Used to read text a line at a time, no matter how
long lines might be.
main.nw Process options and so on before calling notangle.
markup.nw Encapsulates all the definitions of how things are
labeled in the text: what is a module definition,
what terminates it, and so on.
modtrees.nw Provides a table of modules with insert and lookup
(no delete). Also can apply an arbitrary function
to each module in the table.
modules.nw Defines the abstraction of a module and the operations
on it.
notangle.nw Reads a text on one file and writes a program on another.
Works by reading module definitions, then expanding
the module ``*''.
strsave.nw Return a pointer to a fresh copy of a string.
@ History of features.
2 Feb 89: improve the visual quality of the output by removing the trailing
newline from every module and by tracking indentation.
9 Feb 89: parameterize notangle by the name of the root module, and
make it a command line option. This will help in writing
multiple outputs from a single input.
21 Mar 89: Make markup front end for noweave and notangle.
This breaks passing of options for notangle.
Tough.
Much improved cleanliness of implementation.
?? ??? 90: Track string locations for emitting \#line pragmas
Summer 91: Version 2: second syntax for tools, added noroots.
@ Bugs.
There's no distinction between errors and warnings.
Also see the man page.
|