[squeak-dev] The Inbox: Regex-Core-ul.57.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Apr 11 20:05:05 UTC 2020


Levente Uzonyi uploaded a new version of Regex-Core to project The Inbox:
http://source.squeak.org/inbox/Regex-Core-ul.57.mcz

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

Name: Regex-Core-ul.57
Author: ul
Time: 11 April 2020, 9:42:43.405809 pm
UUID: 3cda3ad5-49f2-41f1-ab9d-2f6fc242ae9d
Ancestors: Regex-Core-ct.56

- avoid generating RxmBranch nodes when there's no real branch. e.g. 'abc' asRegex

=============== Diff against Regex-Core-ct.56 ===============

Item was changed:
  ----- Method: RxMatcher>>hookBranchOf:onto: (in category 'private') -----
  hookBranchOf: regexNode onto: endMarker
  	"Private - Recurse down the chain of regexes starting at
  	regexNode, compiling their branches and hooking their tails 
  	to the endMarker node."
  
+ 	^regexNode regex 
+ 		ifNil: [ "Avoid creating a branch without an alternative."
+ 			^(regexNode branch dispatchTo: self)
+ 				pointTailTo: endMarker; 
+ 				yourself ]
+ 		ifNotNil: [ :regex |
+ 			| rest |
+ 			rest := self hookBranchOf: regex onto: endMarker.
+ 			^RxmBranch new
+ 				next: ((regexNode branch dispatchTo: self)
- 	| rest |
- 	rest := regexNode regex ifNotNil: [ :regex |
- 		self hookBranchOf: regex onto: endMarker ].
- 	^RxmBranch new
- 		next: ((regexNode branch dispatchTo: self)
  					pointTailTo: endMarker; 
  					yourself);
+ 				alternative: rest;
+ 				yourself ]
+ !
- 		alternative: rest;
- 		yourself!



More information about the Squeak-dev mailing list