[squeak-dev] Squeak 4.6: Compiler-dtl.305.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Jul 21 23:38:11 UTC 2021


David T. Lewis uploaded a new version of Compiler to project Squeak 4.6:
http://source.squeak.org/squeak46/Compiler-dtl.305.mcz

==================== Summary ====================

Name: Compiler-dtl.305
Author: dtl
Time: 21 July 2021, 7:38:08.593 pm
UUID: 58432771-0204-44ce-8992-339c5e9aa325
Ancestors: Compiler-eem.304

Backport Compiler-eem.394 to squeak46. Required for various VMMaker and VM plugins that use _:_:_: syntax convention for C function code generation.

Name: Compiler-eem.394
Author: eem
Time: 18 September 2018, 11:01:49.239937 am
UUID: 446b4a31-2799-41fa-82d4-e503a94fb360
Ancestors: Compiler-bf.393

Fix a bug in Scanner>>xUnderscore that prevented parsing e.g.

method: p _: q _: r
	^'cool'

=============== Diff against Compiler-eem.304 ===============

Item was changed:
  ----- Method: Scanner>>xUnderscore (in category 'multi-character scans') -----
  xUnderscore
+ 	self allowUnderscoreAssignments ifTrue:
+ 		"Figure out if x _foo (no space between _ and foo) should be a selector or assignment."
+ 		[(self allowUnderscoreSelectors
+ 		  and: [#(xLetter xDigit xUnderscore xColon) includes: (self typeTableAt: aheadChar)])
+ 			ifFalse:
+ 				[self step.
+ 				 tokenType := #leftArrow.
+ 				 ^token := #'_']].
+ 	self allowUnderscoreSelectors ifTrue:
+ 		[^self xLetter].
- 	self allowUnderscoreAssignments ifTrue:[ | type |
- 		"Figure out if x _foo (no space between _ and foo) 
- 		should be a selector or assignment"
- 		(((type := self typeTableAt: aheadChar) == #xLetter
- 			or:[type == #xDigit or:[type == #xUnderscore]]) 
- 			and:[self allowUnderscoreSelectors]) ifFalse:[
- 				self step.
- 				tokenType := #leftArrow.
- 				^token := #'_'
- 		].
- 	].
- 	self allowUnderscoreSelectors ifTrue:[^self xLetter].
  	^self xIllegal!



More information about the Squeak-dev mailing list