Christoph Thiede uploaded a new version of Regex-Core to project The Trunk: http://source.squeak.org/trunk/Regex-Core-ct.65.mcz
==================== Summary ====================
Name: Regex-Core-ct.65 Author: ct Time: 23 August 2021, 7:01:07.590768 pm UUID: b4864ec6-fa4b-5e4c-8e42-8bab59cdb77b Ancestors: Regex-Core-mt.61
Fixes a parser bug when encountering a brace quantifier after another quantifier. Regression tests are in #testQuantifierSequence, Regex-Tests-Core-ct.21.
=============== Diff against Regex-Core-mt.61 ===============
Item was changed: ----- Method: RxParser>>atom (in category 'recursive descent') ----- atom "An atom is one of a lot of possibilities, see below."
| atom | (lookahead == nil or: [ lookahead == $| or: [ lookahead == $) or: [ lookahead == $* or: [ lookahead == $+ + or: [ lookahead == $? ] + or: [ lookahead == ${ ]]]]]) - or: [ lookahead == $? ]]]]]) ifTrue: [ ^RxsEpsilon new ]. lookahead == $( ifTrue: [ "<atom> ::= '(' <regex> ')' " self match: $(. atom := self regex. self match: $). ^atom ]. lookahead == $[ ifTrue: [ "<atom> ::= '[' <characterSet> ']' " self match: $[. atom := self characterSet. self match: $]. ^atom ]. lookahead == $: ifTrue: [ "<atom> ::= ':' <messagePredicate> ':' " self match: $:. atom := self messagePredicate. self match: $:. ^atom ]. lookahead == $. ifTrue: [ "any non-whitespace character" self next. ^RxsContextCondition new beAny]. lookahead == $^ ifTrue: [ "beginning of line condition" self next. ^RxsContextCondition new beBeginningOfLine]. lookahead == $$ ifTrue: [ "end of line condition" self next. ^RxsContextCondition new beEndOfLine]. lookahead == $\ ifTrue: [ "<atom> ::= '' <character>" self next ifNil: [ self signalParseError: 'bad quotation' ]. (BackslashConstants includesKey: lookahead) ifTrue: [ atom := RxsCharacter with: (BackslashConstants at: lookahead). self next. + ^ atom]. + self + ifSpecial: lookahead + then: [:node | self next. ^ node]]. - ^atom]. - self ifSpecial: lookahead - then: [:node | self next. ^node]]. "If passed through the above, the following is a regular character." atom := RxsCharacter with: lookahead. self next. ^atom!
packages@lists.squeakfoundation.org