<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Sorry but I didnt understand &nbsp;much of this. All I really know about pragma's is that you can put<div><br></div><div>&lt;blah: #symbol&gt;</div><div><br></div><div>at the top of some code. Where do you put the documentation in this scheme?</div><div><br></div><div>Keith<br><div><br></div><div><br><blockquote type="cite"><div class="gmail_quote">On Tue, Feb 23, 2010 at 5:57 PM, keith <span dir="ltr">&lt;<a href="mailto:keith_hodges@yahoo.co.uk">keith_hodges@yahoo.co.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"> In Sake we have a special Compiler Hack called SakeCompiler.<br> <br> This uses """""" (6 quotes) to mark the end of the method, from then on you can put any content you like in the method.<br> <br> There are accessors docAt: selector<br></blockquote><div><br></div><div>Using a pragma is a better way. &nbsp;The pragma can include any number of strings, and literal strings can^H^H^Hshould be able to contain any characters. &nbsp;One can add additional keywords top define additional metadata. &nbsp;There is already a protocol for accessing pragmas and arguments from methods. &nbsp;One can have multiple pragmas, etc. &nbsp;If the pragma is well-designed one can perform the pragma to output the documentation. &nbsp;i.e. the pragma message is also understood by a formatter/generator, and so by browsing implementors of the pragma you get immediately to the code that can process said pragma. &nbsp;There's a wrinkle in that the generator needs to be parameterised by the class and selector of the method before it performs the pragma, but that aside, it is quite neat.</div> <div><br></div><div>e.g.</div><div><br></div><div> Documentor new</div><div>&nbsp;&nbsp;&nbsp;&nbsp;outputTo: aStream;</div><div>&nbsp;&nbsp; &nbsp;documentFrom: aSubClass to: aSuperClass</div><div><br></div><div>documentFrom: aSubClass to: aSuperClass</div> <div>&nbsp;&nbsp; &nbsp;(Pragma&nbsp;allNamed: self documentationPragma from: aSubClass to: aSuperClass) do:</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;[:p|</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;currentClass := p class.</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;currentSelector := p selector.</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;p message sendTo: self]</div> <div><br></div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><font color="#888888"> <br> Keith<br> <br> </font></blockquote></div><br> <br></blockquote></div><br></div></body></html>