On Friday, May 05, 2006 12:02 PM I wrote: > ... > Unfortunately developers still often use editing tools that > do not properly hide the internal representation of the > literate document so that on input the escape syntax can > sometimes seem quite inconvenient. I think the problem > really lies with these input tools and not with the internal > representation at all. As a minimum it would be nice to > have an "import tool" that coerces the external source code > syntax into the proper internal representation, i.e. something > that automatically adds the required escape codes. Even better > might be to have an editing "mode" (in emacs for example) > which recognizes and appropriately hides this coding for > the sake of convenience. > ...
I forgot to add that there is in fact another tool called 'untangle' in the literate programming toolkit. 'untangle' (perhaps poorly named) is sort of a cross between 'tangle' and 'weave'. Norman has written: "nountangle converts a literate program into an ordinary program by turning interleaved documentation into comments." noweb man page: "'notangle' produces a program with proper spacing and indentation. 'nountangle' does that while also transforming documentation chunks to block comments." http://www.literateprogramming.com/best/anoweb.html "To be able to share programs with colleagues who don't enjoy literate programming, I modified notangle by adding to its pipeline a stage that places each line of documentation in a comment and moves it to the succeeding code chunk. The resulting script, nountangle, transforms a literate program into a traditional commented program, without loss of information and with only a modest penalty in readability." In order to perform 'untangle' in a manner that would be compatible with a given target source language it would be necessary for 'untangle' to generate the comments in a syntax compatible with the target language. This might get pretty complicated if there are multiple target languages in the original literate program document or if it contains multiple top-level root chunks. But this is not really necessary if we are interested only in reading and editability In principle 'untangle' could provide a kind of transparent editing of the source code (including the documentation as presented in the comments). The non-source code document structure could be represented exactly by additional "sentinel lines" added to the comments that relate these comments back to the original literate program document so that in principle 'untangling' is completely reversible (re-tangle?). But as you can imagine implementing this inverse operator to 'untangle' (Note: 'tangle' is not the inverse of 'untangle'!) might not be so easy. However I think, for example that Leo does exactly this sort of thing. Unfortunately 'retangle' is not currently implemented as part of noweb. But there might someday be a "noweb 3"! See: http://www.eecs.harvard.edu/~nr/noweb/todo3.html If 'retangle' was available this would allow relatively transparent editing of the "untangled" version of the document and "re-tangling" it back into literate program format - provided of course that the editor is careful not to corrupt the structure of the embedded sentinel lines. Regards, Bill Page. _______________________________________________ Axiom-developer mailing list Axiom-developer@nongnu.org http://lists.nongnu.org/mailman/listinfo/axiom-developer