1use crate::construct;
4use crate::message;
5use crate::tokenizer::Tokenizer;
6
7#[derive(Clone, Debug, PartialEq)]
9pub enum State {
10 Error(message::Message),
14 Next(Name),
16 Retry(Name),
18 Ok,
20 Nok,
22}
23
24impl State {
25 pub fn to_result(&self) -> Result<(), message::Message> {
32 match self {
33 State::Nok | State::Next(_) | State::Retry(_) => {
34 unreachable!("cannot turn intermediate state into result")
35 }
36 State::Ok => Ok(()),
37 State::Error(x) => Err(x.clone()),
38 }
39 }
40}
41
42#[derive(Clone, Copy, Debug, Eq, PartialEq)]
44#[allow(clippy::enum_variant_names)]
45pub enum Name {
46 AttentionStart,
47 AttentionInside,
48
49 AutolinkStart,
50 AutolinkOpen,
51 AutolinkSchemeOrEmailAtext,
52 AutolinkSchemeInsideOrEmailAtext,
53 AutolinkUrlInside,
54 AutolinkEmailAtSignOrDot,
55 AutolinkEmailAtext,
56 AutolinkEmailValue,
57 AutolinkEmailLabel,
58
59 BlankLineStart,
60 BlankLineAfter,
61
62 BlockQuoteStart,
63 BlockQuoteContStart,
64 BlockQuoteContBefore,
65 BlockQuoteContAfter,
66
67 BomStart,
68 BomInside,
69
70 CharacterEscapeStart,
71 CharacterEscapeInside,
72
73 CharacterReferenceStart,
74 CharacterReferenceOpen,
75 CharacterReferenceNumeric,
76 CharacterReferenceValue,
77
78 CodeIndentedStart,
79 CodeIndentedAtBreak,
80 CodeIndentedAfter,
81 CodeIndentedFurtherStart,
82 CodeIndentedInside,
83 CodeIndentedFurtherBegin,
84 CodeIndentedFurtherAfter,
85
86 ContentChunkStart,
87 ContentChunkInside,
88 ContentDefinitionBefore,
89 ContentDefinitionAfter,
90
91 DataStart,
92 DataInside,
93 DataAtBreak,
94
95 DefinitionStart,
96 DefinitionBefore,
97 DefinitionLabelAfter,
98 DefinitionLabelNok,
99 DefinitionMarkerAfter,
100 DefinitionDestinationBefore,
101 DefinitionDestinationAfter,
102 DefinitionDestinationMissing,
103 DefinitionTitleBefore,
104 DefinitionAfter,
105 DefinitionAfterWhitespace,
106 DefinitionTitleBeforeMarker,
107 DefinitionTitleAfter,
108 DefinitionTitleAfterOptionalWhitespace,
109
110 DestinationStart,
111 DestinationEnclosedBefore,
112 DestinationEnclosed,
113 DestinationEnclosedEscape,
114 DestinationRaw,
115 DestinationRawEscape,
116
117 DocumentStart,
118 DocumentBeforeFrontmatter,
119 DocumentContainerExistingBefore,
120 DocumentContainerExistingAfter,
121 DocumentContainerNewBefore,
122 DocumentContainerNewBeforeNotBlockQuote,
123 DocumentContainerNewBeforeNotList,
124 DocumentContainerNewBeforeNotGfmFootnoteDefinition,
125 DocumentContainerNewAfter,
126 DocumentContainersAfter,
127 DocumentFlowInside,
128 DocumentFlowEnd,
129
130 FlowStart,
131 FlowBeforeGfmTable,
132 FlowBeforeCodeIndented,
133 FlowBeforeRaw,
134 FlowBeforeHtml,
135 FlowBeforeMdxExpression,
136 FlowBeforeMdxJsx,
137 FlowBeforeHeadingAtx,
138 FlowBeforeHeadingSetext,
139 FlowBeforeThematicBreak,
140 FlowAfter,
141 FlowBlankLineBefore,
142 FlowBlankLineAfter,
143 FlowBeforeContent,
144
145 FrontmatterStart,
146 FrontmatterOpenSequence,
147 FrontmatterOpenAfter,
148 FrontmatterAfter,
149 FrontmatterContentStart,
150 FrontmatterContentInside,
151 FrontmatterContentEnd,
152 FrontmatterCloseStart,
153 FrontmatterCloseSequence,
154 FrontmatterCloseAfter,
155
156 GfmAutolinkLiteralProtocolStart,
157 GfmAutolinkLiteralProtocolAfter,
158 GfmAutolinkLiteralProtocolPrefixInside,
159 GfmAutolinkLiteralProtocolSlashesInside,
160
161 GfmAutolinkLiteralWwwStart,
162 GfmAutolinkLiteralWwwAfter,
163 GfmAutolinkLiteralWwwPrefixInside,
164 GfmAutolinkLiteralWwwPrefixAfter,
165
166 GfmAutolinkLiteralDomainInside,
167 GfmAutolinkLiteralDomainAtPunctuation,
168 GfmAutolinkLiteralDomainAfter,
169
170 GfmAutolinkLiteralPathInside,
171 GfmAutolinkLiteralPathAtPunctuation,
172 GfmAutolinkLiteralPathAfter,
173
174 GfmAutolinkLiteralTrail,
175 GfmAutolinkLiteralTrailCharRefInside,
176 GfmAutolinkLiteralTrailCharRefStart,
177 GfmAutolinkLiteralTrailBracketAfter,
178
179 GfmFootnoteDefinitionStart,
180 GfmFootnoteDefinitionLabelBefore,
181 GfmFootnoteDefinitionLabelAtMarker,
182 GfmFootnoteDefinitionLabelInside,
183 GfmFootnoteDefinitionLabelEscape,
184 GfmFootnoteDefinitionLabelAfter,
185 GfmFootnoteDefinitionWhitespaceAfter,
186 GfmFootnoteDefinitionContStart,
187 GfmFootnoteDefinitionContBlank,
188 GfmFootnoteDefinitionContFilled,
189
190 GfmLabelStartFootnoteStart,
191 GfmLabelStartFootnoteOpen,
192
193 GfmTaskListItemCheckStart,
194 GfmTaskListItemCheckInside,
195 GfmTaskListItemCheckClose,
196 GfmTaskListItemCheckAfter,
197 GfmTaskListItemCheckAfterSpaceOrTab,
198
199 GfmTableStart,
200 GfmTableHeadRowBefore,
201 GfmTableHeadRowStart,
202 GfmTableHeadRowBreak,
203 GfmTableHeadRowData,
204 GfmTableHeadRowEscape,
205 GfmTableHeadDelimiterStart,
206 GfmTableHeadDelimiterBefore,
207 GfmTableHeadDelimiterCellBefore,
208 GfmTableHeadDelimiterValueBefore,
209 GfmTableHeadDelimiterLeftAlignmentAfter,
210 GfmTableHeadDelimiterFiller,
211 GfmTableHeadDelimiterRightAlignmentAfter,
212 GfmTableHeadDelimiterCellAfter,
213 GfmTableHeadDelimiterNok,
214
215 GfmTableBodyRowStart,
216 GfmTableBodyRowBreak,
217 GfmTableBodyRowData,
218 GfmTableBodyRowEscape,
219
220 HardBreakEscapeStart,
221 HardBreakEscapeAfter,
222
223 HeadingAtxStart,
224 HeadingAtxBefore,
225 HeadingAtxSequenceOpen,
226 HeadingAtxAtBreak,
227 HeadingAtxSequenceFurther,
228 HeadingAtxData,
229
230 HeadingSetextStart,
231 HeadingSetextBefore,
232 HeadingSetextInside,
233 HeadingSetextAfter,
234
235 HtmlFlowStart,
236 HtmlFlowBefore,
237 HtmlFlowOpen,
238 HtmlFlowDeclarationOpen,
239 HtmlFlowCommentOpenInside,
240 HtmlFlowCdataOpenInside,
241 HtmlFlowTagCloseStart,
242 HtmlFlowTagName,
243 HtmlFlowBasicSelfClosing,
244 HtmlFlowCompleteClosingTagAfter,
245 HtmlFlowCompleteEnd,
246 HtmlFlowCompleteAttributeNameBefore,
247 HtmlFlowCompleteAttributeName,
248 HtmlFlowCompleteAttributeNameAfter,
249 HtmlFlowCompleteAttributeValueBefore,
250 HtmlFlowCompleteAttributeValueQuoted,
251 HtmlFlowCompleteAttributeValueQuotedAfter,
252 HtmlFlowCompleteAttributeValueUnquoted,
253 HtmlFlowCompleteAfter,
254 HtmlFlowBlankLineBefore,
255 HtmlFlowContinuation,
256 HtmlFlowContinuationDeclarationInside,
257 HtmlFlowContinuationAfter,
258 HtmlFlowContinuationStart,
259 HtmlFlowContinuationBefore,
260 HtmlFlowContinuationCommentInside,
261 HtmlFlowContinuationRawTagOpen,
262 HtmlFlowContinuationRawEndTag,
263 HtmlFlowContinuationClose,
264 HtmlFlowContinuationCdataInside,
265 HtmlFlowContinuationStartNonLazy,
266
267 HtmlTextStart,
268 HtmlTextOpen,
269 HtmlTextDeclarationOpen,
270 HtmlTextTagCloseStart,
271 HtmlTextTagClose,
272 HtmlTextTagCloseBetween,
273 HtmlTextTagOpen,
274 HtmlTextTagOpenBetween,
275 HtmlTextTagOpenAttributeName,
276 HtmlTextTagOpenAttributeNameAfter,
277 HtmlTextTagOpenAttributeValueBefore,
278 HtmlTextTagOpenAttributeValueQuoted,
279 HtmlTextTagOpenAttributeValueQuotedAfter,
280 HtmlTextTagOpenAttributeValueUnquoted,
281 HtmlTextCdata,
282 HtmlTextCdataOpenInside,
283 HtmlTextCdataClose,
284 HtmlTextCdataEnd,
285 HtmlTextCommentOpenInside,
286 HtmlTextComment,
287 HtmlTextCommentClose,
288 HtmlTextCommentEnd,
289 HtmlTextDeclaration,
290 HtmlTextEnd,
291 HtmlTextInstruction,
292 HtmlTextInstructionClose,
293 HtmlTextLineEndingBefore,
294 HtmlTextLineEndingAfter,
295 HtmlTextLineEndingAfterPrefix,
296
297 LabelStart,
298 LabelAtBreak,
299 LabelEolAfter,
300 LabelEscape,
301 LabelInside,
302 LabelNok,
303
304 LabelEndStart,
305 LabelEndAfter,
306 LabelEndResourceStart,
307 LabelEndResourceBefore,
308 LabelEndResourceOpen,
309 LabelEndResourceDestinationAfter,
310 LabelEndResourceDestinationMissing,
311 LabelEndResourceBetween,
312 LabelEndResourceTitleAfter,
313 LabelEndResourceEnd,
314 LabelEndOk,
315 LabelEndNok,
316 LabelEndReferenceFull,
317 LabelEndReferenceFullAfter,
318 LabelEndReferenceFullMissing,
319 LabelEndReferenceNotFull,
320 LabelEndReferenceCollapsed,
321 LabelEndReferenceCollapsedOpen,
322
323 LabelStartImageStart,
324 LabelStartImageOpen,
325 LabelStartImageAfter,
326
327 LabelStartLinkStart,
328
329 ListItemStart,
330 ListItemBefore,
331 ListItemBeforeOrdered,
332 ListItemBeforeUnordered,
333 ListItemValue,
334 ListItemMarker,
335 ListItemMarkerAfter,
336 ListItemAfter,
337 ListItemMarkerAfterFilled,
338 ListItemWhitespace,
339 ListItemPrefixOther,
340 ListItemWhitespaceAfter,
341 ListItemContStart,
342 ListItemContBlank,
343 ListItemContFilled,
344
345 MdxEsmStart,
346 MdxEsmWord,
347 MdxEsmInside,
348 MdxEsmLineStart,
349 MdxEsmBlankLineBefore,
350 MdxEsmContinuationStart,
351 MdxEsmAtEnd,
352
353 MdxExpressionTextStart,
354 MdxExpressionTextAfter,
355
356 MdxExpressionFlowStart,
357 MdxExpressionFlowBefore,
358 MdxExpressionFlowAfter,
359 MdxExpressionFlowEnd,
360
361 MdxExpressionStart,
362 MdxExpressionBefore,
363 MdxExpressionPrefix,
364 MdxExpressionInside,
365 MdxExpressionEolAfter,
366
367 MdxJsxFlowStart,
368 MdxJsxFlowBefore,
369 MdxJsxFlowAfter,
370 MdxJsxFlowEnd,
371 MdxJsxFlowNok,
372 MdxJsxTextStart,
373 MdxJsxTextAfter,
374 MdxJsxTextNok,
375 MdxJsxEsWhitespaceStart,
376 MdxJsxEsWhitespaceInside,
377 MdxJsxEsWhitespaceEolAfter,
378 MdxJsxStart,
379 MdxJsxStartAfter,
380 MdxJsxNameBefore,
381 MdxJsxClosingTagNameBefore,
382 MdxJsxTagEnd,
383 MdxJsxPrimaryName,
384 MdxJsxPrimaryNameAfter,
385 MdxJsxMemberNameBefore,
386 MdxJsxMemberName,
387 MdxJsxMemberNameAfter,
388 MdxJsxLocalNameBefore,
389 MdxJsxLocalName,
390 MdxJsxLocalNameAfter,
391 MdxJsxAttributeBefore,
392 MdxJsxSelfClosing,
393 MdxJsxAttributeExpressionAfter,
394 MdxJsxAttributePrimaryName,
395 MdxJsxAttributePrimaryNameAfter,
396 MdxJsxAttributeLocalNameBefore,
397 MdxJsxAttributeLocalName,
398 MdxJsxAttributeLocalNameAfter,
399 MdxJsxAttributeValueBefore,
400 MdxJsxAttributeValueQuotedStart,
401 MdxJsxAttributeValueQuoted,
402 MdxJsxAttributeValueExpressionAfter,
403
404 NonLazyContinuationStart,
405 NonLazyContinuationAfter,
406
407 ParagraphStart,
408 ParagraphLineStart,
409 ParagraphInside,
410
411 RawFlowStart,
412 RawFlowBeforeSequenceOpen,
413 RawFlowSequenceOpen,
414 RawFlowInfoBefore,
415 RawFlowInfo,
416 RawFlowMetaBefore,
417 RawFlowMeta,
418 RawFlowAtNonLazyBreak,
419 RawFlowCloseStart,
420 RawFlowBeforeSequenceClose,
421 RawFlowSequenceClose,
422 RawFlowAfterSequenceClose,
423 RawFlowContentBefore,
424 RawFlowContentStart,
425 RawFlowBeforeContentChunk,
426 RawFlowContentChunk,
427 RawFlowAfter,
428
429 RawTextStart,
430 RawTextSequenceOpen,
431 RawTextBetween,
432 RawTextData,
433 RawTextSequenceClose,
434
435 SpaceOrTabStart,
436 SpaceOrTabInside,
437 SpaceOrTabAfter,
438
439 SpaceOrTabEolStart,
440 SpaceOrTabEolAfterFirst,
441 SpaceOrTabEolAfterEol,
442 SpaceOrTabEolAtEol,
443 SpaceOrTabEolAfterMore,
444
445 StringStart,
446 StringBefore,
447 StringBeforeData,
448
449 TextStart,
450 TextBefore,
451 TextBeforeHtml,
452 TextBeforeMdxJsx,
453 TextBeforeHardBreakEscape,
454 TextBeforeLabelStartLink,
455 TextBeforeData,
456
457 ThematicBreakStart,
458 ThematicBreakBefore,
459 ThematicBreakSequence,
460 ThematicBreakAtBreak,
461
462 TitleStart,
463 TitleBegin,
464 TitleAfterEol,
465 TitleAtBreak,
466 TitleEscape,
467 TitleInside,
468 TitleNok,
469}
470
471#[allow(clippy::too_many_lines)]
472pub fn call(tokenizer: &mut Tokenizer, name: Name) -> State {
474 let func = match name {
475 Name::AttentionStart => construct::attention::start,
476 Name::AttentionInside => construct::attention::inside,
477
478 Name::AutolinkStart => construct::autolink::start,
479 Name::AutolinkOpen => construct::autolink::open,
480 Name::AutolinkSchemeOrEmailAtext => construct::autolink::scheme_or_email_atext,
481 Name::AutolinkSchemeInsideOrEmailAtext => construct::autolink::scheme_inside_or_email_atext,
482 Name::AutolinkUrlInside => construct::autolink::url_inside,
483 Name::AutolinkEmailAtSignOrDot => construct::autolink::email_at_sign_or_dot,
484 Name::AutolinkEmailAtext => construct::autolink::email_atext,
485 Name::AutolinkEmailValue => construct::autolink::email_value,
486 Name::AutolinkEmailLabel => construct::autolink::email_label,
487
488 Name::BlankLineStart => construct::blank_line::start,
489 Name::BlankLineAfter => construct::blank_line::after,
490
491 Name::BlockQuoteStart => construct::block_quote::start,
492 Name::BlockQuoteContStart => construct::block_quote::cont_start,
493 Name::BlockQuoteContBefore => construct::block_quote::cont_before,
494 Name::BlockQuoteContAfter => construct::block_quote::cont_after,
495
496 Name::BomStart => construct::partial_bom::start,
497 Name::BomInside => construct::partial_bom::inside,
498
499 Name::CharacterEscapeStart => construct::character_escape::start,
500 Name::CharacterEscapeInside => construct::character_escape::inside,
501
502 Name::CharacterReferenceStart => construct::character_reference::start,
503 Name::CharacterReferenceOpen => construct::character_reference::open,
504 Name::CharacterReferenceNumeric => construct::character_reference::numeric,
505 Name::CharacterReferenceValue => construct::character_reference::value,
506
507 Name::CodeIndentedStart => construct::code_indented::start,
508 Name::CodeIndentedAtBreak => construct::code_indented::at_break,
509 Name::CodeIndentedAfter => construct::code_indented::after,
510 Name::CodeIndentedFurtherStart => construct::code_indented::further_start,
511 Name::CodeIndentedInside => construct::code_indented::inside,
512 Name::CodeIndentedFurtherBegin => construct::code_indented::further_begin,
513 Name::CodeIndentedFurtherAfter => construct::code_indented::further_after,
514
515 Name::ContentChunkStart => construct::content::chunk_start,
516 Name::ContentChunkInside => construct::content::chunk_inside,
517 Name::ContentDefinitionBefore => construct::content::definition_before,
518 Name::ContentDefinitionAfter => construct::content::definition_after,
519
520 Name::DataStart => construct::partial_data::start,
521 Name::DataInside => construct::partial_data::inside,
522 Name::DataAtBreak => construct::partial_data::at_break,
523
524 Name::DefinitionStart => construct::definition::start,
525 Name::DefinitionBefore => construct::definition::before,
526 Name::DefinitionLabelAfter => construct::definition::label_after,
527 Name::DefinitionLabelNok => construct::definition::label_nok,
528 Name::DefinitionMarkerAfter => construct::definition::marker_after,
529 Name::DefinitionDestinationBefore => construct::definition::destination_before,
530 Name::DefinitionDestinationAfter => construct::definition::destination_after,
531 Name::DefinitionDestinationMissing => construct::definition::destination_missing,
532 Name::DefinitionTitleBefore => construct::definition::title_before,
533 Name::DefinitionAfter => construct::definition::after,
534 Name::DefinitionAfterWhitespace => construct::definition::after_whitespace,
535 Name::DefinitionTitleBeforeMarker => construct::definition::title_before_marker,
536 Name::DefinitionTitleAfter => construct::definition::title_after,
537 Name::DefinitionTitleAfterOptionalWhitespace => {
538 construct::definition::title_after_optional_whitespace
539 }
540
541 Name::DestinationStart => construct::partial_destination::start,
542 Name::DestinationEnclosedBefore => construct::partial_destination::enclosed_before,
543 Name::DestinationEnclosed => construct::partial_destination::enclosed,
544 Name::DestinationEnclosedEscape => construct::partial_destination::enclosed_escape,
545 Name::DestinationRaw => construct::partial_destination::raw,
546 Name::DestinationRawEscape => construct::partial_destination::raw_escape,
547
548 Name::DocumentStart => construct::document::start,
549 Name::DocumentBeforeFrontmatter => construct::document::before_frontmatter,
550 Name::DocumentContainerExistingBefore => construct::document::container_existing_before,
551 Name::DocumentContainerExistingAfter => construct::document::container_existing_after,
552 Name::DocumentContainerNewBefore => construct::document::container_new_before,
553 Name::DocumentContainerNewBeforeNotBlockQuote => {
554 construct::document::container_new_before_not_block_quote
555 }
556 Name::DocumentContainerNewBeforeNotList => {
557 construct::document::container_new_before_not_list
558 }
559 Name::DocumentContainerNewBeforeNotGfmFootnoteDefinition => {
560 construct::document::container_new_before_not_footnote_definition
561 }
562 Name::DocumentContainerNewAfter => construct::document::container_new_after,
563 Name::DocumentContainersAfter => construct::document::containers_after,
564 Name::DocumentFlowEnd => construct::document::flow_end,
565 Name::DocumentFlowInside => construct::document::flow_inside,
566
567 Name::FlowStart => construct::flow::start,
568 Name::FlowBeforeGfmTable => construct::flow::before_gfm_table,
569 Name::FlowBeforeCodeIndented => construct::flow::before_code_indented,
570 Name::FlowBeforeRaw => construct::flow::before_raw,
571 Name::FlowBeforeHtml => construct::flow::before_html,
572 Name::FlowBeforeMdxExpression => construct::flow::before_mdx_expression,
573 Name::FlowBeforeMdxJsx => construct::flow::before_mdx_jsx,
574 Name::FlowBeforeHeadingAtx => construct::flow::before_heading_atx,
575 Name::FlowBeforeHeadingSetext => construct::flow::before_heading_setext,
576 Name::FlowBeforeThematicBreak => construct::flow::before_thematic_break,
577 Name::FlowAfter => construct::flow::after,
578 Name::FlowBlankLineBefore => construct::flow::blank_line_before,
579 Name::FlowBlankLineAfter => construct::flow::blank_line_after,
580 Name::FlowBeforeContent => construct::flow::before_content,
581
582 Name::FrontmatterStart => construct::frontmatter::start,
583 Name::FrontmatterOpenSequence => construct::frontmatter::open_sequence,
584 Name::FrontmatterOpenAfter => construct::frontmatter::open_after,
585 Name::FrontmatterAfter => construct::frontmatter::after,
586 Name::FrontmatterContentStart => construct::frontmatter::content_start,
587 Name::FrontmatterContentInside => construct::frontmatter::content_inside,
588 Name::FrontmatterContentEnd => construct::frontmatter::content_end,
589 Name::FrontmatterCloseStart => construct::frontmatter::close_start,
590 Name::FrontmatterCloseSequence => construct::frontmatter::close_sequence,
591 Name::FrontmatterCloseAfter => construct::frontmatter::close_after,
592
593 Name::GfmAutolinkLiteralProtocolStart => construct::gfm_autolink_literal::protocol_start,
594 Name::GfmAutolinkLiteralProtocolAfter => construct::gfm_autolink_literal::protocol_after,
595 Name::GfmAutolinkLiteralProtocolPrefixInside => {
596 construct::gfm_autolink_literal::protocol_prefix_inside
597 }
598 Name::GfmAutolinkLiteralProtocolSlashesInside => {
599 construct::gfm_autolink_literal::protocol_slashes_inside
600 }
601 Name::GfmAutolinkLiteralWwwAfter => construct::gfm_autolink_literal::www_after,
602 Name::GfmAutolinkLiteralWwwStart => construct::gfm_autolink_literal::www_start,
603 Name::GfmAutolinkLiteralWwwPrefixInside => {
604 construct::gfm_autolink_literal::www_prefix_inside
605 }
606 Name::GfmAutolinkLiteralWwwPrefixAfter => construct::gfm_autolink_literal::www_prefix_after,
607 Name::GfmAutolinkLiteralDomainInside => construct::gfm_autolink_literal::domain_inside,
608 Name::GfmAutolinkLiteralDomainAtPunctuation => {
609 construct::gfm_autolink_literal::domain_at_punctuation
610 }
611 Name::GfmAutolinkLiteralDomainAfter => construct::gfm_autolink_literal::domain_after,
612 Name::GfmAutolinkLiteralPathInside => construct::gfm_autolink_literal::path_inside,
613 Name::GfmAutolinkLiteralPathAtPunctuation => {
614 construct::gfm_autolink_literal::path_at_punctuation
615 }
616 Name::GfmAutolinkLiteralPathAfter => construct::gfm_autolink_literal::path_after,
617 Name::GfmAutolinkLiteralTrail => construct::gfm_autolink_literal::trail,
618 Name::GfmAutolinkLiteralTrailCharRefStart => {
619 construct::gfm_autolink_literal::trail_char_ref_start
620 }
621 Name::GfmAutolinkLiteralTrailCharRefInside => {
622 construct::gfm_autolink_literal::trail_char_ref_inside
623 }
624 Name::GfmAutolinkLiteralTrailBracketAfter => {
625 construct::gfm_autolink_literal::trail_bracket_after
626 }
627
628 Name::GfmFootnoteDefinitionStart => construct::gfm_footnote_definition::start,
629 Name::GfmFootnoteDefinitionLabelBefore => construct::gfm_footnote_definition::label_before,
630 Name::GfmFootnoteDefinitionLabelAtMarker => {
631 construct::gfm_footnote_definition::label_at_marker
632 }
633 Name::GfmFootnoteDefinitionLabelInside => construct::gfm_footnote_definition::label_inside,
634 Name::GfmFootnoteDefinitionLabelEscape => construct::gfm_footnote_definition::label_escape,
635 Name::GfmFootnoteDefinitionLabelAfter => construct::gfm_footnote_definition::label_after,
636 Name::GfmFootnoteDefinitionWhitespaceAfter => {
637 construct::gfm_footnote_definition::whitespace_after
638 }
639 Name::GfmFootnoteDefinitionContStart => construct::gfm_footnote_definition::cont_start,
640 Name::GfmFootnoteDefinitionContBlank => construct::gfm_footnote_definition::cont_blank,
641 Name::GfmFootnoteDefinitionContFilled => construct::gfm_footnote_definition::cont_filled,
642
643 Name::GfmLabelStartFootnoteStart => construct::gfm_label_start_footnote::start,
644 Name::GfmLabelStartFootnoteOpen => construct::gfm_label_start_footnote::open,
645
646 Name::GfmTableStart => construct::gfm_table::start,
647 Name::GfmTableHeadRowBefore => construct::gfm_table::head_row_before,
648 Name::GfmTableHeadRowStart => construct::gfm_table::head_row_start,
649 Name::GfmTableHeadRowBreak => construct::gfm_table::head_row_break,
650 Name::GfmTableHeadRowData => construct::gfm_table::head_row_data,
651 Name::GfmTableHeadRowEscape => construct::gfm_table::head_row_escape,
652 Name::GfmTableHeadDelimiterStart => construct::gfm_table::head_delimiter_start,
653 Name::GfmTableHeadDelimiterBefore => construct::gfm_table::head_delimiter_before,
654 Name::GfmTableHeadDelimiterCellBefore => construct::gfm_table::head_delimiter_cell_before,
655 Name::GfmTableHeadDelimiterValueBefore => construct::gfm_table::head_delimiter_value_before,
656 Name::GfmTableHeadDelimiterLeftAlignmentAfter => {
657 construct::gfm_table::head_delimiter_left_alignment_after
658 }
659 Name::GfmTableHeadDelimiterFiller => construct::gfm_table::head_delimiter_filler,
660 Name::GfmTableHeadDelimiterRightAlignmentAfter => {
661 construct::gfm_table::head_delimiter_right_alignment_after
662 }
663 Name::GfmTableHeadDelimiterCellAfter => construct::gfm_table::head_delimiter_cell_after,
664 Name::GfmTableHeadDelimiterNok => construct::gfm_table::head_delimiter_nok,
665 Name::GfmTableBodyRowStart => construct::gfm_table::body_row_start,
666 Name::GfmTableBodyRowBreak => construct::gfm_table::body_row_break,
667 Name::GfmTableBodyRowData => construct::gfm_table::body_row_data,
668 Name::GfmTableBodyRowEscape => construct::gfm_table::body_row_escape,
669
670 Name::GfmTaskListItemCheckStart => construct::gfm_task_list_item_check::start,
671 Name::GfmTaskListItemCheckInside => construct::gfm_task_list_item_check::inside,
672 Name::GfmTaskListItemCheckClose => construct::gfm_task_list_item_check::close,
673 Name::GfmTaskListItemCheckAfter => construct::gfm_task_list_item_check::after,
674 Name::GfmTaskListItemCheckAfterSpaceOrTab => {
675 construct::gfm_task_list_item_check::after_space_or_tab
676 }
677
678 Name::HardBreakEscapeStart => construct::hard_break_escape::start,
679 Name::HardBreakEscapeAfter => construct::hard_break_escape::after,
680
681 Name::HeadingAtxStart => construct::heading_atx::start,
682 Name::HeadingAtxBefore => construct::heading_atx::before,
683 Name::HeadingAtxSequenceOpen => construct::heading_atx::sequence_open,
684 Name::HeadingAtxAtBreak => construct::heading_atx::at_break,
685 Name::HeadingAtxSequenceFurther => construct::heading_atx::sequence_further,
686 Name::HeadingAtxData => construct::heading_atx::data,
687
688 Name::HeadingSetextStart => construct::heading_setext::start,
689 Name::HeadingSetextBefore => construct::heading_setext::before,
690 Name::HeadingSetextInside => construct::heading_setext::inside,
691 Name::HeadingSetextAfter => construct::heading_setext::after,
692
693 Name::HtmlFlowStart => construct::html_flow::start,
694 Name::HtmlFlowBefore => construct::html_flow::before,
695 Name::HtmlFlowOpen => construct::html_flow::open,
696 Name::HtmlFlowDeclarationOpen => construct::html_flow::declaration_open,
697 Name::HtmlFlowCommentOpenInside => construct::html_flow::comment_open_inside,
698 Name::HtmlFlowCdataOpenInside => construct::html_flow::cdata_open_inside,
699 Name::HtmlFlowTagCloseStart => construct::html_flow::tag_close_start,
700 Name::HtmlFlowTagName => construct::html_flow::tag_name,
701 Name::HtmlFlowBasicSelfClosing => construct::html_flow::basic_self_closing,
702 Name::HtmlFlowCompleteClosingTagAfter => construct::html_flow::complete_closing_tag_after,
703 Name::HtmlFlowCompleteEnd => construct::html_flow::complete_end,
704 Name::HtmlFlowCompleteAttributeNameBefore => {
705 construct::html_flow::complete_attribute_name_before
706 }
707 Name::HtmlFlowCompleteAttributeName => construct::html_flow::complete_attribute_name,
708 Name::HtmlFlowCompleteAttributeNameAfter => {
709 construct::html_flow::complete_attribute_name_after
710 }
711 Name::HtmlFlowCompleteAttributeValueBefore => {
712 construct::html_flow::complete_attribute_value_before
713 }
714 Name::HtmlFlowCompleteAttributeValueQuoted => {
715 construct::html_flow::complete_attribute_value_quoted
716 }
717 Name::HtmlFlowCompleteAttributeValueQuotedAfter => {
718 construct::html_flow::complete_attribute_value_quoted_after
719 }
720 Name::HtmlFlowCompleteAttributeValueUnquoted => {
721 construct::html_flow::complete_attribute_value_unquoted
722 }
723 Name::HtmlFlowCompleteAfter => construct::html_flow::complete_after,
724 Name::HtmlFlowBlankLineBefore => construct::html_flow::blank_line_before,
725 Name::HtmlFlowContinuation => construct::html_flow::continuation,
726 Name::HtmlFlowContinuationDeclarationInside => {
727 construct::html_flow::continuation_declaration_inside
728 }
729 Name::HtmlFlowContinuationAfter => construct::html_flow::continuation_after,
730 Name::HtmlFlowContinuationStart => construct::html_flow::continuation_start,
731 Name::HtmlFlowContinuationBefore => construct::html_flow::continuation_before,
732 Name::HtmlFlowContinuationCommentInside => {
733 construct::html_flow::continuation_comment_inside
734 }
735 Name::HtmlFlowContinuationRawTagOpen => construct::html_flow::continuation_raw_tag_open,
736 Name::HtmlFlowContinuationRawEndTag => construct::html_flow::continuation_raw_end_tag,
737 Name::HtmlFlowContinuationClose => construct::html_flow::continuation_close,
738 Name::HtmlFlowContinuationCdataInside => construct::html_flow::continuation_cdata_inside,
739 Name::HtmlFlowContinuationStartNonLazy => construct::html_flow::continuation_start_non_lazy,
740
741 Name::HtmlTextStart => construct::html_text::start,
742 Name::HtmlTextOpen => construct::html_text::open,
743 Name::HtmlTextDeclarationOpen => construct::html_text::declaration_open,
744 Name::HtmlTextTagCloseStart => construct::html_text::tag_close_start,
745 Name::HtmlTextTagClose => construct::html_text::tag_close,
746 Name::HtmlTextTagCloseBetween => construct::html_text::tag_close_between,
747 Name::HtmlTextTagOpen => construct::html_text::tag_open,
748 Name::HtmlTextTagOpenBetween => construct::html_text::tag_open_between,
749 Name::HtmlTextTagOpenAttributeName => construct::html_text::tag_open_attribute_name,
750 Name::HtmlTextTagOpenAttributeNameAfter => {
751 construct::html_text::tag_open_attribute_name_after
752 }
753 Name::HtmlTextTagOpenAttributeValueBefore => {
754 construct::html_text::tag_open_attribute_value_before
755 }
756 Name::HtmlTextTagOpenAttributeValueQuoted => {
757 construct::html_text::tag_open_attribute_value_quoted
758 }
759 Name::HtmlTextTagOpenAttributeValueQuotedAfter => {
760 construct::html_text::tag_open_attribute_value_quoted_after
761 }
762 Name::HtmlTextTagOpenAttributeValueUnquoted => {
763 construct::html_text::tag_open_attribute_value_unquoted
764 }
765 Name::HtmlTextCdata => construct::html_text::cdata,
766 Name::HtmlTextCdataOpenInside => construct::html_text::cdata_open_inside,
767 Name::HtmlTextCdataClose => construct::html_text::cdata_close,
768 Name::HtmlTextCdataEnd => construct::html_text::cdata_end,
769 Name::HtmlTextCommentOpenInside => construct::html_text::comment_open_inside,
770 Name::HtmlTextComment => construct::html_text::comment,
771 Name::HtmlTextCommentClose => construct::html_text::comment_close,
772 Name::HtmlTextCommentEnd => construct::html_text::comment_end,
773 Name::HtmlTextDeclaration => construct::html_text::declaration,
774 Name::HtmlTextEnd => construct::html_text::end,
775 Name::HtmlTextInstruction => construct::html_text::instruction,
776 Name::HtmlTextInstructionClose => construct::html_text::instruction_close,
777 Name::HtmlTextLineEndingBefore => construct::html_text::line_ending_before,
778 Name::HtmlTextLineEndingAfter => construct::html_text::line_ending_after,
779 Name::HtmlTextLineEndingAfterPrefix => construct::html_text::line_ending_after_prefix,
780
781 Name::LabelStart => construct::partial_label::start,
782 Name::LabelAtBreak => construct::partial_label::at_break,
783 Name::LabelEolAfter => construct::partial_label::eol_after,
784 Name::LabelEscape => construct::partial_label::escape,
785 Name::LabelInside => construct::partial_label::inside,
786 Name::LabelNok => construct::partial_label::nok,
787
788 Name::LabelEndStart => construct::label_end::start,
789 Name::LabelEndAfter => construct::label_end::after,
790 Name::LabelEndResourceStart => construct::label_end::resource_start,
791 Name::LabelEndResourceBefore => construct::label_end::resource_before,
792 Name::LabelEndResourceOpen => construct::label_end::resource_open,
793 Name::LabelEndResourceDestinationAfter => construct::label_end::resource_destination_after,
794 Name::LabelEndResourceDestinationMissing => {
795 construct::label_end::resource_destination_missing
796 }
797 Name::LabelEndResourceBetween => construct::label_end::resource_between,
798 Name::LabelEndResourceTitleAfter => construct::label_end::resource_title_after,
799 Name::LabelEndResourceEnd => construct::label_end::resource_end,
800 Name::LabelEndOk => construct::label_end::ok,
801 Name::LabelEndNok => construct::label_end::nok,
802 Name::LabelEndReferenceFull => construct::label_end::reference_full,
803 Name::LabelEndReferenceFullAfter => construct::label_end::reference_full_after,
804 Name::LabelEndReferenceFullMissing => construct::label_end::reference_full_missing,
805 Name::LabelEndReferenceNotFull => construct::label_end::reference_not_full,
806 Name::LabelEndReferenceCollapsed => construct::label_end::reference_collapsed,
807 Name::LabelEndReferenceCollapsedOpen => construct::label_end::reference_collapsed_open,
808
809 Name::LabelStartImageStart => construct::label_start_image::start,
810 Name::LabelStartImageOpen => construct::label_start_image::open,
811 Name::LabelStartImageAfter => construct::label_start_image::after,
812 Name::LabelStartLinkStart => construct::label_start_link::start,
813
814 Name::ListItemStart => construct::list_item::start,
815 Name::ListItemBefore => construct::list_item::before,
816 Name::ListItemBeforeOrdered => construct::list_item::before_ordered,
817 Name::ListItemBeforeUnordered => construct::list_item::before_unordered,
818 Name::ListItemValue => construct::list_item::value,
819 Name::ListItemMarker => construct::list_item::marker,
820 Name::ListItemMarkerAfter => construct::list_item::marker_after,
821 Name::ListItemAfter => construct::list_item::after,
822 Name::ListItemMarkerAfterFilled => construct::list_item::marker_after_filled,
823 Name::ListItemWhitespace => construct::list_item::whitespace,
824 Name::ListItemWhitespaceAfter => construct::list_item::whitespace_after,
825 Name::ListItemPrefixOther => construct::list_item::prefix_other,
826 Name::ListItemContStart => construct::list_item::cont_start,
827 Name::ListItemContBlank => construct::list_item::cont_blank,
828 Name::ListItemContFilled => construct::list_item::cont_filled,
829
830 Name::MdxEsmStart => construct::mdx_esm::start,
831 Name::MdxEsmWord => construct::mdx_esm::word,
832 Name::MdxEsmInside => construct::mdx_esm::inside,
833 Name::MdxEsmLineStart => construct::mdx_esm::line_start,
834 Name::MdxEsmBlankLineBefore => construct::mdx_esm::blank_line_before,
835 Name::MdxEsmContinuationStart => construct::mdx_esm::continuation_start,
836 Name::MdxEsmAtEnd => construct::mdx_esm::at_end,
837
838 Name::MdxExpressionStart => construct::partial_mdx_expression::start,
839 Name::MdxExpressionPrefix => construct::partial_mdx_expression::prefix,
840 Name::MdxExpressionBefore => construct::partial_mdx_expression::before,
841 Name::MdxExpressionInside => construct::partial_mdx_expression::inside,
842 Name::MdxExpressionEolAfter => construct::partial_mdx_expression::eol_after,
843
844 Name::MdxExpressionFlowStart => construct::mdx_expression_flow::start,
845 Name::MdxExpressionFlowBefore => construct::mdx_expression_flow::before,
846 Name::MdxExpressionFlowAfter => construct::mdx_expression_flow::after,
847 Name::MdxExpressionFlowEnd => construct::mdx_expression_flow::end,
848
849 Name::MdxExpressionTextStart => construct::mdx_expression_text::start,
850 Name::MdxExpressionTextAfter => construct::mdx_expression_text::after,
851
852 Name::MdxJsxFlowStart => construct::mdx_jsx_flow::start,
853 Name::MdxJsxFlowBefore => construct::mdx_jsx_flow::before,
854 Name::MdxJsxFlowAfter => construct::mdx_jsx_flow::after,
855 Name::MdxJsxFlowEnd => construct::mdx_jsx_flow::end,
856 Name::MdxJsxFlowNok => construct::mdx_jsx_flow::nok,
857
858 Name::MdxJsxTextStart => construct::mdx_jsx_text::start,
859 Name::MdxJsxTextAfter => construct::mdx_jsx_text::after,
860 Name::MdxJsxTextNok => construct::mdx_jsx_text::nok,
861
862 Name::MdxJsxStart => construct::partial_mdx_jsx::start,
863 Name::MdxJsxStartAfter => construct::partial_mdx_jsx::start_after,
864 Name::MdxJsxNameBefore => construct::partial_mdx_jsx::name_before,
865 Name::MdxJsxClosingTagNameBefore => construct::partial_mdx_jsx::closing_tag_name_before,
866 Name::MdxJsxTagEnd => construct::partial_mdx_jsx::tag_end,
867 Name::MdxJsxPrimaryName => construct::partial_mdx_jsx::primary_name,
868 Name::MdxJsxPrimaryNameAfter => construct::partial_mdx_jsx::primary_name_after,
869 Name::MdxJsxMemberNameBefore => construct::partial_mdx_jsx::member_name_before,
870 Name::MdxJsxMemberName => construct::partial_mdx_jsx::member_name,
871 Name::MdxJsxMemberNameAfter => construct::partial_mdx_jsx::member_name_after,
872 Name::MdxJsxLocalNameBefore => construct::partial_mdx_jsx::local_name_before,
873 Name::MdxJsxLocalName => construct::partial_mdx_jsx::local_name,
874 Name::MdxJsxLocalNameAfter => construct::partial_mdx_jsx::local_name_after,
875 Name::MdxJsxAttributeBefore => construct::partial_mdx_jsx::attribute_before,
876 Name::MdxJsxSelfClosing => construct::partial_mdx_jsx::self_closing,
877 Name::MdxJsxAttributeExpressionAfter => {
878 construct::partial_mdx_jsx::attribute_expression_after
879 }
880 Name::MdxJsxAttributePrimaryName => construct::partial_mdx_jsx::attribute_primary_name,
881 Name::MdxJsxAttributePrimaryNameAfter => {
882 construct::partial_mdx_jsx::attribute_primary_name_after
883 }
884 Name::MdxJsxAttributeLocalNameBefore => {
885 construct::partial_mdx_jsx::attribute_local_name_before
886 }
887 Name::MdxJsxAttributeLocalName => construct::partial_mdx_jsx::attribute_local_name,
888 Name::MdxJsxAttributeLocalNameAfter => {
889 construct::partial_mdx_jsx::attribute_local_name_after
890 }
891 Name::MdxJsxAttributeValueBefore => construct::partial_mdx_jsx::attribute_value_before,
892 Name::MdxJsxAttributeValueQuotedStart => {
893 construct::partial_mdx_jsx::attribute_value_quoted_start
894 }
895 Name::MdxJsxAttributeValueQuoted => construct::partial_mdx_jsx::attribute_value_quoted,
896 Name::MdxJsxAttributeValueExpressionAfter => {
897 construct::partial_mdx_jsx::attribute_value_expression_after
898 }
899 Name::MdxJsxEsWhitespaceStart => construct::partial_mdx_jsx::es_whitespace_start,
900 Name::MdxJsxEsWhitespaceInside => construct::partial_mdx_jsx::es_whitespace_inside,
901 Name::MdxJsxEsWhitespaceEolAfter => construct::partial_mdx_jsx::es_whitespace_eol_after,
902
903 Name::NonLazyContinuationStart => construct::partial_non_lazy_continuation::start,
904 Name::NonLazyContinuationAfter => construct::partial_non_lazy_continuation::after,
905
906 Name::ParagraphStart => construct::paragraph::start,
907 Name::ParagraphLineStart => construct::paragraph::line_start,
908 Name::ParagraphInside => construct::paragraph::inside,
909
910 Name::RawFlowStart => construct::raw_flow::start,
911 Name::RawFlowBeforeSequenceOpen => construct::raw_flow::before_sequence_open,
912 Name::RawFlowSequenceOpen => construct::raw_flow::sequence_open,
913 Name::RawFlowInfoBefore => construct::raw_flow::info_before,
914 Name::RawFlowInfo => construct::raw_flow::info,
915 Name::RawFlowMetaBefore => construct::raw_flow::meta_before,
916 Name::RawFlowMeta => construct::raw_flow::meta,
917 Name::RawFlowAtNonLazyBreak => construct::raw_flow::at_non_lazy_break,
918 Name::RawFlowCloseStart => construct::raw_flow::close_start,
919 Name::RawFlowBeforeSequenceClose => construct::raw_flow::before_sequence_close,
920 Name::RawFlowSequenceClose => construct::raw_flow::sequence_close,
921 Name::RawFlowAfterSequenceClose => construct::raw_flow::sequence_close_after,
922 Name::RawFlowContentBefore => construct::raw_flow::content_before,
923 Name::RawFlowContentStart => construct::raw_flow::content_start,
924 Name::RawFlowBeforeContentChunk => construct::raw_flow::before_content_chunk,
925 Name::RawFlowContentChunk => construct::raw_flow::content_chunk,
926 Name::RawFlowAfter => construct::raw_flow::after,
927
928 Name::RawTextStart => construct::raw_text::start,
929 Name::RawTextSequenceOpen => construct::raw_text::sequence_open,
930 Name::RawTextBetween => construct::raw_text::between,
931 Name::RawTextData => construct::raw_text::data,
932 Name::RawTextSequenceClose => construct::raw_text::sequence_close,
933
934 Name::SpaceOrTabStart => construct::partial_space_or_tab::start,
935 Name::SpaceOrTabInside => construct::partial_space_or_tab::inside,
936 Name::SpaceOrTabAfter => construct::partial_space_or_tab::after,
937
938 Name::SpaceOrTabEolStart => construct::partial_space_or_tab_eol::start,
939 Name::SpaceOrTabEolAfterFirst => construct::partial_space_or_tab_eol::after_first,
940 Name::SpaceOrTabEolAfterEol => construct::partial_space_or_tab_eol::after_eol,
941 Name::SpaceOrTabEolAtEol => construct::partial_space_or_tab_eol::at_eol,
942 Name::SpaceOrTabEolAfterMore => construct::partial_space_or_tab_eol::after_more,
943
944 Name::StringStart => construct::string::start,
945 Name::StringBefore => construct::string::before,
946 Name::StringBeforeData => construct::string::before_data,
947
948 Name::TextStart => construct::text::start,
949 Name::TextBefore => construct::text::before,
950 Name::TextBeforeHtml => construct::text::before_html,
951 Name::TextBeforeMdxJsx => construct::text::before_mdx_jsx,
952 Name::TextBeforeHardBreakEscape => construct::text::before_hard_break_escape,
953 Name::TextBeforeLabelStartLink => construct::text::before_label_start_link,
954 Name::TextBeforeData => construct::text::before_data,
955
956 Name::ThematicBreakStart => construct::thematic_break::start,
957 Name::ThematicBreakBefore => construct::thematic_break::before,
958 Name::ThematicBreakSequence => construct::thematic_break::sequence,
959 Name::ThematicBreakAtBreak => construct::thematic_break::at_break,
960
961 Name::TitleStart => construct::partial_title::start,
962 Name::TitleBegin => construct::partial_title::begin,
963 Name::TitleAfterEol => construct::partial_title::after_eol,
964 Name::TitleAtBreak => construct::partial_title::at_break,
965 Name::TitleEscape => construct::partial_title::escape,
966 Name::TitleInside => construct::partial_title::inside,
967 Name::TitleNok => construct::partial_title::nok,
968 };
969
970 func(tokenizer)
971}