[swift-evolution] Strings in Swift 4

Chris Lattner sabre at nondot.org
Fri Jan 27 21:55:10 CST 2017


On Jan 27, 2017, at 7:54 PM, Dave Abrahams <dabrahams at apple.com> wrote:
>> 
>> Sure, depending on how the grammar is defined, the compiler will know
>> when multiple matches are possible.  If multiple matches are possible,
>> it is straight-forward to bind them into an array of results instead
>> of a single scalar result.
> 
> Even an array of subranges is inadequate for the general case; you
> actually need to capture the structure of the parse tree somehow.  A
> really simple example would be 
> 
>  case /((let id: \d+): (let name: \w+)?)+/
> 
> If you're just accumulating arrays, you lose the association of id to
> name as soon as someone decides to omit a name.  Designing a system that
> is both super clean for the simple cases and powerful enough to handle
> more complex ones is going to be a fun project.

Yep, that’s what makes it worth doing!

-Chris


More information about the swift-evolution mailing list