Introduce AstNode and AstNodeIter enums.
This commit is contained in:
		
							parent
							
								
									35f058a354
								
							
						
					
					
						commit
						9111408d83
					
				| @ -1 +1,110 @@ | ||||
| use crate::types::AngleLink; | ||||
| use crate::types::BabelCall; | ||||
| use crate::types::Bold; | ||||
| use crate::types::Citation; | ||||
| use crate::types::CitationReference; | ||||
| use crate::types::Clock; | ||||
| use crate::types::Code; | ||||
| use crate::types::Comment; | ||||
| use crate::types::CommentBlock; | ||||
| use crate::types::DiarySexp; | ||||
| use crate::types::Document; | ||||
| use crate::types::Drawer; | ||||
| use crate::types::DynamicBlock; | ||||
| use crate::types::Entity; | ||||
| use crate::types::ExampleBlock; | ||||
| use crate::types::ExportBlock; | ||||
| use crate::types::ExportSnippet; | ||||
| use crate::types::FixedWidthArea; | ||||
| use crate::types::FootnoteDefinition; | ||||
| use crate::types::FootnoteReference; | ||||
| use crate::types::GreaterBlock; | ||||
| use crate::types::Heading; | ||||
| use crate::types::HorizontalRule; | ||||
| use crate::types::InlineBabelCall; | ||||
| use crate::types::InlineSourceBlock; | ||||
| use crate::types::Italic; | ||||
| use crate::types::Keyword; | ||||
| use crate::types::LatexEnvironment; | ||||
| use crate::types::LatexFragment; | ||||
| use crate::types::LineBreak; | ||||
| use crate::types::OrgMacro; | ||||
| use crate::types::Paragraph; | ||||
| use crate::types::PlainLink; | ||||
| use crate::types::PlainList; | ||||
| use crate::types::PlainText; | ||||
| use crate::types::Planning; | ||||
| use crate::types::PropertyDrawer; | ||||
| use crate::types::RadioLink; | ||||
| use crate::types::RadioTarget; | ||||
| use crate::types::RegularLink; | ||||
| use crate::types::Section; | ||||
| use crate::types::SrcBlock; | ||||
| use crate::types::StatisticsCookie; | ||||
| use crate::types::StrikeThrough; | ||||
| use crate::types::Subscript; | ||||
| use crate::types::Superscript; | ||||
| use crate::types::Table; | ||||
| use crate::types::Target; | ||||
| use crate::types::Timestamp; | ||||
| use crate::types::Underline; | ||||
| use crate::types::Verbatim; | ||||
| use crate::types::VerseBlock; | ||||
| 
 | ||||
| pub enum AstNode<'r, 's> { | ||||
|     // Document Nodes
 | ||||
|     Document(&'r Document<'s>), | ||||
|     Heading(&'r Heading<'s>), | ||||
|     Section(&'r Section<'s>), | ||||
|     // Elements
 | ||||
|     Paragraph(&'r Paragraph<'s>), | ||||
|     PlainList(&'r PlainList<'s>), | ||||
|     GreaterBlock(&'r GreaterBlock<'s>), | ||||
|     DynamicBlock(&'r DynamicBlock<'s>), | ||||
|     FootnoteDefinition(&'r FootnoteDefinition<'s>), | ||||
|     Comment(&'r Comment<'s>), | ||||
|     Drawer(&'r Drawer<'s>), | ||||
|     PropertyDrawer(&'r PropertyDrawer<'s>), | ||||
|     Table(&'r Table<'s>), | ||||
|     VerseBlock(&'r VerseBlock<'s>), | ||||
|     CommentBlock(&'r CommentBlock<'s>), | ||||
|     ExampleBlock(&'r ExampleBlock<'s>), | ||||
|     ExportBlock(&'r ExportBlock<'s>), | ||||
|     SrcBlock(&'r SrcBlock<'s>), | ||||
|     Clock(&'r Clock<'s>), | ||||
|     DiarySexp(&'r DiarySexp<'s>), | ||||
|     Planning(&'r Planning<'s>), | ||||
|     FixedWidthArea(&'r FixedWidthArea<'s>), | ||||
|     HorizontalRule(&'r HorizontalRule<'s>), | ||||
|     Keyword(&'r Keyword<'s>), | ||||
|     BabelCall(&'r BabelCall<'s>), | ||||
|     LatexEnvironment(&'r LatexEnvironment<'s>), | ||||
|     // Objects
 | ||||
|     Bold(&'r Bold<'s>), | ||||
|     Italic(&'r Italic<'s>), | ||||
|     Underline(&'r Underline<'s>), | ||||
|     StrikeThrough(&'r StrikeThrough<'s>), | ||||
|     Code(&'r Code<'s>), | ||||
|     Verbatim(&'r Verbatim<'s>), | ||||
|     PlainText(&'r PlainText<'s>), | ||||
|     RegularLink(&'r RegularLink<'s>), | ||||
|     RadioLink(&'r RadioLink<'s>), | ||||
|     RadioTarget(&'r RadioTarget<'s>), | ||||
|     PlainLink(&'r PlainLink<'s>), | ||||
|     AngleLink(&'r AngleLink<'s>), | ||||
|     OrgMacro(&'r OrgMacro<'s>), | ||||
|     Entity(&'r Entity<'s>), | ||||
|     LatexFragment(&'r LatexFragment<'s>), | ||||
|     ExportSnippet(&'r ExportSnippet<'s>), | ||||
|     FootnoteReference(&'r FootnoteReference<'s>), | ||||
|     Citation(&'r Citation<'s>), | ||||
|     CitationReference(&'r CitationReference<'s>), | ||||
|     InlineBabelCall(&'r InlineBabelCall<'s>), | ||||
|     InlineSourceBlock(&'r InlineSourceBlock<'s>), | ||||
|     LineBreak(&'r LineBreak<'s>), | ||||
|     Target(&'r Target<'s>), | ||||
|     StatisticsCookie(&'r StatisticsCookie<'s>), | ||||
|     Subscript(&'r Subscript<'s>), | ||||
|     Superscript(&'r Superscript<'s>), | ||||
|     Timestamp(&'r Timestamp<'s>), | ||||
| } | ||||
|  | ||||
| @ -1,5 +1,63 @@ | ||||
| use crate::types::Object; | ||||
| 
 | ||||
