The Trunk: Regex-Core-ul.57.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Regex-Core-ul.57.mcz

commits-2
Nicolas Cellier uploaded a new version of Regex-Core to project The Trunk:
http://source.squeak.org/trunk/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!