Trait Parse

Source
pub trait Parse {
    type FirstToken: CheckParses;

    // Required methods
    fn parse<'t, I: Iterator<Item = &'t Token> + Clone>(
        input: &mut InputStream<'t, I>,
    ) -> Result<Self, Error>
       where Self: Sized;
    fn get_span(&self) -> Span;
}
Expand description

The main trait for parsing tokens.

Required Associated Types§

Source

type FirstToken: CheckParses

The first token of a structure.

Required Methods§

Source

fn parse<'t, I: Iterator<Item = &'t Token> + Clone>( input: &mut InputStream<'t, I>, ) -> Result<Self, Error>
where Self: Sized,

Parse the tokens into Self.

§Errors

Returns an error if parsing was unsuccessful.

Source

fn get_span(&self) -> Span

Get the span of this node.

Implementations on Foreign Types§

Source§

impl<T: Parse> Parse for Option<T>

Source§

type FirstToken = Maybe<<T as Parse>::FirstToken>

Source§

fn parse<'t, I: Iterator<Item = &'t Token> + Clone>( input: &mut InputStream<'t, I>, ) -> Result<Self, Error>
where Self: Sized,

Source§

fn get_span(&self) -> Span

Source§

impl<T: Parse> Parse for Box<T>

Source§

type FirstToken = <T as Parse>::FirstToken

Source§

fn parse<'r, I: Iterator<Item = &'r Token> + Clone>( input: &mut InputStream<'r, I>, ) -> Result<Self, Error>

Source§

fn get_span(&self) -> Span

Source§

impl<T: Parse> Parse for Vec<T>

Source§

type FirstToken = Maybe<<T as Parse>::FirstToken>

Source§

fn parse<'t, I: Iterator<Item = &'t Token> + Clone>( input: &mut InputStream<'t, I>, ) -> Result<Self, Error>
where Self: Sized,

Source§

fn get_span(&self) -> Span

Source§

impl<T: Parse, U: Parse> Parse for (T, U)

Source§

type FirstToken = <T as Parse>::FirstToken

Source§

fn parse<'t, I: Iterator<Item = &'t Token> + Clone>( input: &mut InputStream<'t, I>, ) -> Result<Self, Error>
where Self: Sized,

Source§

fn get_span(&self) -> Span

Implementors§

Source§

impl Parse for Ident

Source§

impl Parse for NumberLit

Source§

impl Parse for BinaryOperator

Source§

impl Parse for Exponent

Source§

impl Parse for FlagValue

Source§

impl Parse for Name

Source§

impl Parse for PredefinedRuleOperator

Source§

impl Parse for PropertyValue

Source§

impl Parse for RuleOperator

Source§

impl Parse for SimpleExpressionKind

Source§

impl Parse for Statement

Source§

impl Parse for Ampersant

Source§

impl Parse for Asterisk

Source§

impl Parse for At

Source§

impl Parse for Caret

Source§

impl Parse for Colon

Source§

impl Parse for Comma

Source§

impl Parse for Dollar

Source§

impl Parse for Dot

Source§

impl Parse for Eq

Source§

impl Parse for Exclamation

Source§

impl Parse for Gt

Source§

impl Parse for Gteq

Source§

impl Parse for LBrace

Source§

impl Parse for LParen

Source§

impl Parse for LSquare

Source§

impl Parse for Let

Source§

impl Parse for Lt

Source§

impl Parse for Lteq

Source§

impl Parse for Minus

Source§

impl Parse for NamedIdent

Source§

impl Parse for Plus

Source§

impl Parse for Question

Source§

impl Parse for RBrace

Source§

impl Parse for RParen

Source§

impl Parse for RSquare

Source§

impl Parse for Semi

Source§

impl Parse for Slash

Source§

impl Parse for StrLit

Source§

impl Parse for TokInteger

Source§

impl Parse for Vertical

Source§

impl Parse for DisplayProperties

Source§

impl Parse for ExplicitIterator

Source§

impl Parse for Exponentiation

Source§

impl Parse for ExprCall

Source§

impl Parse for ExprParenthesised

Source§

impl Parse for FieldIndex

Source§

impl Parse for FlagName

Source§

impl Parse for FlagSet

Source§

impl Parse for FlagStatement

Source§

impl Parse for InvertedRuleOperator

Source§

impl Parse for LetStatement

Source§

impl Parse for PointCollectionConstructor

Source§

impl Parse for Property

Source§

impl Parse for RationalExponent

Source§

impl Parse for RawString

Source§

impl Parse for RefStatement

Source§

impl Parse for RuleStatement

Source§

impl Parse for SimpleExpression

Source§

impl Parse for VariableDefinition

Source§

impl<T: Parse> Parse for AtLeastOne<T>

Source§

impl<T: Parse> Parse for Displayed<T>

Source§

impl<T: Parse, P: Parse> Parse for Punctuated<T, P>

Source§

impl<const ITER: bool> Parse for Expression<ITER>

Source§

impl<const ITER: bool> Parse for ExprBinop<ITER>

Source§

impl<const ITER: bool> Parse for ImplicitIterator<ITER>