% 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.