<br><br><div class="gmail_quote">On Mon, Oct 11, 2010 at 12:21 PM, Levente Uzonyi <span dir="ltr">&lt;<a href="mailto:leves@elte.hu">leves@elte.hu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Mon, 11 Oct 2010, Eliot Miranda wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Argh!  This went to the wrong repository.  Can someone with admin privileges<br>
on <a href="http://source.squeak.org" target="_blank">source.squeak.org</a> delete this?<br>
</blockquote>
<br></div>
Why? Are these changes private? Fixing the highlighting of the new primitive pragmas is on my todo list, and these changes seem to be fixing them.<br></blockquote><div><br></div><div>No, they&#39;re incomplete.  There is no implementation of <span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">callingConventionModifierFor: yet.  The above methods are on my fork for the threaded/non-blocking FFI and that&#39;s not finished yet.  So the above will break shout display of FFI methods.</span></div>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br></span></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888">
<br>
<br>
Levente</font><div><div></div><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
TIA<br>
Eliot<br>
<br>
On Mon, Oct 11, 2010 at 11:37 AM, &lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt; wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Eliot Miranda uploaded a new version of ShoutCore to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/ShoutCore-eem.22.mcz" target="_blank">http://source.squeak.org/trunk/ShoutCore-eem.22.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: ShoutCore-eem.22<br>
Author: eem<br>
Time: 11 October 2010, 11:37:36.994 am<br>
UUID: bf5e644e-451b-4117-bb1a-8d3a087f902d<br>
Ancestors: ShoutCore-eem.16, ShoutCore-nice.21<br>
<br>
Merge with ShoutCore-nice.21.<br>
Now that we now that $- is (almost) a normal binary selector character (it<br>
also occurs in Number literals), let&#39;s do more simplifications.<br>
<br>
Laza&#39;s isNil ifTrue:... =&gt; ifNil: tweaks.<br>
<br>
=============== Diff against ShoutCore-nice.21 ===============<br>
<br>
Item was changed:<br>
 ----- Method: SHParserST80&gt;&gt;parseExternalCall (in category &#39;parse&#39;) -----<br>
 parseExternalCall<br>
+       [self scanNext.<br>
+       ((Smalltalk at: #ExternalFunction) callingConventionModifierFor:<br>
currentToken) notNil]<br>
+               whileTrue.<br>
-       self scanNext.<br>
       self scanPast: #externalCallType.<br>
       currentToken = &#39;*&#39;<br>
               ifTrue: [self scanPast: #externalCallTypePointerIndicator].<br>
       currentTokenFirst isDigit<br>
               ifTrue: [self scanPast: #integer]<br>
               ifFalse:        [<br>
                       self failUnless: currentTokenFirst == $&#39;.<br>
                       self parseString].<br>
       self failUnless: currentTokenFirst == $(.<br>
       self scanPast: #leftParenthesis.<br>
+       [currentTokenFirst ~= $)]<br>
-       [currentTokenFirst ~~ $)]<br>
               whileTrue: [<br>
                       self scanPast: #externalCallType.<br>
                       currentToken = &#39;*&#39;<br>
                               ifTrue: [self scanPast:<br>
#externalCallTypePointerIndicator]].<br>
       self scanPast: #rightParenthesis.<br>
       currentToken = &#39;module:&#39;<br>
               ifTrue: [<br>
                       self scanPast: #module.<br>
                       self failUnless: currentTokenFirst == $&#39;.<br>
                       self parseString].<br>
+       currentToken = &#39;error:&#39;<br>
+               ifTrue: [<br>
+                       self scanPast: #module.<br>
+                       currentTokenFirst == $&#39;<br>
+                               ifTrue: [self parseString]<br>
+                               ifFalse: [self scanPast: #patternTempVar]].<br>
       self failUnless: currentToken = &#39;&gt;&#39;.<br>
       self scanPast: #primitiveOrExternalCallEnd!<br>
<br>
Item was changed:<br>
 ----- Method: SHParserST80&gt;&gt;parsePrimitive (in category &#39;parse&#39;) -----<br>
 parsePrimitive<br>
+       | numericPrim yetToSeeErrorCode |<br>
+       yetToSeeErrorCode := true.<br>
       self scanNext.<br>
+       (numericPrim := currentTokenFirst isDigit)<br>
-       currentTokenFirst isDigit<br>
               ifTrue: [self scanPast: #integer]<br>
               ifFalse: [<br>
+                       self failUnless: currentTokenFirst == $&#39;.<br>
+                       self parseString].<br>
+       currentToken = &#39;error:&#39; ifTrue:<br>
+               [yetToSeeErrorCode := false.<br>
+                self scanPast: #primitive.<br>
+                self isName<br>
+                       ifTrue: [self scanPast: #patternTempVar]<br>
+                       ifFalse:<br>
+                               [self failUnless: currentTokenFirst == $&#39;.<br>
+                                self parseString]].<br>
+       numericPrim ifFalse:<br>
+               [currentToken = &#39;module:&#39; ifTrue:<br>
+                       [self scanPast: #module.<br>
+                        self failUnless: currentTokenFirst == $&#39;.<br>
+                        self parseString]].<br>
+       (yetToSeeErrorCode<br>
+        and: [currentToken = &#39;error:&#39;]) ifTrue:<br>
+               [self scanPast: #primitive.<br>
+                self isName<br>
+                       ifTrue: [self scanPast: #patternTempVar]<br>
+                       ifFalse:<br>
+                               [self failUnless: currentTokenFirst == $&#39;.<br>
+                                self parseString]].<br>
+       self failUnless: currentToken = &#39;&gt;&#39;.<br>
-                       currentTokenFirst == $&#39;<br>
-                               ifTrue: [ self parseString ]<br>
-                               ifFalse: [<br>
-                                       currentTokenFirst == $#<br>
-                                               ifTrue: [ self parseSymbol<br>
]<br>
-                                               ifFalse: [ self error ] ].<br>
-                       currentToken = &#39;module:&#39;<br>
-                               ifTrue: [<br>
-                                       self scanPast: #module.<br>
-                                       currentTokenFirst == $&#39;<br>
-                                               ifTrue: [ self parseString<br>
]<br>
-                                               ifFalse: [<br>
-                                                       currentTokenFirst<br>
== $#<br>
-                                                               ifTrue: [<br>
self parseSymbol ]<br>
-                                                               ifFalse: [<br>
self error ] ] ] ].<br>
-       self failUnless: currentTokenFirst == $&gt;.<br>
       self scanPast: #primitiveOrExternalCallEnd!<br>
<br>
<br>
<br>
</blockquote>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br>