---------- Forwarded message ----------<br><div class="gmail_quote">From: <b class="gmail_sendername">daly</b> <span dir="ltr"><<a href="mailto:daly@axiom-developer.org">daly@axiom-developer.org</a>></span><br>Date: Mon, Mar 28, 2011 at 12:18 PM<br>
Subject: Common Lisp replacement for noweb<br>To: <a href="mailto:thomas.m.hermann@odonata-research.com">thomas.m.hermann@odonata-research.com</a>, <a href="mailto:pro@common-lisp.net">pro@common-lisp.net</a><br><br><br>I have moved from using noweb to a pure Common Lisp version<br>

of literate programming. (The source is also at:<br>
<a href="http://literatesoftware.com/tangle.lisp" target="_blank">http://literatesoftware.com/tangle.lisp</a> )<br>
<br>
The noweb program uses two functions,<br>
  weave -- takes a file and extracts latex<br>
  tangle - takes a file and extracts running code<br>
<br>
The noweb syntax is:<br>
  <<thechunk>>=<br>
    your source code<br>
  @<br>
<br>
where your code is defined in the block delimited by the<br>
<<...>>= and the @ symbol. To use the delimited chunk<br>
somewhere you write the name of the chunk as:<br>
  <<thechunk>><br>
<br>
<br>
It would be better to use a valid latex environment.<br>
That would mean that there is no need for a "weave" function<br>
since the original file is valid latex.<br>
<br>
\begin{chunk}{thechunk}<br>
   your code here<br>
\end{chunk}<br>
<br>
\getchunk{thechunk}<br>
<br>
All that would be left is to make Common Lisp understand<br>
the latex environment syntax which is trivial to do. So I<br>
wrote a tangle.lisp program. It accepts and processes both<br>
the old noweb syntax and the new latex syntax.<br>
<br>
The idea is simple. Read the file, hash the chunks, and<br>
expand them when a getchunk is found.<br>
<br>
The code is attached.<br>
<br>
Send questions to <a href="mailto:daly@literatesoftware.com">daly@literatesoftware.com</a><br>
<br>
Tim Daly<br>
<a href="mailto:daly@axiom-developer.org">daly@axiom-developer.org</a><br>
<font color="#888888"><a href="mailto:daly@literatesoftware.com">daly@literatesoftware.com</a><br>
<br>
</font></div><br>