<br><br><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 &quot;&quot;&quot;&quot;&quot;&quot; (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.  The pragma can include any number of strings, and literal strings can^H^H^Hshould be able to contain any characters.  One can add additional keywords top define additional metadata.  There is already a protocol for accessing pragmas and arguments from methods.  One can have multiple pragmas, etc.  If the pragma is well-designed one can perform the pragma to output the documentation.  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.  There&#39;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>    outputTo: aStream;</div><div>    documentFrom: aSubClass to: aSuperClass</div><div><br></div><div>documentFrom: aSubClass to: aSuperClass</div>
<div>    (Pragma allNamed: self documentationPragma from: aSubClass to: aSuperClass) do:</div><div>        [:p|</div><div>        currentClass := p class.</div><div>        currentSelector := p selector.</div><div>        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>