Argh!  This went to the wrong repository.  Can someone with admin privileges on <a href="http://source.squeak.org">source.squeak.org</a> delete this?  <div><br></div><div>TIA</div><div>Eliot<br><br><div class="gmail_quote">
On Mon, Oct 11, 2010 at 11:37 AM,  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>&gt;</span> wrote:<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 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: 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: #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>
-                                               ifFalse: [ self error ] ].<br>
-                       currentToken = &#39;module:&#39;<br>
-                               ifTrue: [<br>
-                                       self scanPast: #module.<br>
-                                       currentTokenFirst == $&#39;<br>
-                                               ifTrue: [ self parseString ]<br>
-                                               ifFalse: [<br>
-                                                       currentTokenFirst == $#<br>
-                                                               ifTrue: [ self parseSymbol ]<br>
-                                                               ifFalse: [ self error ] ] ] ].<br>
-       self failUnless: currentTokenFirst == $&gt;.<br>
        self scanPast: #primitiveOrExternalCallEnd!<br>
<br>
<br>
</blockquote></div><br></div>