Skip to content

Pitch and Proposal Status #107

Closed
Closed
@milseman

Description

@milseman

Regex type and overview

  • TODO: Draft/PR/Thread

Presents basic Regex type and gives an overview of how everything fits into the overall story

TODO: Should we pull more into this topic, perhaps either typed captures or more run-time creation aspects?

Run-time Regex construction

  • Pitch thread: Regex Syntax
    • Brief: Syntactic superset of PCRE2, Oniguruma, ICU, UTS#18, etc.
  • TODO: Pull in discussion of initializers, extended syntaxes, and AnyRegexOutput into this thread

Covers the "interior" syntax, extended syntaxes, run-time construction of a regex from a string, and details of AnyRegexOutput.

Regex literals

Covers the choice of regex delimiter and integration into the Swift programming language.

TODO: Should we pull more into this topic? E.g. introducing typed captures here?

Regex builder DSL

Covers the result builder approach and basic API.

String processing algorithms

Proposes a slew of Regex-powered algorithms.

Introduces CustomMatchingRegexComponent, which is a monadic-parser style interface for external parsers to be used as components of a regex.

Unicode for String Processing

TODO: Where is this at @natecook1000?

Thread on Swift Forums

Covers three topics:

  • Proposes literal and DSL API for library-defined character classes, Unicode scripts and properties, and custom character classes.
  • Proposes literal and DSL API for options that affect matching behavior.
  • Defines how Unicode scalar-based classes are extended to grapheme clusters in the different semantic and other matching modes.

TODO:

  • Pitch API for character classes/scripts/etc. (by 2/25)
  • Pitch option API (by 2/25)
  • Verify grapheme-break semantics (by 2/28)

Target date: Proposal ready for review by 3/7

⏳ SE-0348: buildPartialBlock for result builders

(Old) Overview

Introduces our general approach: regex literals and result builders together.

(Old) Pitch: Regular expression literals

(Old) Pitch: Strongly typed regex captures

Presents the basic result builder approach of putting type arity and kind of capture in generic type parameter position.

The pitch proposes that the whole match ("capture 0") also be a generic parameter, pending a deeper look into details concerning variadic generics and/or additional result builder API.

TODO: Probably makes sense to slurp this up into one of the other pitches.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions