Skip to content

Commit

Permalink
Editorial: Clarify RegExp grammar parameter N → WithNamedCaptureGroups
Browse files Browse the repository at this point in the history
This makes the parameter more easily searchable while clarifying its meaning.

Issue: tc39#2411
  • Loading branch information
mathiasbynens committed Jul 12, 2023
1 parent f3f2e25 commit a7c69b2
Showing 1 changed file with 65 additions and 65 deletions.
130 changes: 65 additions & 65 deletions spec.html
Original file line number Diff line number Diff line change
Expand Up @@ -34950,31 +34950,31 @@ <h1>Patterns</h1>
<p>The RegExp constructor applies the following grammar to the input pattern String. An error occurs if the grammar cannot interpret the String as an expansion of |Pattern|.</p>
<h2>Syntax</h2>
<emu-grammar type="definition">
Pattern[UnicodeMode, UnicodeSetsMode, N] ::
Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N]
Pattern[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] ::
Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups]

Disjunction[UnicodeMode, UnicodeSetsMode, N] ::
Alternative[?UnicodeMode, ?UnicodeSetsMode, ?N]
Alternative[?UnicodeMode, ?UnicodeSetsMode, ?N] `|` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N]
Disjunction[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] ::
Alternative[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups]
Alternative[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `|` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups]

Alternative[UnicodeMode, UnicodeSetsMode, N] ::
Alternative[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] ::
[empty]
Alternative[?UnicodeMode, ?UnicodeSetsMode, ?N] Term[?UnicodeMode, ?UnicodeSetsMode, ?N]
Alternative[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] Term[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups]

Term[UnicodeMode, UnicodeSetsMode, N] ::
Assertion[?UnicodeMode, ?UnicodeSetsMode, ?N]
Atom[?UnicodeMode, ?UnicodeSetsMode, ?N]
Atom[?UnicodeMode, ?UnicodeSetsMode, ?N] Quantifier
Term[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] ::
Assertion[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups]
Atom[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups]
Atom[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] Quantifier

Assertion[UnicodeMode, UnicodeSetsMode, N] ::
Assertion[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] ::
`^`
`$`
`\b`
`\B`
`(?=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)`
`(?!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)`
`(?&lt;=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)`
`(?&lt;!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)`
`(?=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)`
`(?!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)`
`(?&lt;=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)`
`(?&lt;!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)`

Quantifier ::
QuantifierPrefix
Expand All @@ -34988,25 +34988,25 @@ <h2>Syntax</h2>
`{` DecimalDigits[~Sep] `,}`
`{` DecimalDigits[~Sep] `,` DecimalDigits[~Sep] `}`

