Implement the rest of the elements.
This commit is contained in:
parent
95fa834420
commit
c4ea3fbf88
@ -31,6 +31,7 @@ use crate::types::Keyword;
|
|||||||
use crate::types::LatexEnvironment;
|
use crate::types::LatexEnvironment;
|
||||||
use crate::types::LatexFragment;
|
use crate::types::LatexFragment;
|
||||||
use crate::types::LineBreak;
|
use crate::types::LineBreak;
|
||||||
|
use crate::types::NodeProperty;
|
||||||
use crate::types::Object;
|
use crate::types::Object;
|
||||||
use crate::types::OrgMacro;
|
use crate::types::OrgMacro;
|
||||||
use crate::types::Paragraph;
|
use crate::types::Paragraph;
|
||||||
@ -50,6 +51,8 @@ use crate::types::StrikeThrough;
|
|||||||
use crate::types::Subscript;
|
use crate::types::Subscript;
|
||||||
use crate::types::Superscript;
|
use crate::types::Superscript;
|
||||||
use crate::types::Table;
|
use crate::types::Table;
|
||||||
|
use crate::types::TableCell;
|
||||||
|
use crate::types::TableRow;
|
||||||
use crate::types::Target;
|
use crate::types::Target;
|
||||||
use crate::types::Timestamp;
|
use crate::types::Timestamp;
|
||||||
use crate::types::Underline;
|
use crate::types::Underline;
|
||||||
@ -71,7 +74,9 @@ pub enum AstNode<'r, 's> {
|
|||||||
Comment(&'r Comment<'s>),
|
Comment(&'r Comment<'s>),
|
||||||
Drawer(&'r Drawer<'s>),
|
Drawer(&'r Drawer<'s>),
|
||||||
PropertyDrawer(&'r PropertyDrawer<'s>),
|
PropertyDrawer(&'r PropertyDrawer<'s>),
|
||||||
|
NodeProperty(&'r NodeProperty<'s>),
|
||||||
Table(&'r Table<'s>),
|
Table(&'r Table<'s>),
|
||||||
|
TableRow(&'r TableRow<'s>),
|
||||||
VerseBlock(&'r VerseBlock<'s>),
|
VerseBlock(&'r VerseBlock<'s>),
|
||||||
CommentBlock(&'r CommentBlock<'s>),
|
CommentBlock(&'r CommentBlock<'s>),
|
||||||
ExampleBlock(&'r ExampleBlock<'s>),
|
ExampleBlock(&'r ExampleBlock<'s>),
|
||||||
@ -112,6 +117,7 @@ pub enum AstNode<'r, 's> {
|
|||||||
StatisticsCookie(&'r StatisticsCookie<'s>),
|
StatisticsCookie(&'r StatisticsCookie<'s>),
|
||||||
Subscript(&'r Subscript<'s>),
|
Subscript(&'r Subscript<'s>),
|
||||||
Superscript(&'r Superscript<'s>),
|
Superscript(&'r Superscript<'s>),
|
||||||
|
TableCell(&'r TableCell<'s>),
|
||||||
Timestamp(&'r Timestamp<'s>),
|
Timestamp(&'r Timestamp<'s>),
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,7 +205,9 @@ to_ast_node!(&'r FootnoteDefinition<'s>, AstNode::FootnoteDefinition);
|
|||||||
to_ast_node!(&'r Comment<'s>, AstNode::Comment);
|
to_ast_node!(&'r Comment<'s>, AstNode::Comment);
|
||||||
to_ast_node!(&'r Drawer<'s>, AstNode::Drawer);
|
to_ast_node!(&'r Drawer<'s>, AstNode::Drawer);
|
||||||
to_ast_node!(&'r PropertyDrawer<'s>, AstNode::PropertyDrawer);
|
to_ast_node!(&'r PropertyDrawer<'s>, AstNode::PropertyDrawer);
|
||||||
|
to_ast_node!(&'r NodeProperty<'s>, AstNode::NodeProperty);
|
||||||
to_ast_node!(&'r Table<'s>, AstNode::Table);
|
to_ast_node!(&'r Table<'s>, AstNode::Table);
|
||||||
|
to_ast_node!(&'r TableRow<'s>, AstNode::TableRow);
|
||||||
to_ast_node!(&'r VerseBlock<'s>, AstNode::VerseBlock);
|
to_ast_node!(&'r VerseBlock<'s>, AstNode::VerseBlock);
|
||||||
to_ast_node!(&'r CommentBlock<'s>, AstNode::CommentBlock);
|
to_ast_node!(&'r CommentBlock<'s>, AstNode::CommentBlock);
|
||||||
to_ast_node!(&'r ExampleBlock<'s>, AstNode::ExampleBlock);
|
to_ast_node!(&'r ExampleBlock<'s>, AstNode::ExampleBlock);
|
||||||
@ -239,4 +247,5 @@ to_ast_node!(&'r Target<'s>, AstNode::Target);
|
|||||||
to_ast_node!(&'r StatisticsCookie<'s>, AstNode::StatisticsCookie);
|
to_ast_node!(&'r StatisticsCookie<'s>, AstNode::StatisticsCookie);
|
||||||
to_ast_node!(&'r Subscript<'s>, AstNode::Subscript);
|
to_ast_node!(&'r Subscript<'s>, AstNode::Subscript);
|
||||||
to_ast_node!(&'r Superscript<'s>, AstNode::Superscript);
|
to_ast_node!(&'r Superscript<'s>, AstNode::Superscript);
|
||||||
|
to_ast_node!(&'r TableCell<'s>, AstNode::TableCell);
|
||||||
to_ast_node!(&'r Timestamp<'s>, AstNode::Timestamp);
|
to_ast_node!(&'r Timestamp<'s>, AstNode::Timestamp);
|
||||||
|
@ -4,24 +4,47 @@ use super::ast_node::AstNode;
|
|||||||
use super::macros::children_iter;
|
use super::macros::children_iter;
|
||||||
use super::macros::empty_iter;
|
use super::macros::empty_iter;
|
||||||
use super::macros::multi_field_iter;
|
use super::macros::multi_field_iter;
|
||||||
|
use crate::types::BabelCall;
|
||||||
use crate::types::Bold;
|
use crate::types::Bold;
|
||||||
|
use crate::types::Clock;
|
||||||
use crate::types::Code;
|
use crate::types::Code;
|
||||||
|
use crate::types::Comment;
|
||||||
|
use crate::types::CommentBlock;
|
||||||
|
use crate::types::DiarySexp;
|
||||||
use crate::types::Document;
|
use crate::types::Document;
|
||||||
use crate::types::DocumentElement;
|
use crate::types::DocumentElement;
|
||||||
|
use crate::types::Drawer;
|
||||||
|
use crate::types::DynamicBlock;
|
||||||
use crate::types::Element;
|
use crate::types::Element;
|
||||||
|
use crate::types::ExampleBlock;
|
||||||
|
use crate::types::ExportBlock;
|
||||||
|
use crate::types::FixedWidthArea;
|
||||||
|
use crate::types::FootnoteDefinition;
|
||||||
|
use crate::types::GreaterBlock;
|
||||||
use crate::types::Heading;
|
use crate::types::Heading;
|
||||||
|
use crate::types::HorizontalRule;
|
||||||
use crate::types::Italic;
|
use crate::types::Italic;
|
||||||
|
use crate::types::Keyword;
|
||||||
|
use crate::types::LatexEnvironment;
|
||||||
|
use crate::types::NodeProperty;
|
||||||
use crate::types::Object;
|
use crate::types::Object;
|
||||||
use crate::types::Paragraph;
|
use crate::types::Paragraph;
|
||||||
use crate::types::PlainList;
|
use crate::types::PlainList;
|
||||||
use crate::types::PlainListItem;
|
use crate::types::PlainListItem;
|
||||||
use crate::types::PlainText;
|
use crate::types::PlainText;
|
||||||
|
use crate::types::Planning;
|
||||||
|
use crate::types::PropertyDrawer;
|
||||||
use crate::types::RadioLink;
|
use crate::types::RadioLink;
|
||||||
use crate::types::RegularLink;
|
use crate::types::RegularLink;
|
||||||
use crate::types::Section;
|
use crate::types::Section;
|
||||||
|
use crate::types::SrcBlock;
|
||||||
use crate::types::StrikeThrough;
|
use crate::types::StrikeThrough;
|
||||||
|
use crate::types::Table;
|
||||||
|
use crate::types::TableCell;
|
||||||
|
use crate::types::TableRow;
|
||||||
use crate::types::Underline;
|
use crate::types::Underline;
|
||||||
use crate::types::Verbatim;
|
use crate::types::Verbatim;
|
||||||
|
use crate::types::VerseBlock;
|
||||||
|
|
||||||
/// Iterator over the AST nodes contained within the starting node.
|
/// Iterator over the AST nodes contained within the starting node.
|
||||||
///
|
///
|
||||||
@ -37,26 +60,28 @@ pub enum AstNodeIter<'r, 's> {
|
|||||||
Paragraph(ParagraphIter<'r, 's>),
|
Paragraph(ParagraphIter<'r, 's>),
|
||||||
PlainList(PlainListIter<'r, 's>),
|
PlainList(PlainListIter<'r, 's>),
|
||||||
PlainListItem(PlainListItemIter<'r, 's>),
|
PlainListItem(PlainListItemIter<'r, 's>),
|
||||||
// GreaterBlock(GreaterBlockIter<'r, 's>),
|
GreaterBlock(GreaterBlockIter<'r, 's>),
|
||||||
// DynamicBlock(DynamicBlockIter<'r, 's>),
|
DynamicBlock(DynamicBlockIter<'r, 's>),
|
||||||
// FootnoteDefinition(FootnoteDefinitionIter<'r, 's>),
|
FootnoteDefinition(FootnoteDefinitionIter<'r, 's>),
|
||||||
// Comment(CommentIter<'r, 's>),
|
Comment(CommentIter<'r, 's>),
|
||||||
// Drawer(DrawerIter<'r, 's>),
|
Drawer(DrawerIter<'r, 's>),
|
||||||
// PropertyDrawer(PropertyDrawerIter<'r, 's>),
|
PropertyDrawer(PropertyDrawerIter<'r, 's>),
|
||||||
// Table(TableIter<'r, 's>),
|
NodeProperty(NodePropertyIter<'r, 's>),
|
||||||
// VerseBlock(VerseBlockIter<'r, 's>),
|
Table(TableIter<'r, 's>),
|
||||||
// CommentBlock(CommentBlockIter<'r, 's>),
|
TableRow(TableRowIter<'r, 's>),
|
||||||
// ExampleBlock(ExampleBlockIter<'r, 's>),
|
VerseBlock(VerseBlockIter<'r, 's>),
|
||||||
// ExportBlock(ExportBlockIter<'r, 's>),
|
CommentBlock(CommentBlockIter<'r, 's>),
|
||||||
// SrcBlock(SrcBlockIter<'r, 's>),
|
ExampleBlock(ExampleBlockIter<'r, 's>),
|
||||||
// Clock(ClockIter<'r, 's>),
|
ExportBlock(ExportBlockIter<'r, 's>),
|
||||||
// DiarySexp(DiarySexpIter<'r, 's>),
|
SrcBlock(SrcBlockIter<'r, 's>),
|
||||||
// Planning(PlanningIter<'r, 's>),
|
Clock(ClockIter<'r, 's>),
|
||||||
// FixedWidthArea(FixedWidthAreaIter<'r, 's>),
|
DiarySexp(DiarySexpIter<'r, 's>),
|
||||||
// HorizontalRule(HorizontalRuleIter<'r, 's>),
|
Planning(PlanningIter<'r, 's>),
|
||||||
// Keyword(KeywordIter<'r, 's>),
|
FixedWidthArea(FixedWidthAreaIter<'r, 's>),
|
||||||
// BabelCall(BabelCallIter<'r, 's>),
|
HorizontalRule(HorizontalRuleIter<'r, 's>),
|
||||||
// LatexEnvironment(LatexEnvironmentIter<'r, 's>),
|
Keyword(KeywordIter<'r, 's>),
|
||||||
|
BabelCall(BabelCallIter<'r, 's>),
|
||||||
|
LatexEnvironment(LatexEnvironmentIter<'r, 's>),
|
||||||
// Objects
|
// Objects
|
||||||
Bold(BoldIter<'r, 's>),
|
Bold(BoldIter<'r, 's>),
|
||||||
Italic(ItalicIter<'r, 's>),
|
Italic(ItalicIter<'r, 's>),
|
||||||
@ -84,6 +109,7 @@ pub enum AstNodeIter<'r, 's> {
|
|||||||
// StatisticsCookie(StatisticsCookieIter<'r, 's>),
|
// StatisticsCookie(StatisticsCookieIter<'r, 's>),
|
||||||
// Subscript(SubscriptIter<'r, 's>),
|
// Subscript(SubscriptIter<'r, 's>),
|
||||||
// Superscript(SuperscriptIter<'r, 's>),
|
// Superscript(SuperscriptIter<'r, 's>),
|
||||||
|
TableCell(TableCellIter<'r, 's>),
|
||||||
// Timestamp(TimestampIter<'r, 's>),
|
// Timestamp(TimestampIter<'r, 's>),
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,6 +148,52 @@ multi_field_iter!(
|
|||||||
children,
|
children,
|
||||||
std::slice::Iter<'r, Element<'s>>
|
std::slice::Iter<'r, Element<'s>>
|
||||||
);
|
);
|
||||||
|
children_iter!(
|
||||||
|
GreaterBlock<'s>,
|
||||||
|
GreaterBlockIter,
|
||||||
|
std::slice::Iter<'r, Element<'s>>
|
||||||
|
);
|
||||||
|
children_iter!(
|
||||||
|
DynamicBlock<'s>,
|
||||||
|
DynamicBlockIter,
|
||||||
|
std::slice::Iter<'r, Element<'s>>
|
||||||
|
);
|
||||||
|
children_iter!(
|
||||||
|
FootnoteDefinition<'s>,
|
||||||
|
FootnoteDefinitionIter,
|
||||||
|
std::slice::Iter<'r, Element<'s>>
|
||||||
|
);
|
||||||
|
empty_iter!(Comment<'s>, CommentIter);
|
||||||
|
children_iter!(Drawer<'s>, DrawerIter, std::slice::Iter<'r, Element<'s>>);
|
||||||
|
children_iter!(
|
||||||
|
PropertyDrawer<'s>,
|
||||||
|
PropertyDrawerIter,
|
||||||
|
std::slice::Iter<'r, NodeProperty<'s>>
|
||||||
|
);
|
||||||
|
empty_iter!(NodeProperty<'s>, NodePropertyIter);
|
||||||
|
children_iter!(Table<'s>, TableIter, std::slice::Iter<'r, TableRow<'s>>);
|
||||||
|
children_iter!(
|
||||||
|
TableRow<'s>,
|
||||||
|
TableRowIter,
|
||||||
|
std::slice::Iter<'r, TableCell<'s>>
|
||||||
|
);
|
||||||
|
children_iter!(
|
||||||
|
VerseBlock<'s>,
|
||||||
|
VerseBlockIter,
|
||||||
|
std::slice::Iter<'r, Object<'s>>
|
||||||
|
);
|
||||||
|
empty_iter!(CommentBlock<'s>, CommentBlockIter);
|
||||||
|
empty_iter!(ExampleBlock<'s>, ExampleBlockIter);
|
||||||
|
empty_iter!(ExportBlock<'s>, ExportBlockIter);
|
||||||
|
empty_iter!(SrcBlock<'s>, SrcBlockIter);
|
||||||
|
empty_iter!(Clock<'s>, ClockIter);
|
||||||
|
empty_iter!(DiarySexp<'s>, DiarySexpIter);
|
||||||
|
empty_iter!(Planning<'s>, PlanningIter);
|
||||||
|
empty_iter!(FixedWidthArea<'s>, FixedWidthAreaIter);
|
||||||
|
empty_iter!(HorizontalRule<'s>, HorizontalRuleIter);
|
||||||
|
empty_iter!(Keyword<'s>, KeywordIter);
|
||||||
|
empty_iter!(BabelCall<'s>, BabelCallIter);
|
||||||
|
empty_iter!(LatexEnvironment<'s>, LatexEnvironmentIter);
|
||||||
children_iter!(Bold<'s>, BoldIter, std::slice::Iter<'r, Object<'s>>);
|
children_iter!(Bold<'s>, BoldIter, std::slice::Iter<'r, Object<'s>>);
|
||||||
children_iter!(Italic<'s>, ItalicIter, std::slice::Iter<'r, Object<'s>>);
|
children_iter!(Italic<'s>, ItalicIter, std::slice::Iter<'r, Object<'s>>);
|
||||||
children_iter!(
|
children_iter!(
|
||||||
@ -143,3 +215,8 @@ children_iter!(
|
|||||||
RadioLinkIter,
|
RadioLinkIter,
|
||||||
std::slice::Iter<'r, Object<'s>>
|
std::slice::Iter<'r, Object<'s>>
|
||||||
);
|
);
|
||||||
|
children_iter!(
|
||||||
|
TableCell<'s>,
|
||||||
|
TableCellIter,
|
||||||
|
std::slice::Iter<'r, Object<'s>>
|
||||||
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user