pub struct SyntaxNode { /* private fields */ }Expand description
A branch node in the syntax tree.
Holds an ordered list of child SyntaxElements (nodes or tokens).
Implementations§
Source§impl SyntaxNode
impl SyntaxNode
Sourcepub fn new(
kind: SyntaxKind,
range: TextRange,
children: Vec<SyntaxElement>,
) -> Self
pub fn new( kind: SyntaxKind, range: TextRange, children: Vec<SyntaxElement>, ) -> Self
Creates a new node with the given kind, range, and children.
Sourcepub fn kind(&self) -> SyntaxKind
pub fn kind(&self) -> SyntaxKind
The kind of this node.
Sourcepub fn range(&self) -> &TextRange
pub fn range(&self) -> &TextRange
The source range of this node.
Examples found in repository?
examples/parse_numpy.rs (line 48)
7fn main() {
8 let docstring = r#"
9Calculate the area of a rectangle.
10
11This function takes the width and height of a rectangle
12and returns its area.
13
14Parameters
15----------
16width : float
17 The width of the rectangle.
18height : float
19 The height of the rectangle.
20
21Returns
22-------
23float
24 The area of the rectangle.
25
26Raises
27------
28ValueError
29 If width or height is negative.
30
31Examples
32--------
33>>> calculate_area(5.0, 3.0)
3415.0
35"#;
36
37 let parsed = parse_numpy(docstring);
38 let doc = NumPyDocstring::cast(parsed.root()).unwrap();
39
40 println!("╔══════════════════════════════════════════════════╗");
41 println!("║ NumPy-style Docstring Example ║");
42 println!("╚══════════════════════════════════════════════════╝");
43
44 println!();
45
46 // Display: raw source text
47 println!("── raw text ────────────────────────────────────────");
48 println!("{}", doc.syntax().range().source_text(parsed.source()));
49
50 println!();
51
52 // pretty_print: structured AST
53 println!("── parsed AST ──────────────────────────────────────");
54 print!("{}", parsed.pretty_print());
55}Sourcepub fn children(&self) -> &[SyntaxElement]
pub fn children(&self) -> &[SyntaxElement]
The ordered child elements.
Sourcepub fn children_mut(&mut self) -> &mut [SyntaxElement]
pub fn children_mut(&mut self) -> &mut [SyntaxElement]
Mutable access to the ordered child elements.
Sourcepub fn push_child(&mut self, child: SyntaxElement)
pub fn push_child(&mut self, child: SyntaxElement)
Append a child element.
Sourcepub fn extend_range_to(&mut self, end: TextSize)
pub fn extend_range_to(&mut self, end: TextSize)
Extend this node’s range end to end.
Sourcepub fn find_token(&self, kind: SyntaxKind) -> Option<&SyntaxToken>
pub fn find_token(&self, kind: SyntaxKind) -> Option<&SyntaxToken>
Find the first token child with the given kind.
Sourcepub fn required_token(&self, kind: SyntaxKind) -> &SyntaxToken
pub fn required_token(&self, kind: SyntaxKind) -> &SyntaxToken
Return the first token child with the given kind.
§Panics
Panics if no such token exists. This should only be used for tokens that the parser guarantees to be present.
Sourcepub fn tokens(&self, kind: SyntaxKind) -> impl Iterator<Item = &SyntaxToken>
pub fn tokens(&self, kind: SyntaxKind) -> impl Iterator<Item = &SyntaxToken>
Iterate over all token children with the given kind.
Sourcepub fn find_node(&self, kind: SyntaxKind) -> Option<&SyntaxNode>
pub fn find_node(&self, kind: SyntaxKind) -> Option<&SyntaxNode>
Find the first child node with the given kind.
Sourcepub fn nodes(&self, kind: SyntaxKind) -> impl Iterator<Item = &SyntaxNode>
pub fn nodes(&self, kind: SyntaxKind) -> impl Iterator<Item = &SyntaxNode>
Iterate over all child nodes with the given kind.
Sourcepub fn pretty_fmt(&self, src: &str, indent: usize, out: &mut String)
pub fn pretty_fmt(&self, src: &str, indent: usize, out: &mut String)
Write a pretty-printed tree representation.
Trait Implementations§
Source§impl Clone for SyntaxNode
impl Clone for SyntaxNode
Source§fn clone(&self) -> SyntaxNode
fn clone(&self) -> SyntaxNode
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SyntaxNode
impl Debug for SyntaxNode
Source§impl PartialEq for SyntaxNode
impl PartialEq for SyntaxNode
impl Eq for SyntaxNode
impl StructuralPartialEq for SyntaxNode
Auto Trait Implementations§
impl Freeze for SyntaxNode
impl RefUnwindSafe for SyntaxNode
impl Send for SyntaxNode
impl Sync for SyntaxNode
impl Unpin for SyntaxNode
impl UnsafeUnpin for SyntaxNode
impl UnwindSafe for SyntaxNode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more