| pub enum AstNodeIter<'s> { | ||||
|     // Document Nodes
 | ||||
|     // Document(DocumentIter<'s>),
 | ||||
|     // Heading(HeadingIter<'s>),
 | ||||
|     // Section(SectionIter<'s>),
 | ||||
|     // Elements
 | ||||
|     // Paragraph(ParagraphIter<'s>),
 | ||||
|     // PlainList(PlainListIter<'s>),
 | ||||
|     // GreaterBlock(GreaterBlockIter<'s>),
 | ||||
|     // DynamicBlock(DynamicBlockIter<'s>),
 | ||||
|     // FootnoteDefinition(FootnoteDefinitionIter<'s>),
 | ||||
|     // Comment(CommentIter<'s>),
 | ||||
|     // Drawer(DrawerIter<'s>),
 | ||||
|     // PropertyDrawer(PropertyDrawerIter<'s>),
 | ||||
|     // Table(TableIter<'s>),
 | ||||
|     // VerseBlock(VerseBlockIter<'s>),
 | ||||
|     // CommentBlock(CommentBlockIter<'s>),
 | ||||
|     // ExampleBlock(ExampleBlockIter<'s>),
 | ||||
|     // ExportBlock(ExportBlockIter<'s>),
 | ||||
|     // SrcBlock(SrcBlockIter<'s>),
 | ||||
|     // Clock(ClockIter<'s>),
 | ||||
|     // DiarySexp(DiarySexpIter<'s>),
 | ||||
|     // Planning(PlanningIter<'s>),
 | ||||
|     // FixedWidthArea(FixedWidthAreaIter<'s>),
 | ||||
|     // HorizontalRule(HorizontalRuleIter<'s>),
 | ||||
|     // Keyword(KeywordIter<'s>),
 | ||||
|     // BabelCall(BabelCallIter<'s>),
 | ||||
|     // LatexEnvironment(LatexEnvironmentIter<'s>),
 | ||||
|     // Objects
 | ||||
|     Bold(BoldIter<'s>), | ||||
|     // Italic(ItalicIter<'s>),
 | ||||
|     // Underline(UnderlineIter<'s>),
 | ||||
|     // StrikeThrough(StrikeThroughIter<'s>),
 | ||||
|     // Code(CodeIter<'s>),
 | ||||
|     // Verbatim(VerbatimIter<'s>),
 | ||||
|     // PlainText(PlainTextIter<'s>),
 | ||||
|     // RegularLink(RegularLinkIter<'s>),
 | ||||
|     // RadioLink(RadioLinkIter<'s>),
 | ||||
|     // RadioTarget(RadioTargetIter<'s>),
 | ||||
|     // PlainLink(PlainLinkIter<'s>),
 | ||||
|     // AngleLink(AngleLinkIter<'s>),
 | ||||
|     // OrgMacro(OrgMacroIter<'s>),
 | ||||
|     // Entity(EntityIter<'s>),
 | ||||
|     // LatexFragment(LatexFragmentIter<'s>),
 | ||||
|     // ExportSnippet(ExportSnippetIter<'s>),
 | ||||
|     // FootnoteReference(FootnoteReferenceIter<'s>),
 | ||||
|     // Citation(CitationIter<'s>),
 | ||||
|     // CitationReference(CitationReferenceIter<'s>),
 | ||||
|     // InlineBabelCall(InlineBabelCallIter<'s>),
 | ||||
|     // InlineSourceBlock(InlineSourceBlockIter<'s>),
 | ||||
|     // LineBreak(LineBreakIter<'s>),
 | ||||
|     // Target(TargetIter<'s>),
 | ||||
|     // StatisticsCookie(StatisticsCookieIter<'s>),
 | ||||
|     // Subscript(SubscriptIter<'s>),
 | ||||
|     // Superscript(SuperscriptIter<'s>),
 | ||||
|     // Timestamp(TimestampIter<'s>),
 | ||||
| } | ||||
| 
 | ||||
| pub struct BoldIter<'s> { | ||||
|     next: std::slice::Iter<'s, Object<'s>>, | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tom Alexander
						Tom Alexander