cfgrammar::yacc::ast

Struct ASTWithValidityInfo

source
pub struct ASTWithValidityInfo { /* private fields */ }
Expand description

Contains a GrammarAST structure produced from a grammar source file. As well as any errors which occurred during the construction of the AST.

Implementations§

source§

impl ASTWithValidityInfo

source

pub fn new(yacc_kind: YaccKind, s: &str) -> Self

Parses a source file into an AST, returning an ast and any errors that were encountered during the construction of it. The ASTWithValidityInfo can be then unused to construct a YaccGrammar, which will either produce an Ok(YaccGrammar) or an Err which includes these errors.

source

pub fn ast(&self) -> &GrammarAST

Returns a GrammarAST constructed as the result of parsing a source file. When errors have occurred and is_valid returns false, this AST is the subset of the source file which parsed correctly while not encountering any errors. As such even when an AST is not valid, it will return an AST.

source

pub fn is_valid(&self) -> bool

Returns whether any errors where encountered during the parsing and validation of the AST during it’s construction.

source

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

Returns all errors which were encountered during AST construction.

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> 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, 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.