Skip to content

Commit c8482ef

Browse files
committed
adopt sdo style for regexp evaluation rules
1 parent 580a8f2 commit c8482ef

File tree

1 file changed

+112
-163
lines changed

1 file changed

+112
-163
lines changed

spec.html

Lines changed: 112 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -36135,6 +36135,94 @@ <h1>Runtime Semantics: CompileToCharSet</h1>
3613536135
<p>A `-` character can be treated literally or it can denote a range. It is treated literally if it is the first or last character of |ClassRanges|, the beginning or end limit of a range specification, or immediately follows a range specification.</p>
3613636136
</emu-note>
3613736137

36138+
<!-- ClassUnion -->
36139+
<emu-grammar>ClassUnion :: ClassRange ClassUnion?</emu-grammar>
36140+
<emu-alg>
36141+
1. Let _A_ be CompileToCharSet of |ClassRange|.
36142+
1. If |ClassUnion| is present, then
36143+
1. Let _B_ be CompileToCharSet of |ClassUnion|.
36144+
1. Return the union of CharSets _A_ and _B_.
36145+
1. Return _A_.
36146+
</emu-alg>
36147+
<emu-grammar>ClassUnion :: ClassOperand ClassUnion?</emu-grammar>
36148+
<emu-alg>
36149+
1. Let _A_ be CompileToCharSet of |ClassRange|.
36150+
1. If |ClassUnion| is present, then
36151+
1. Let _B_ be CompileToCharSet of |ClassUnion|.
36152+
1. Return the union of CharSets _A_ and _B_.
36153+
1. Return _A_.
36154+
</emu-alg>
36155+
36156+
<!-- ClassIntersection -->
36157+
<emu-grammar>ClassIntersection :: ClassOperand `&amp;&amp;` ClassOperand</emu-grammar>
36158+
<emu-alg>
36159+
1. Let _A_ be CompileToCharSet of the first |ClassOperand|.
36160+
1. Let _B_ be CompileToCharSet of the second |ClassOperand|.
36161+
1. Return the intersection of CharSets _A_ and _B_.
36162+
</emu-alg>
36163+
<emu-grammar>ClassIntersection :: ClassIntersection `&amp;&amp;` ClassOperand</emu-grammar>
36164+
<emu-alg>
36165+
1. Let _A_ be CompileToCharSet of the |ClassIntersection|.
36166+
1. Let _B_ be CompileToCharSet of the |ClassOperand|.
36167+
1. Return the intersection of CharSets _A_ and _B_.
36168+
</emu-alg>
36169+
36170+
<!-- ClassSubtraction -->
36171+
<emu-grammar>ClassSubtraction :: ClassOperand `--` ClassOperand</emu-grammar>
36172+
<emu-alg>
36173+
1. Let _A_ be CompileToCharSet of the first |ClassOperand|.
36174+
1. Let _B_ be CompileToCharSet of the second |ClassOperand|.
36175+
1. Return the subtraction of CharSets _A_ and _B_.
36176+
</emu-alg>
36177+
<emu-grammar>ClassSubtraction :: ClassSubtraction `--` ClassOperand</emu-grammar>
36178+
<emu-alg>
36179+
1. Let _A_ be CompileToCharSet of the |ClassSubtraction|.
36180+
1. Let _B_ be CompileToCharSet of the |ClassOperand|.
36181+
1. Return the subtraction of CharSets _A_ and _B_.
36182+
</emu-alg>
36183+
36184+
<!-- ClassOperand -->
36185+
<emu-grammar>ClassOperand :: ClassCharacter</emu-grammar>
36186+
<emu-alg>
36187+
1. Let _A_ be CompileToCharSet of |ClassCharacter|.
36188+
1. Return ! MaybeSimpleCaseFolding(_A_).
36189+
</emu-alg>
36190+
<emu-grammar>ClassOperand :: ClassStrings</emu-grammar>
36191+
<emu-alg>
36192+
1. Let _A_ be CompileToCharSet of |ClassStrings|.
36193+
1. Return ! MaybeSimpleCaseFolding(_A_).
36194+
</emu-alg>
36195+
<emu-grammar>ClassOperand :: NestedClass</emu-grammar>
36196+
<emu-alg>
36197+
1. Return CompileToCharSet of |NestedClass|.
36198+
</emu-alg>
36199+
36200+
<!-- ClassOperand -->
36201+
<emu-grammar>NestedClass :: `[` ClassRanges `]`</emu-grammar>
36202+
<emu-alg>
36203+
1. Return CompileToCharSet of |ClassRanges|.
36204+
</emu-alg>
36205+
<emu-grammar>NestedClass :: `[` `^` ClassRanges `]`</emu-grammar>
36206+
<emu-alg>
36207+
1. Let _A_ be CompileToCharSet of |ClassRanges|.
36208+
1. Return the CharSet containing all characters not in _A_.
36209+
</emu-alg>
36210+
<emu-grammar>NestedClass :: `\` CharacterClassEscape</emu-grammar>
36211+
<emu-alg>
36212+
1. Return CompileToCharSet of |CharacterClassEscape|.
36213+
</emu-alg>
36214+
36215+
<!-- ClassRange -->
36216+
<emu-grammar>ClassRange :: ClassCharacter `-` ClassCharacter</emu-grammar>
36217+
<emu-alg>
36218+
1. Let _A_ be CompileToCharSet of the first |ClassCharacter|.
36219+
1. Let _B_ be CompileToCharSet of the first |ClassCharacter|.
36220+
1. Return ! MaybeSimpleCaseFolding(! CharacterRange(_A, B_)).
36221+
</emu-alg>
36222+
<emu-note>
36223+
<p>The result will often consist of two or more ranges. When UnicodeSets is *true* and IgnoreCase is *true*, then MaybeSimpleCaseFolding([Ā-č]) will include only the odd-numbered code points of that range.</p>
36224+
</emu-note>
36225+
3613836226
<!-- ClassAtom -->
3613936227
<emu-grammar>ClassAtom :: `-`</emu-grammar>
3614036228
<emu-alg>
@@ -36222,206 +36310,67 @@ <h1>Runtime Semantics: CompileToCharSet</h1>
3622236310
1. Return ! MaybeSimpleCaseFolding(_A_).
3622336311
</emu-alg>
3622436312

36225-
<emu-clause id="sec-classcontents">
36226-
<h1>ClassContents</h1>
36227-
<p>The production <emu-grammar>ClassContents :: ClassUnion</emu-grammar> evaluates as follows:</p>
36228-
<emu-alg>
36229-
1. Return the CharSet that is the result of evaluating |ClassUnion|.
36230-
</emu-alg>
36231-
<p>The production <emu-grammar>ClassContents :: ClassIntersection</emu-grammar> evaluates as follows:</p>
36232-
<emu-alg>
36233-
1. Return the CharSet that is the result of evaluating |ClassIntersection|.
36234-
</emu-alg>
36235-
<p>The production <emu-grammar>ClassContents :: ClassSubtraction</emu-grammar> evaluates as follows:</p>
36236-
<emu-alg>
36237-
1. Return the CharSet that is the result of evaluating |ClassSubtraction|.
36238-
</emu-alg>
36239-
</emu-clause>
36240-
36241-
<emu-clause id="sec-classunion">
36242-
<h1>ClassUnion</h1>
36243-
<p>The production <emu-grammar>ClassUnion :: ClassRange ClassUnion?</emu-grammar> evaluates as follows:</p>
36244-
<emu-alg>
36245-
1. Evaluate |ClassRange| to obtain a CharSet _A_.
36246-
1. If |ClassUnion| is present, then
36247-
1. Evaluate |ClassUnion| to obtain a CharSet _B_.
36248-
1. Return the union of CharSets _A_ and _B_.
36249-
1. Return _A_.
36250-
</emu-alg>
36251-
<p>The production <emu-grammar>ClassUnion :: ClassOperand ClassUnion?</emu-grammar> evaluates as follows:</p>
36252-
<emu-alg>
36253-
1. Evaluate |ClassOperand| to obtain a CharSet _A_.
36254-
1. If |ClassUnion| is present, then
36255-
1. Evaluate |ClassUnion| to obtain a CharSet _B_.
36256-
1. Return the union of CharSets _A_ and _B_.
36257-
1. Return _A_.
36258-
</emu-alg>
36259-
</emu-clause>
36260-
36261-
<emu-clause id="sec-classintersection">
36262-
<h1>ClassIntersection</h1>
36263-
<p>The production <emu-grammar>ClassIntersection :: ClassOperand `&amp;&amp;` [lookahead != `&amp;] ClassOperand</emu-grammar> evaluates as follows:</p>
36264-
<emu-alg>
36265-
1. Evaluate the first |ClassOperand| to obtain a CharSet _A_.
36266-
1. Evaluate the second |ClassOperand| to obtain a CharSet _B_.
36267-
1. Return the intersection of CharSets _A_ and _B_.
36268-
</emu-alg>
36269-
<p>The production <emu-grammar>ClassIntersection :: ClassIntersection `&amp;&amp;` [lookahead != `&amp;] ClassOperand</emu-grammar> evaluates as follows:</p>
36270-
<emu-alg>
36271-
1. Evaluate the |ClassIntersection| to obtain a CharSet _A_.
36272-
1. Evaluate the |ClassOperand| to obtain a CharSet _B_.
36273-
1. Return the intersection of CharSets _A_ and _B_.
36274-
</emu-alg>
36275-
</emu-clause>
36276-
36277-
<emu-clause id="sec-classsubtraction">
36278-
<h1>ClassSubtraction</h1>
36279-
<p>The production <emu-grammar>ClassSubtraction :: ClassOperand `--` ClassOperand</emu-grammar> evaluates as follows:</p>
36280-
<emu-alg>
36281-
1. Evaluate the first |ClassOperand| to obtain a CharSet _A_.
36282-
1. Evaluate the second |ClassOperand| to obtain a CharSet _B_.
36283-
1. Return the subtraction of CharSet _A_ minus CharSet _B_.
36284-
</emu-alg>
36285-
<p>The production <emu-grammar>ClassSubtraction :: ClassSubtraction `--` ClassOperand</emu-grammar> evaluates as follows:</p>
36286-
<emu-alg>
36287-
1. Evaluate the |ClassSubtraction| to obtain a CharSet _A_.
36288-
1. Evaluate the |ClassOperand| to obtain a CharSet _B_.
36289-
1. Return the subtraction of CharSet _A_ minus CharSet _B_.
36290-
</emu-alg>
36291-
</emu-clause>
36292-
36293-
<emu-clause id="sec-classoperand">
36294-
<h1>ClassOperand</h1>
36295-
<p>The production <emu-grammar>ClassOperand :: ClassCharacter</emu-grammar> evaluates as follows:</p>
36296-
<emu-alg>
36297-
1. Evaluate the |ClassCharacter| to obtain a CharSet _A_.
36298-
1. Return ! MaybeSimpleCaseFolding(_A_).
36299-
</emu-alg>
36300-
<p>The production <emu-grammar>ClassOperand :: ClassStrings</emu-grammar> evaluates as follows:</p>
36301-
<emu-alg>
36302-
1. Evaluate the |ClassStrings| to obtain a CharSet _A_.
36303-
1. Return ! MaybeSimpleCaseFolding(_A_).
36304-
</emu-alg>
36305-
<p>The production <emu-grammar>ClassOperand :: NestedClass</emu-grammar> evaluates as follows:</p>
36306-
<emu-alg>
36307-
1. Return the CharSet that is the result of evaluating |NestedClass|.
36308-
</emu-alg>
36309-
</emu-clause>
36310-
36311-
<emu-clause id="sec-nestedclass">
36312-
<h1>NestedClass</h1>
36313-
<p>The production <emu-grammar>NestedClass :: `[` [lookahead != `^`] ClassRanges[+UnicodeMode, +UnicodeSetsMode] `]`</emu-grammar> evaluates as follows:</p>
36314-
<emu-alg>
36315-
1. Return the CharSet that is the result of evaluating |ClassRanges|.
36316-
</emu-alg>
36317-
<p>The production <emu-grammar>NestedClass :: `[` `^` ClassRanges[+UnicodeMode, +UnicodeSetsMode] `]`</emu-grammar> evaluates as follows:</p>
36318-
<emu-alg>
36319-
1. Let _A_ be the CharSet that is the result of evaluating |ClassRanges|.
36320-
1. Return the CharSet containing all characters not in _A_.
36321-
</emu-alg>
36322-
<p>The production <emu-grammar>NestedClass :: `\` CharacterClassEscape</emu-grammar> evaluates as follows:</p>
36323-
<emu-alg>
36324-
1. Return the CharSet that is the result of evaluating |CharacterClassEscape|.
36325-
</emu-alg>
36326-
</emu-clause>
36327-
36328-
<emu-clause id="sec-classrange">
36329-
<h1>ClassRange</h1>
36330-
<p>The production <emu-grammar>ClassRange :: ClassCharacter `-` ClassCharacter</emu-grammar> evaluates as follows:</p>
36331-
<emu-alg>
36332-
1. Evaluate the first |ClassCharacter| to obtain a CharSet _A_.
36333-
1. Evaluate the second |ClassCharacter| to obtain a CharSet _B_.
36334-
1. Return ! MaybeSimpleCaseFolding(! CharacterRange(_A, B_)).
36335-
</emu-alg>
36336-
<emu-note>
36337-
<p>The result will often consist of two or more ranges. When UnicodeSets is *true* and IgnoreCase is *true*, then MaybeSimpleCaseFolding([Ā-č]) will include only the odd-numbered code points of that range.</p>
36338-
</emu-note>
36339-
</emu-clause>
36340-
36341-
<emu-clause id="sec-classcharacter">
36342-
<h1>ClassCharacter</h1>
36343-
<p>The |ClassCharacter| productions evaluate as follows:</p>
36313+
<!-- ClassCharacter -->
3634436314
<emu-grammar>
36345-
ClassCharacter :: [lookahead &notin; ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter
36315+
ClassCharacter :: SourceCharacter but not ClassSyntaxCharacter
3634636316

3634736317
ClassCharacter :: `\` CharacterEscape
3634836318

3634936319
ClassCharacter :: `\` ClassAllowEscaped
36350-
3635136320
</emu-grammar>
3635236321
<emu-alg>
3635336322
1. Let _cv_ be the CharacterValue of this |ClassCharacter|.
3635436323
1. Let _c_ be the character whose character value is _cv_.
3635536324
1. Return the CharSet containing the single character _c_.
3635636325
</emu-alg>
36357-
<p>The production <emu-grammar>ClassCharacter :: `\` `b`</emu-grammar> evaluates as follows:</p>
36326+
<emu-grammar>ClassCharacter :: `\` `b`</emu-grammar>
3635836327
<emu-alg>
3635936328
1. Return the CharSet containing the single character U+0008 (BACKSPACE).
3636036329
</emu-alg>
36361-
</emu-clause>
3636236330

36363-
<emu-clause id="sec-classranges">
36364-
<h1>ClassRanges</h1>
36365-
<p>The production <emu-grammar>ClassRanges :: [empty]</emu-grammar> evaluates as follows:</p>
36331+
<!-- ClassStrings -->
36332+
<emu-grammar>ClassStrings :: `(` ClassString MoreClassStrings? `)`</emu-grammar>
3636636333
<emu-alg>
36367-
1. Return the empty CharSet.
36368-
</emu-alg>
36369-
<p>The production <emu-grammar>ClassRanges :: NonemptyClassRanges</emu-grammar> evaluates as follows:</p>
36370-
<emu-alg>
36371-
1. Return the CharSet that is the result of evaluating |NonemptyClassRanges|.
36372-
</emu-alg>
36373-
<p>The production <emu-grammar>ClassRanges :: ClassContents</emu-grammar> evaluates as follows:</p>
36374-
<emu-alg>
36375-
1. Return the CharSet that is the result of evaluating |ClassContents|.
36376-
</emu-alg>
36377-
</emu-clause>
36378-
36379-
<emu-clause id="sec-classstrings">
36380-
<h1>ClassStrings</h1>
36381-
<p>The production <emu-grammar>ClassStrings :: `(` ClassString MoreClassStrings? `)`</emu-grammar> evaluates as follows:</p>
36382-
<emu-alg>
36383-
1. Evaluate |ClassString| to obtain a string _s_.
36334+
1. Let _s_ be CompileString of |ClassString|.
3638436335
1. Let A be the CharSet that contains the one string _s_.
3638536336
1. If |MoreClassStrings| is present, then
36386-
1. Evaluate |MoreClassStrings| to obtain a CharSet _B_.
36337+
1. Let _B_ be CompileToCharSet of |MoreClassStrings|.
3638736338
1. Return the union of CharSets _A_ and _B_.
3638836339
1. Return _A_.
3638936340
</emu-alg>
36390-
</emu-clause>
3639136341

36392-
<emu-clause id="sec-moreclassstrings">
36393-
<h1>MoreClassStrings</h1>
36394-
<p>The production <emu-grammar>MoreClassStrings :: `|` ClassString MoreClassStrings?</emu-grammar> evaluates as follows:</p>
36342+
<!-- MoreClassStrings -->
36343+
<emu-grammar>MoreClassStrings :: `|` ClassString MoreClassStrings?</emu-grammar>
3639536344
<emu-alg>
36396-
1. Evaluate |ClassString| to obtain a string _s_.
36345+
1. Let _s_ be CompileString of |ClassString|.
3639736346
1. Let _A_ be the CharSet that contains the one string _s_.
3639836347
1. If |MoreClassStrings| is present, then
36399-
1. Evaluate |MoreClassStrings| to obtain a CharSet _B_.
36348+
1. Let _B_ be CompileToCharSet of |MoreClassStrings|.
3640036349
1. Return the union of CharSets _A_ and _B_.
3640136350
1. Return _A_.
3640236351
</emu-alg>
3640336352
</emu-clause>
3640436353

36405-
<emu-clause id="sec-classstring">
36406-
<h1>ClassString</h1>
36407-
<p>The production <emu-grammar>ClassString :: [empty]</emu-grammar> evaluates as follows:</p>
36354+
<emu-clause id="sec-compilestring" type="sdo">
36355+
<h1>Runtime Semantics: CompileString</h1>
36356+
<dl class="header">
36357+
<dt>description</dt>
36358+
<dd>It returns a string.</dd>
36359+
</dl>
36360+
36361+
<emu-grammar>ClassString :: [empty]</emu-grammar>
3640836362
<emu-alg>
3640936363
1. Return the empty String.
3641036364
</emu-alg>
36411-
<p>The production <emu-grammar>ClassString :: NonEmptyClassString</emu-grammar> evaluates as follows:</p>
36365+
<emu-grammar>ClassString :: NonEmptyClassString</emu-grammar>
3641236366
<emu-alg>
36413-
1. Evaluate |NonEmptyClassString| to obtain a string _s_.
36414-
1. Return _s_.
36367+
1. Return CompileString of |NonEmptyClassString|.
3641536368
</emu-alg>
36416-
</emu-clause>
36417-
36418-
<emu-clause id="sec-nonemptyclassstring">
36419-
<h1>NonEmptyClassString</h1>
36420-
<p>The production <emu-grammar>NonEmptyClassString :: ClassCharacter NonEmptyClassString?</emu-grammar> evaluates as follows:</p>
36369+
<emu-grammar>NonEmptyClassString :: ClassCharacter NonEmptyClassString?</emu-grammar>
3642136370
<emu-alg>
36422-
1. Evaluate |ClassCharacter| to obtain the single-character string _s1_.
36371+
1. Let _s1_ be CompileToCharSet of |ClassCharacter|.
3642336372
1. If |NonEmptyClassString| is present, then
36424-
1. Evaluate |NonEmptyClassString| to obtain a string _s2_.
36373+
1. Let _s2_ be CompileString of |NonEmptyClassString|.
3642536374
1. Return the string that is the concatenation of _s1_ with _s2_.
3642636375
1. Return _s1_.
3642736376
</emu-alg>

0 commit comments

Comments
 (0)