Skip to main content

SyntaxNode

Struct SyntaxNode 

Source
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

Source

pub fn new( kind: SyntaxKind, range: TextRange, children: Vec<SyntaxElement>, ) -> Self

Creates a new node with the given kind, range, and children.

Source

pub fn kind(&self) -> SyntaxKind

The kind of this node.

Source

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}
Source

pub fn children(&self) -> &[SyntaxElement]

The ordered child elements.

Source

pub fn children_mut(&mut self) -> &mut [SyntaxElement]

Mutable access to the ordered child elements.

Source

pub fn push_child(&mut self, child: SyntaxElement)

Append a child element.

Source

pub fn extend_range_to(&mut self, end: TextSize)

Extend this node’s range end to end.

Source

pub fn find_token(&self, kind: SyntaxKind) -> Option<&SyntaxToken>

Find the first token child with the given kind.

Source

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.

Source

pub fn tokens(&self, kind: SyntaxKind) -> impl Iterator<Item = &SyntaxToken>

Iterate over all token children with the given kind.

Source

pub fn find_node(&self, kind: SyntaxKind) -> Option<&SyntaxNode>

Find the first child node with the given kind.

Source

pub fn nodes(&self, kind: SyntaxKind) -> impl Iterator<Item = &SyntaxNode>

Iterate over all child nodes with the given kind.

Source

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

Source§

fn clone(&self) -> SyntaxNode

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SyntaxNode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for SyntaxNode

Source§

fn eq(&self, other: &SyntaxNode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for SyntaxNode

Source§

impl StructuralPartialEq for SyntaxNode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.