Skip to main content

Parse

Trait Parse 

Source
pub trait Parse<'source>: Sized {
    // Required method
    fn std_parse(
        input: &mut Parser<'source>,
        recoverable_errors: &mut Vec<Error>,
    ) -> Result<Self, Vec<Error>>;

    // Provided method
    fn parse(input: &mut Parser<'source>) -> ParseResult<Self> { ... }
}
Expand description

Any type that can be parsed from a source of tokens.

Required Methods§

Source

fn std_parse( input: &mut Parser<'source>, recoverable_errors: &mut Vec<Error>, ) -> Result<Self, Vec<Error>>

Parses a value from the given stream of tokens, advancing the stream past the consumed tokens if parsing is successful.

If any recoverable errors are encountered, they should be appended to the given Vec, and parsing should continue as normal. If an unrecoverable error is encountered, parsing should abort with said error.

This function should be used by private functions in the library.

Provided Methods§

Source

fn parse(input: &mut Parser<'source>) -> ParseResult<Self>

Parses a value from the given stream of tokens, advancing the stream past the consumed tokens if parsing is successful.

This function should be used by users of this parser.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'source, D, T> Parse<'source> for Delimited<D, T>
where D: Parse<'source> + Debug, T: Parse<'source> + Debug,

Source§

impl<'source, P, T> Parse<'source> for Surrounded<'source, P, T>
where P: Parse<'source> + Pair, T: Parse<'source>,

Source§

impl<'source> Parse<'source> for Add<'source>

Source§

impl<'source> Parse<'source> for AddAssign<'source>

Source§

impl<'source> Parse<'source> for And<'source>

Source§

impl<'source> Parse<'source> for AndAssign<'source>

Source§

impl<'source> Parse<'source> for ApproxEq<'source>

Source§

impl<'source> Parse<'source> for ApproxNotEq<'source>

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::assign::Assign

Source§

impl<'source> Parse<'source> for cas_parser::parser::token::Assign<'source>

Source§

impl<'source> Parse<'source> for AssignOp

Source§

impl<'source> Parse<'source> for AssignTarget

Source§

impl<'source> Parse<'source> for Atom

Source§

impl<'source> Parse<'source> for Bin<'source>

Source§

impl<'source> Parse<'source> for BinOp

Source§

impl<'source> Parse<'source> for Binary

Source§

impl<'source> Parse<'source> for BitAnd<'source>

Source§

impl<'source> Parse<'source> for BitAndAssign<'source>

Source§

impl<'source> Parse<'source> for BitLeft<'source>

Source§

impl<'source> Parse<'source> for BitLeftAssign<'source>

Source§

impl<'source> Parse<'source> for BitNot<'source>

Source§

impl<'source> Parse<'source> for BitOr<'source>

Source§

impl<'source> Parse<'source> for BitOrAssign<'source>

Source§

impl<'source> Parse<'source> for BitRight<'source>

Source§

impl<'source> Parse<'source> for BitRightAssign<'source>

Source§

impl<'source> Parse<'source> for Block

Source§

impl<'source> Parse<'source> for Boolean<'source>

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::loop_expr::Break

Source§

impl<'source> Parse<'source> for cas_parser::parser::keyword::Break<'source>

Source§

impl<'source> Parse<'source> for Call

Source§

impl<'source> Parse<'source> for CloseCurly<'source>

Source§

impl<'source> Parse<'source> for CloseParen<'source>

Source§

impl<'source> Parse<'source> for CloseSquare<'source>

Source§

impl<'source> Parse<'source> for Comma<'source>

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::loop_expr::Continue

Source§

impl<'source> Parse<'source> for cas_parser::parser::keyword::Continue<'source>

Source§

impl<'source> Parse<'source> for Div<'source>

Source§

impl<'source> Parse<'source> for DivAssign<'source>

Source§

impl<'source> Parse<'source> for Dot<'source>

Source§

impl<'source> Parse<'source> for Else<'source>

Source§

impl<'source> Parse<'source> for Eq<'source>

Source§

impl<'source> Parse<'source> for Exp<'source>

Source§

impl<'source> Parse<'source> for ExpAssign<'source>

Source§

impl<'source> Parse<'source> for Expr

Source§

impl<'source> Parse<'source> for Factorial<'source>

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::for_expr::For

Source§

impl<'source> Parse<'source> for cas_parser::parser::keyword::For<'source>

Source§

impl<'source> Parse<'source> for Greater<'source>

Source§

impl<'source> Parse<'source> for GreaterEq<'source>

Source§

impl<'source> Parse<'source> for Hex<'source>

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::if_expr::If

Source§

impl<'source> Parse<'source> for cas_parser::parser::keyword::If<'source>

Source§

impl<'source> Parse<'source> for In<'source>

Source§

impl<'source> Parse<'source> for Index

Source§

impl<'source> Parse<'source> for Int<'source>

Source§

impl<'source> Parse<'source> for Keyword<'source>

Source§

impl<'source> Parse<'source> for Less<'source>

Source§

impl<'source> Parse<'source> for LessEq<'source>

Source§

impl<'source> Parse<'source> for Let<'source>

Source§

impl<'source> Parse<'source> for LitBool

Source§

impl<'source> Parse<'source> for LitList

Source§

impl<'source> Parse<'source> for LitListRepeat

Source§

impl<'source> Parse<'source> for LitRadix

Source§

impl<'source> Parse<'source> for LitSym

Source§

impl<'source> Parse<'source> for LitUnit

Source§

impl<'source> Parse<'source> for Literal

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::loop_expr::Loop

Source§

impl<'source> Parse<'source> for cas_parser::parser::keyword::Loop<'source>

Source§

impl<'source> Parse<'source> for Mod<'source>

Source§

impl<'source> Parse<'source> for ModAssign<'source>

Source§

impl<'source> Parse<'source> for Mul<'source>

Source§

impl<'source> Parse<'source> for MulAssign<'source>

Source§

impl<'source> Parse<'source> for Name<'source>

Source§

impl<'source> Parse<'source> for NewLine<'source>

Source§

impl<'source> Parse<'source> for Not<'source>

Source§

impl<'source> Parse<'source> for NotEq<'source>

Source§

impl<'source> Parse<'source> for Oct<'source>

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::branch::Of

Source§

impl<'source> Parse<'source> for cas_parser::parser::keyword::Of<'source>

Source§

impl<'source> Parse<'source> for OpenCurly<'source>

Source§

impl<'source> Parse<'source> for OpenParen<'source>

Source§

impl<'source> Parse<'source> for OpenSquare<'source>

Source§

impl<'source> Parse<'source> for Or<'source>

Source§

impl<'source> Parse<'source> for OrAssign<'source>

Source§

impl<'source> Parse<'source> for Param

Source§

impl<'source> Parse<'source> for Paren

Source§

impl<'source> Parse<'source> for Primary

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::product::Product

Source§

impl<'source> Parse<'source> for cas_parser::parser::keyword::Product<'source>

Source§

impl<'source> Parse<'source> for Quote<'source>

Source§

impl<'source> Parse<'source> for Range

Source§

impl<'source> Parse<'source> for RangeClosed<'source>

Source§

impl<'source> Parse<'source> for RangeHalfOpen<'source>

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::return_expr::Return

Source§

impl<'source> Parse<'source> for cas_parser::parser::keyword::Return<'source>

Source§

impl<'source> Parse<'source> for Semicolon<'source>

Source§

impl<'source> Parse<'source> for Stmt

Source§

impl<'source> Parse<'source> for Sub<'source>

Source§

impl<'source> Parse<'source> for SubAssign<'source>

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::sum::Sum

Source§

impl<'source> Parse<'source> for cas_parser::parser::keyword::Sum<'source>

Source§

impl<'source> Parse<'source> for Symbol<'source>

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::branch::Then

Source§

impl<'source> Parse<'source> for cas_parser::parser::keyword::Then<'source>

Source§

impl<'source> Parse<'source> for Unary

Source§

impl<'source> Parse<'source> for UnaryOp

Source§

impl<'source> Parse<'source> for cas_parser::parser::ast::while_expr::While

Source§

impl<'source> Parse<'source> for cas_parser::parser::keyword::While<'source>

Source§

impl<'source> Parse<'source> for Whitespace<'source>