Atom[UnicodeMode, UnicodeSetsMode, N] ::
Atom[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] ::
PatternCharacter
`.`
`\` AtomEscape[?UnicodeMode, ?N]
`\` AtomEscape[?UnicodeMode, ?WithNamedCaptureGroups]
CharacterClass[?UnicodeMode, ?UnicodeSetsMode]
`(` GroupSpecifier[?UnicodeMode]? Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)`
`(?:` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)`
`(` GroupSpecifier[?UnicodeMode]? Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)`
`(?:` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)`

SyntaxCharacter :: one of
`^` `$` `\` `.` `*` `+` `?` `(` `)` `[` `]` `{` `}` `|`

PatternCharacter ::
SourceCharacter but not SyntaxCharacter

AtomEscape[UnicodeMode, N] ::
AtomEscape[UnicodeMode, WithNamedCaptureGroups] ::
DecimalEscape
CharacterClassEscape[?UnicodeMode]
CharacterEscape[?UnicodeMode]
[+N] `k` GroupName[?UnicodeMode]
[+WithNamedCaptureGroups] `k` GroupName[?UnicodeMode]

CharacterEscape[UnicodeMode] ::
ControlEscape
Expand Down Expand Up @@ -37149,11 +37149,11 @@ <h1>
1. If _v_ is *true* and _u_ is *true*, then
1. Let _parseResult_ be a List containing one or more *SyntaxError* objects.
1. Else if _v_ is *true*, then
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[+UnicodeMode, +UnicodeSetsMode, +N]|).
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[+UnicodeMode, +UnicodeSetsMode, +WithNamedCaptureGroups]|).
1. Else if _u_ is *true*, then
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[+UnicodeMode, ~UnicodeSetsMode, +N]|).
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[+UnicodeMode, ~UnicodeSetsMode, +WithNamedCaptureGroups]|).
1. Else,
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[~UnicodeMode, ~UnicodeSetsMode, +N]|).
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[~UnicodeMode, ~UnicodeSetsMode, +WithNamedCaptureGroups]|).
1. Return _parseResult_.
</emu-alg>
</emu-clause>
Expand Down Expand Up @@ -48713,37 +48713,37 @@ <h1>Regular Expressions Patterns</h1>
<p>This alternative pattern grammar and semantics only changes the syntax and semantics of BMP patterns. The following grammar extensions include productions parameterized with the [UnicodeMode] parameter. However, none of these extensions change the syntax of Unicode patterns recognized when parsing with the [UnicodeMode] parameter present on the goal symbol.</p>
<h2>Syntax</h2>
<emu-grammar type="definition">
Term[UnicodeMode, UnicodeSetsMode, N] ::
[+UnicodeMode] Assertion[+UnicodeMode, ?UnicodeSetsMode, ?N]
[+UnicodeMode] Atom[+UnicodeMode, ?UnicodeSetsMode, ?N] Quantifier
[+UnicodeMode] Atom[+UnicodeMode, ?UnicodeSetsMode, ?N]
[~UnicodeMode] QuantifiableAssertion[?N] Quantifier
[~UnicodeMode] Assertion[~UnicodeMode, ~UnicodeSetsMode, ?N]
[~UnicodeMode] ExtendedAtom[?N] Quantifier
[~UnicodeMode] ExtendedAtom[?N]

Assertion[UnicodeMode, UnicodeSetsMode, N] ::
Term[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] ::
[+UnicodeMode] Assertion[+UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups]
[+UnicodeMode] Atom[+UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] Quantifier
[+UnicodeMode] Atom[+UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups]
[~UnicodeMode] QuantifiableAssertion[?WithNamedCaptureGroups] Quantifier
[~UnicodeMode] Assertion[~UnicodeMode, ~UnicodeSetsMode, ?WithNamedCaptureGroups]
[~UnicodeMode] ExtendedAtom[?WithNamedCaptureGroups] Quantifier
[~UnicodeMode] ExtendedAtom[?WithNamedCaptureGroups]

Assertion[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] ::
`^`
`$`
`\b`
`\B`
[+UnicodeMode] `(?=` Disjunction[+UnicodeMode, ?UnicodeSetsMode, ?N] `)`
[+UnicodeMode] `(?!` Disjunction[+UnicodeMode, ?UnicodeSetsMode, ?N] `)`
[~UnicodeMode] QuantifiableAssertion[?N]
`(?&lt;=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)`
`(?&lt;!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)`
[+UnicodeMode] `(?=` Disjunction[+UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)`
[+UnicodeMode] `(?!` Disjunction[+UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)`
[~UnicodeMode] QuantifiableAssertion[?WithNamedCaptureGroups]
`(?&lt;=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)`
`(?&lt;!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)`

QuantifiableAssertion[N] ::
`(?=` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?N] `)`
`(?!` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?N] `)`
QuantifiableAssertion[WithNamedCaptureGroups] ::
`(?=` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?WithNamedCaptureGroups] `)`
`(?!` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?WithNamedCaptureGroups] `)`

ExtendedAtom[N] ::
ExtendedAtom[WithNamedCaptureGroups] ::
`.`
`\` AtomEscape[~UnicodeMode, ?N]
`\` AtomEscape[~UnicodeMode, ?WithNamedCaptureGroups]
`\` [lookahead == `c`]
CharacterClass[~UnicodeMode, ~UnicodeSetsMode]
`(` GroupSpecifier[~UnicodeMode]? Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?N] `)`
`(?:` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?N] `)`
`(` GroupSpecifier[~UnicodeMode]? Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?WithNamedCaptureGroups] `)`
`(?:` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?WithNamedCaptureGroups] `)`
InvalidBracedQuantifier
ExtendedPatternCharacter

Expand All @@ -48755,42 +48755,42 @@ <h2>Syntax</h2>
ExtendedPatternCharacter ::
SourceCharacter but not one of `^` `$` `\` `.` `*` `+` `?` `(` `)` `[` `|`

AtomEscape[UnicodeMode, N] ::
AtomEscape[UnicodeMode, WithNamedCaptureGroups] ::
[+UnicodeMode] DecimalEscape
[~UnicodeMode] DecimalEscape [> but only if the CapturingGroupNumber of |DecimalEscape| is &le; CountLeftCapturingParensWithin(the |Pattern| containing |DecimalEscape|)]
CharacterClassEscape[?UnicodeMode]
CharacterEscape[?UnicodeMode, ?N]
[+N] `k` GroupName[?UnicodeMode]
CharacterEscape[?UnicodeMode, ?WithNamedCaptureGroups]
[+WithNamedCaptureGroups] `k` GroupName[?UnicodeMode]

CharacterEscape[UnicodeMode, N] ::
CharacterEscape[UnicodeMode, WithNamedCaptureGroups] ::
ControlEscape
`c` AsciiLetter
`0` [lookahead &notin; DecimalDigit]
HexEscapeSequence
RegExpUnicodeEscapeSequence[?UnicodeMode]
[~UnicodeMode] LegacyOctalEscapeSequence
IdentityEscape[?UnicodeMode, ?N]
IdentityEscape[?UnicodeMode, ?WithNamedCaptureGroups]

IdentityEscape[UnicodeMode, N] ::
IdentityEscape[UnicodeMode, WithNamedCaptureGroups] ::
[+UnicodeMode] SyntaxCharacter
[+UnicodeMode] `/`
[~UnicodeMode] SourceCharacterIdentityEscape[?N]
[~UnicodeMode] SourceCharacterIdentityEscape[?WithNamedCaptureGroups]

SourceCharacterIdentityEscape[N] ::
[~N] SourceCharacter but not `c`
[+N] SourceCharacter but not one of `c` or `k`
SourceCharacterIdentityEscape[WithNamedCaptureGroups] ::
[~WithNamedCaptureGroups] SourceCharacter but not `c`
[+WithNamedCaptureGroups] SourceCharacter but not one of `c` or `k`

ClassAtomNoDash[UnicodeMode, N] ::
ClassAtomNoDash[UnicodeMode, WithNamedCaptureGroups] ::
SourceCharacter but not one of `\` or `]` or `-`
`\` ClassEscape[?UnicodeMode, ?N]
`\` ClassEscape[?UnicodeMode, ?WithNamedCaptureGroups]
`\` [lookahead == `c`]

ClassEscape[UnicodeMode, N] ::
ClassEscape[UnicodeMode, WithNamedCaptureGroups] ::
`b`
[+UnicodeMode] `-`
[~UnicodeMode] `c` ClassControlLetter
CharacterClassEscape[?UnicodeMode]
CharacterEscape[?UnicodeMode, ?N]
CharacterEscape[?UnicodeMode, ?WithNamedCaptureGroups]

ClassControlLetter ::
DecimalDigit
Expand Down Expand Up @@ -48961,13 +48961,13 @@ <h1>Static Semantics: ParsePattern ( _patternText_, _u_, _v_ )</h1>
1. If _v_ is *true* and _u_ is *true*, then
1. Let _parseResult_ be a List containing one or more *SyntaxError* objects.
1. Else if _v_ is *true*, then
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[+UnicodeMode, +UnicodeSetsMode, +N]|).
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[+UnicodeMode, +UnicodeSetsMode, +WithNamedCaptureGroups]|).
1. Else if _u_ is *true*, then
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[+UnicodeMode, ~UnicodeSetsMode, +N]|).
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[+UnicodeMode, ~UnicodeSetsMode, +WithNamedCaptureGroups]|).
1. Else,
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[~UnicodeMode, ~UnicodeSetsMode, ~N]|).
1. Let _parseResult_ be ParseText(_patternText_, |Pattern[~UnicodeMode, ~UnicodeSetsMode, ~WithNamedCaptureGroups]|).
1. If _parseResult_ is a Parse Node and _parseResult_ contains a |GroupName|, then
1. Set _parseResult_ to ParseText(_patternText_, |Pattern[~UnicodeMode, ~UnicodeSetsMode, +N]|).
1. Set _parseResult_ to ParseText(_patternText_, |Pattern[~UnicodeMode, ~UnicodeSetsMode, +WithNamedCaptureGroups]|).
1. Return _parseResult_.
</emu-alg>
</emu-annex>
Expand Down

0 comments on commit a7c69b2

Please sign in to comment.