Skip to content

Commit 13add36

Browse files
committed
[css-shadow-parts-1] Add microsyntaxes for parsing.
1 parent fa6a6b7 commit 13add36

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

css-shadow-parts-1/Overview.bs

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,3 +317,62 @@ The token set of this particular DOMTokenList object are also known as the eleme
317317

318318
Issue(w3c/csswg-drafts#2414): Define this as a superglobal in the DOM spec.
319319
Issue(w3c/csswg-drafts#2414): Define IDL for structured setting and getting of `exportparts`.
320+
321+
Microsyntaxes for parsing {#parsing}
322+
==============================================
323+
324+
Rules for parsing part mappings {#parsing-mapping}
325+
----------------------------------------------
326+
327+
A <span>valid part mapping</span> is a pair of DOMTokens
328+
separated by a U+003A COLON charater,
329+
with no other characters (e.g. no space characters).
330+
The DOMTokens must not contain U+003A COLON or U+002C COMMA characters.
331+
332+
The rules for parsing a part mapping are as follows:
333+
334+
1. Let <var>input</var> be the string being parsed.
335+
336+
1. Let <var>position</var> be a pointer into <var>input</var>, initially pointing at the start of the string.
337+
338+
1. <span>Collect a sequence of code points</span> that are space characters or U+003A COLON characters.
339+
This skips past any leading delimiters.
340+
1. <span>Collect a sequence of code points</span> that are not space characters or U+003A COLON characters,
341+
and let <var>first token</var> be the result.
342+
1. If <var>first token</var> is empty then return error.
343+
1. <span>Collect a sequence of code points</span> that are space characters.
344+
1. If the end of the <var>input</var> has been reached, return the pair <var>first token</var>, <var>first token</var>
345+
1. If character at <var>position</var> is not a U+003A COLON character, return error.
346+
1. Consume the U+003A COLON character.
347+
1. <span>Collect a sequence of code points</span> that are space characters.
348+
1. <span>Collect a sequence of code points</span> that are not space characters or U+003A COLON characters.
349+
and let <var>second token</var> be the result.
350+
1. If <var>second token</var> is empty then return error.
351+
1. Return the pair <var>first token</var>, <var>second token</var>.
352+
353+
Rules for parsing a list of part mappings {#parsing-mapping-list}
354+
----------------------------------------------
355+
356+
A <span>valid list of part mappings</span> is a number of valid part mappings
357+
separated by a U+002C COMMA charater,
358+
with no other characters (e.g. no space characters).
359+
360+
The rules for parsing a list of part mappings are as follow:
361+
362+
1. Let <var>input</var> be the string being parsed.
363+
364+
1. Let <var>position</var> be a pointer into <var>input</var>, initially pointing at the start of the string.
365+
366+
1. Let <var>mappings</var> be an initially empty list of pairs of DOMTokens.
367+
This list will be the result of this algorithm.
368+
369+
1. <span>Collect a sequence of code points</span> that are space characters, U+002C COMMA or U+003A COLON characters.
370+
This skips past any leading delimiters.
371+
372+
1. While <var>position</var> is not past the end of <var>input</var>:
373+
374+
1. <span>Collect a sequence of code points</span> that are not U+002C COMMA characters,
375+
and let <var>unparsed mapping</var> be the result.
376+
1. Let <var>mapping</var> be the result of parsing <var>unparsed mapping</var> using the <span>rules for parsing part mappings</span>.
377+
1. If <var>mapping</var> is an error, continue.
378+
1. Append <var>mapping</var> to <var>mappings</var>.

0 commit comments

Comments
 (0)