![](https://secure.gravatar.com/avatar/1948ad16f61fe1d7475efb850078202c.jpg?s=120&d=mm&r=g)
---------- Forwarded message ---------- From: daly <daly@axiom-developer.org> Date: Mon, Mar 28, 2011 at 12:18 PM Subject: Common Lisp replacement for noweb To: thomas.m.hermann@odonata-research.com, pro@common-lisp.net I have moved from using noweb to a pure Common Lisp version of literate programming. (The source is also at: http://literatesoftware.com/tangle.lisp ) The noweb program uses two functions, weave -- takes a file and extracts latex tangle - takes a file and extracts running code The noweb syntax is: <<thechunk>>= your source code @ where your code is defined in the block delimited by the <<...>>= and the @ symbol. To use the delimited chunk somewhere you write the name of the chunk as: <<thechunk>> It would be better to use a valid latex environment. That would mean that there is no need for a "weave" function since the original file is valid latex. \begin{chunk}{thechunk} your code here \end{chunk} \getchunk{thechunk} All that would be left is to make Common Lisp understand the latex environment syntax which is trivial to do. So I wrote a tangle.lisp program. It accepts and processes both the old noweb syntax and the new latex syntax. The idea is simple. Read the file, hash the chunks, and expand them when a getchunk is found. The code is attached. Send questions to daly@literatesoftware.com Tim Daly daly@axiom-developer.org daly@literatesoftware.com