Enum ludtwig_parser::ast::SyntaxNode [−][src]
The base enum for each syntax element in a document. Each variant represents some sort of structured representation of the document syntax. This is the foundation for the AST (abstract syntax tree) that is produced by the parser.
Variants
Root(Vec<SyntaxNode>)
The root of the AST which contains other SyntaxNode values.
Tag(Tag)
Plain old Html tag that can have any value as a name (even vue components for example).
It may also have attributes.
It can also have children which are only a list of SyntaxNode instances.
For example <h2 class="bold">...</h2>
Plain(Plain)
Basically only plain text but does only represent text without line break characters or indentation.
Some sort of whitespace (can be anything from spaces to tabs to line breaks). Multiple sequential forms of whitespace will always result in only one instance of this.
HtmlComment(HtmlComment)
Comments in Html that look like <!-- some comment -->
OutputExpression(OutputExpression)
Some expression to output something like
twig: {{ my_counter|e }}
(can be php)
vue: {{ myCounter.count }}
(can be javascript)
TwigComment(TwigComment)
Comment in twig syntax: {# some comment #}
TwigStatement(TwigStatement)
Some execute statement that has no children / has no closing syntax.
Examples
{% set foo = 'foo' %}
or {% parent %}
or ...
TwigStructure(TwigStructure<SyntaxNode>)
Some hierarchical twig syntax.
Examples
{% block my_block_name %}...{% endblock %}
Notes
This is preferred over TwigStatement by the parser if it sees special keywords like block
right after the {%
.
Implementations
impl SyntaxNode
[src]
pub fn is_whitespace(&self) -> bool
[src]
impl SyntaxNode
[src]
pub fn context_iter(&self) -> AstContextIterator<'_, SyntaxNode>ⓘNotable traits for AstContextIterator<'a, SyntaxNode>
impl<'a> Iterator for AstContextIterator<'a, SyntaxNode> type Item = (IteratorContext<'a, SyntaxNode>, &'a SyntaxNode);impl<'a> Iterator for AstContextIterator<'a, TagAttribute> type Item = (IteratorContext<'a, TagAttribute>, &'a TagAttribute);
[src]
Notable traits for AstContextIterator<'a, SyntaxNode>
impl<'a> Iterator for AstContextIterator<'a, SyntaxNode> type Item = (IteratorContext<'a, SyntaxNode>, &'a SyntaxNode);impl<'a> Iterator for AstContextIterator<'a, TagAttribute> type Item = (IteratorContext<'a, TagAttribute>, &'a TagAttribute);
Create a borrowing iterator over this &SyntaxNode and all it's children (and their children, ...). It visits in a pre-order tree traversal:
- visits the node itself
- visits all the child nodes
Also each node is visited with a IteratorContext that contains the following information:
- the parent node of the currently visited one.
- the previous node in the tree before the visited one (same depth).
- the after node in the tree that occurs after the visited one (same depth).
pub fn context_attribute_iter(&self) -> AstContextIterator<'_, TagAttribute>ⓘNotable traits for AstContextIterator<'a, SyntaxNode>
impl<'a> Iterator for AstContextIterator<'a, SyntaxNode> type Item = (IteratorContext<'a, SyntaxNode>, &'a SyntaxNode);impl<'a> Iterator for AstContextIterator<'a, TagAttribute> type Item = (IteratorContext<'a, TagAttribute>, &'a TagAttribute);
[src]
Notable traits for AstContextIterator<'a, SyntaxNode>
impl<'a> Iterator for AstContextIterator<'a, SyntaxNode> type Item = (IteratorContext<'a, SyntaxNode>, &'a SyntaxNode);impl<'a> Iterator for AstContextIterator<'a, TagAttribute> type Item = (IteratorContext<'a, TagAttribute>, &'a TagAttribute);
Create a borrowing iterator over the &TagAttributes of a &Tag that iterates over all nested attributes with a context. If this &SyntaxNode is not a &Tag it will return an empty iterator.
Also each attribute is visited with a IteratorContext that contains the following information:
- the parent attribute of the currently visited one.
- the previous attribute in the tree before the visited one (same depth).
- the after attribute in the tree that occurs after the visited one (same depth).
impl SyntaxNode
[src]
pub fn iter(&self) -> AstIterator<'_, SyntaxNode>ⓘNotable traits for AstIterator<'a, SyntaxNode>
impl<'a> Iterator for AstIterator<'a, SyntaxNode> type Item = &'a SyntaxNode;impl<'a> Iterator for AstIterator<'a, TagAttribute> type Item = &'a TagAttribute;
[src]
Notable traits for AstIterator<'a, SyntaxNode>
impl<'a> Iterator for AstIterator<'a, SyntaxNode> type Item = &'a SyntaxNode;impl<'a> Iterator for AstIterator<'a, TagAttribute> type Item = &'a TagAttribute;
Create a borrowing iterator over this &SyntaxNode and all it's children (and their children, ...). It visits in a pre-order tree traversal:
- visits the node itself
- visits all the child nodes
pub fn attribute_iter(&self) -> AstIterator<'_, TagAttribute>ⓘNotable traits for AstIterator<'a, SyntaxNode>
impl<'a> Iterator for AstIterator<'a, SyntaxNode> type Item = &'a SyntaxNode;impl<'a> Iterator for AstIterator<'a, TagAttribute> type Item = &'a TagAttribute;
[src]
Notable traits for AstIterator<'a, SyntaxNode>
impl<'a> Iterator for AstIterator<'a, SyntaxNode> type Item = &'a SyntaxNode;impl<'a> Iterator for AstIterator<'a, TagAttribute> type Item = &'a TagAttribute;
Create a borrowing iterator over the &TagAttributes of a &Tag that iterates over all nested attributes. If this &SyntaxNode is not a &Tag it will return an empty iterator.
It visits in a pre-order tree traversal:
- visits the attribute itself
- visits all the child attributes
Trait Implementations
impl Clone for SyntaxNode
[src]
fn clone(&self) -> SyntaxNode
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for SyntaxNode
[src]
impl Eq for SyntaxNode
[src]
impl<'a> IntoIterator for &'a SyntaxNode
[src]
type Item = &'a SyntaxNode
The type of the elements being iterated over.
type IntoIter = AstIterator<'a, SyntaxNode>
Which kind of iterator are we turning this into?
fn into_iter(self) -> Self::IntoIter
[src]
Create a borrowing iterator over this &SyntaxNode and all it's children (and their children, ...). It visits in a pre-order tree traversal:
- visits the node itself
- visits all the child nodes
impl PartialEq<SyntaxNode> for SyntaxNode
[src]
fn eq(&self, other: &SyntaxNode) -> bool
[src]
fn ne(&self, other: &SyntaxNode) -> bool
[src]
impl StructuralEq for SyntaxNode
[src]
impl StructuralPartialEq for SyntaxNode
[src]
Auto Trait Implementations
impl RefUnwindSafe for SyntaxNode
[src]
impl Send for SyntaxNode
[src]
impl Sync for SyntaxNode
[src]
impl Unpin for SyntaxNode
[src]
impl UnwindSafe for SyntaxNode
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Conv for T
impl<T> Conv for T
impl<T> FmtForward for T
pub fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
Self: Binary,
pub fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
Self: Display,
pub fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
Self: LowerExp,
pub fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
Self: LowerHex,
pub fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
Self: Octal,
pub fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
Self: Pointer,
pub fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
Self: UpperExp,
pub fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
Self: UpperHex,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pipe for T where
T: ?Sized,
T: ?Sized,
pub fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
pub fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
R: 'a,
pub fn pipe_ref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self) -> R
) -> R where
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut Self) -> R
) -> R where
R: 'a,
pub fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R where
Self: Borrow<B>,
R: 'a,
B: 'a + ?Sized,
Self: Borrow<B>,
R: 'a,
B: 'a + ?Sized,
pub fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
R: 'a,
B: 'a + ?Sized,
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
R: 'a,
B: 'a + ?Sized,
pub fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
R: 'a,
U: 'a + ?Sized,
Self: AsRef<U>,
R: 'a,
U: 'a + ?Sized,
pub fn pipe_as_mut<'a, U, R>(
&'a mut self,
func: impl FnOnce(&'a mut U) -> R
) -> R where
Self: AsMut<U>,
R: 'a,
U: 'a + ?Sized,
&'a mut self,
func: impl FnOnce(&'a mut U) -> R
) -> R where
Self: AsMut<U>,
R: 'a,
U: 'a + ?Sized,
pub fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
pub fn pipe_deref_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: DerefMut<Target = T> + Deref,
T: 'a + ?Sized,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: DerefMut<Target = T> + Deref,
T: 'a + ?Sized,
R: 'a,
impl<T> Pipe for T
impl<T> PipeAsRef for T
pub fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
Self: AsRef<T>,
T: 'a,
R: 'a,
pub fn pipe_as_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
impl<T> PipeBorrow for T
pub fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
Self: Borrow<T>,
T: 'a,
R: 'a,
pub fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
impl<T> PipeDeref for T
pub fn pipe_deref<'a, R>(
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
pub fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
impl<T> PipeRef for T
pub fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
R: 'a,
pub fn pipe_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
R: 'a,
R: 'a,
impl<T> Tap for T
pub fn tap(self, func: impl FnOnce(&Self)) -> Self
pub fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self
pub fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Self: Borrow<B>,
B: ?Sized,
pub fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Self: BorrowMut<B>,
B: ?Sized,
pub fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Self: AsRef<R>,
R: ?Sized,
pub fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Self: AsMut<R>,
R: ?Sized,
pub fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
Self: Deref<Target = T>,
T: ?Sized,
pub fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
pub fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
pub fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
pub fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Self: Borrow<B>,
B: ?Sized,
pub fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Self: BorrowMut<B>,
B: ?Sized,
pub fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Self: AsRef<R>,
R: ?Sized,
pub fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Self: AsMut<R>,
R: ?Sized,
pub fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
Self: Deref<Target = T>,
T: ?Sized,
pub fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
impl<T> Tap for T
pub fn tap<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
F: FnOnce(&Self) -> R,
pub fn tap_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
F: FnOnce(&Self) -> R,
pub fn tap_mut<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
F: FnOnce(&mut Self) -> R,
pub fn tap_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
F: FnOnce(&mut Self) -> R,
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
U: ?Sized,
pub fn tap_ref<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Self: AsRef<T>,
F: FnOnce(&T) -> R,
pub fn tap_ref_dbg<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Self: AsRef<T>,
F: FnOnce(&T) -> R,
pub fn tap_ref_mut<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
pub fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
U: ?Sized,
pub fn tap_borrow<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Self: Borrow<T>,
F: FnOnce(&T) -> R,
pub fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Self: Borrow<T>,
F: FnOnce(&T) -> R,
pub fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
pub fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
impl<T> TapDeref for T
pub fn tap_deref<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Self: Deref,
F: FnOnce(&Self::Target) -> R,
pub fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Self: Deref,
F: FnOnce(&Self::Target) -> R,
pub fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
pub fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> TryConv for T
impl<T> TryConv for T
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,