[Pkg] The Trunk: ShoutCore-eem.22.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Oct 11 18:37:42 UTC 2010
Eliot Miranda uploaded a new version of ShoutCore to project The Trunk:
http://source.squeak.org/trunk/ShoutCore-eem.22.mcz
==================== Summary ====================
Name: ShoutCore-eem.22
Author: eem
Time: 11 October 2010, 11:37:36.994 am
UUID: bf5e644e-451b-4117-bb1a-8d3a087f902d
Ancestors: ShoutCore-eem.16, ShoutCore-nice.21
Merge with ShoutCore-nice.21.
Now that we now that $- is (almost) a normal binary selector character (it also occurs in Number literals), let's do more simplifications.
Laza's isNil ifTrue:... => ifNil: tweaks.
=============== Diff against ShoutCore-nice.21 ===============
Item was changed:
----- Method: SHParserST80>>parseExternalCall (in category 'parse') -----
parseExternalCall
+ [self scanNext.
+ ((Smalltalk at: #ExternalFunction) callingConventionModifierFor: currentToken) notNil]
+ whileTrue.
- self scanNext.
self scanPast: #externalCallType.
currentToken = '*'
ifTrue: [self scanPast: #externalCallTypePointerIndicator].
currentTokenFirst isDigit
ifTrue: [self scanPast: #integer]
ifFalse: [
self failUnless: currentTokenFirst == $'.
self parseString].
self failUnless: currentTokenFirst == $(.
self scanPast: #leftParenthesis.
+ [currentTokenFirst ~= $)]
- [currentTokenFirst ~~ $)]
whileTrue: [
self scanPast: #externalCallType.
currentToken = '*'
ifTrue: [self scanPast: #externalCallTypePointerIndicator]].
self scanPast: #rightParenthesis.
currentToken = 'module:'
ifTrue: [
self scanPast: #module.
self failUnless: currentTokenFirst == $'.
self parseString].
+ currentToken = 'error:'
+ ifTrue: [
+ self scanPast: #module.
+ currentTokenFirst == $'
+ ifTrue: [self parseString]
+ ifFalse: [self scanPast: #patternTempVar]].
self failUnless: currentToken = '>'.
self scanPast: #primitiveOrExternalCallEnd!
Item was changed:
----- Method: SHParserST80>>parsePrimitive (in category 'parse') -----
parsePrimitive
+ | numericPrim yetToSeeErrorCode |
+ yetToSeeErrorCode := true.
self scanNext.
+ (numericPrim := currentTokenFirst isDigit)
- currentTokenFirst isDigit
ifTrue: [self scanPast: #integer]
ifFalse: [
+ self failUnless: currentTokenFirst == $'.
+ self parseString].
+ currentToken = 'error:' ifTrue:
+ [yetToSeeErrorCode := false.
+ self scanPast: #primitive.
+ self isName
+ ifTrue: [self scanPast: #patternTempVar]
+ ifFalse:
+ [self failUnless: currentTokenFirst == $'.
+ self parseString]].
+ numericPrim ifFalse:
+ [currentToken = 'module:' ifTrue:
+ [self scanPast: #module.
+ self failUnless: currentTokenFirst == $'.
+ self parseString]].
+ (yetToSeeErrorCode
+ and: [currentToken = 'error:']) ifTrue:
+ [self scanPast: #primitive.
+ self isName
+ ifTrue: [self scanPast: #patternTempVar]
+ ifFalse:
+ [self failUnless: currentTokenFirst == $'.
+ self parseString]].
+ self failUnless: currentToken = '>'.
- currentTokenFirst == $'
- ifTrue: [ self parseString ]
- ifFalse: [
- currentTokenFirst == $#
- ifTrue: [ self parseSymbol ]
- ifFalse: [ self error ] ].
- currentToken = 'module:'
- ifTrue: [
- self scanPast: #module.
- currentTokenFirst == $'
- ifTrue: [ self parseString ]
- ifFalse: [
- currentTokenFirst == $#
- ifTrue: [ self parseSymbol ]
- ifFalse: [ self error ] ] ] ].
- self failUnless: currentTokenFirst == $>.
self scanPast: #primitiveOrExternalCallEnd!
More information about the Packages
mailing list