Markdown parser fork with extended syntax for personal use.
at main 971 lines 42 kB view raw
1//! States of the state machine. 2 3use crate::construct; 4use crate::message; 5use crate::tokenizer::Tokenizer; 6 7/// Result of a state. 8#[derive(Clone, Debug, PartialEq)] 9pub enum State { 10 /// Syntax error. 11 /// 12 /// Only used by MDX. 13 Error(message::Message), 14 /// Move to [`Name`][] next. 15 Next(Name), 16 /// Retry in [`Name`][]. 17 Retry(Name), 18 /// The state is successful. 19 Ok, 20 /// The state is not successful. 21 Nok, 22} 23 24impl State { 25 /// Turn a final state into a result. 26 /// 27 /// This doesn’t work on future states ([`State::Next`], [`State::Retry`]), 28 /// or on an attempt ([`State::Nok`]). 29 /// 30 /// But it turns the final result into an error if crashed. 31 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/// Names of states to move to. 43#[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)] 472/// Call the corresponding state for a state name. 473pub 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}