Struct Parse

Source
pub struct Parse<T> { /* private fields */ }
Expand description

A utility struct for managing the result of a parser job

Implementations§

Source§

impl<T> Parse<T>

Source

pub fn new(green: GreenNode, errors: Vec<ParserError>) -> Parse<T>

Source

pub fn green(self) -> GreenNode

Consume the parse result and get its green node. This is useful for multithreaded accesses to the tree as syntax nodes are not sync but green nodes are.

Source

pub fn syntax(&self) -> SyntaxNode

The syntax node represented by this Parse result

use rslint_parser::{parse_text, ast::IfStmt, SyntaxNodeExt, SyntaxKind, AstNode};

let parse = parse_text(
"
    if (a > 5) {
        /* something */
    }
", 0);

// The first child of the root syntax node (Script) is the if statement.
let if_stmt = parse.syntax().first_child().unwrap();

assert_eq!(if_stmt.kind(), SyntaxKind::IF_STMT);

// The if statement node is untyped, we must first cast it to a typed ast node
// to be able to get properties of it in an easy way.
assert_eq!(if_stmt.to::<IfStmt>().condition().unwrap().syntax().text(), "(a > 5)");
Source

pub fn errors(&self) -> &[ParserError]

Get the errors which ocurred when parsing

Source§

impl<T: AstNode> Parse<T>

Source

pub fn to_syntax(self) -> Parse<SyntaxNode>

Convert the result to an untyped SyntaxNode parse.

Source

pub fn tree(&self) -> T

Convert this parse result into a typed AST node.

§Panics

Panics if the node represented by this parse result mismatches.

Source

pub fn try_tree(&self) -> Option<T>

Try to convert this parse’s untyped syntax node into an AST node.

Source

pub fn ok(self) -> Result<T, Vec<ParserError>>

Convert this parse into a result

Trait Implementations§

Source§

impl<T> Clone for Parse<T>

Source§

fn clone(&self) -> Parse<T>

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<T: Debug> Debug for Parse<T>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for Parse<T>

§

impl<T> RefUnwindSafe for Parse<T>

§

impl<T> Send for Parse<T>

§

impl<T> Sync for Parse<T>

§

impl<T> Unpin for Parse<T>

§

impl<T> UnwindSafe for Parse<T>

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> Erasable for T

Source§

const ACK_1_1_0: bool = true

Whether this implementor has acknowledged the 1.1.0 update to unerase’s documented implementation requirements. Read more
Source§

unsafe fn unerase(this: NonNull<Erased>) -> NonNull<T>

Unerase this erased pointer. Read more
Source§

fn erase(this: NonNull<Self>) -> NonNull<Erased>

Turn this erasable pointer into an erased pointer. 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.