[][src]Enum zeta::parser::ast::StatementData

pub enum StatementData {
    Block(Block),
    Module {
        name: Identifier,
        body: Option<Block>,
    },
    Import {
        path: String,
        alias: Option<Identifier>,
    },
    Export(Box<Statement>),
    Use {
        identifier_chain: Vec<Identifier>,
        alias: Option<Identifier>,
    },
    TypeAlias {
        name: Identifier,
        ty: TypeExpression,
    },
    Struct {
        name: Identifier,
        fields: Option<Vec<StructField>>,
    },
    Union {
        name: Identifier,
        fields: Option<Vec<StructField>>,
    },
    Enum {
        name: Identifier,
        backing_ty: Option<TypeExpression>,
        fields: Option<Vec<EnumField>>,
    },
    Sum {
        name: Identifier,
        fields: Option<Vec<StructField>>,
    },
    Impl {
        operand: TypeExpression,
        body: Block,
    },
    Function {
        name: FunctionIdentifier,
        parameters: Vec<FunctionParameter>,
        return_ty: Option<TypeExpression>,
        body: Option<Block>,
    },
    Declaration {
        pattern: Pattern,
        explicit_ty: Option<TypeExpression>,
        initial_value: Option<Expression>,
    },
    Assignment {
        target: Expression,
        value: Expression,
    },
    ModAssignment {
        target: Expression,
        op: OperatorType,
        value: Expression,
    },
    LoopControl {
        ty: LoopControlType,
        label: Option<Identifier>,
    },
    Return(Option<Expression>),
    Conditional(ConditionalBlock),
    Match(MatchBlock),
    For {
        label: Option<Identifier>,
        iter_pattern: Pattern,
        iter: Expression,
        body: Block,
    },
    While {
        label: Option<Identifier>,
        condition: Expression,
        body: Block,
    },
    Loop {
        label: Option<Identifier>,
        body: Block,
        until_condition: Option<Expression>,
    },
    Expression(Expression),
}

Variants

Block(Block)Module

Fields of Module

name: Identifierbody: Option<Block>
Import

Fields of Import

path: Stringalias: Option<Identifier>
Export(Box<Statement>)Use

Fields of Use

identifier_chain: Vec<Identifier>alias: Option<Identifier>
TypeAlias

Fields of TypeAlias

name: Identifierty: TypeExpression
Struct

Fields of Struct

name: Identifierfields: Option<Vec<StructField>>
Union

Fields of Union

name: Identifierfields: Option<Vec<StructField>>
Enum

Fields of Enum

name: Identifierbacking_ty: Option<TypeExpression>fields: Option<Vec<EnumField>>
Sum

Fields of Sum

name: Identifierfields: Option<Vec<StructField>>
Impl

Fields of Impl

operand: TypeExpressionbody: Block
Function

Fields of Function

name: FunctionIdentifierparameters: Vec<FunctionParameter>return_ty: Option<TypeExpression>body: Option<Block>
Declaration

Fields of Declaration

pattern: Patternexplicit_ty: Option<TypeExpression>initial_value: Option<Expression>
Assignment

Fields of Assignment

target: Expressionvalue: Expression
ModAssignment

Fields of ModAssignment

target: Expressionop: OperatorTypevalue: Expression
LoopControl

Fields of LoopControl

ty: LoopControlTypelabel: Option<Identifier>
Return(Option<Expression>)Conditional(ConditionalBlock)Match(MatchBlock)For

Fields of For

label: Option<Identifier>iter_pattern: Patterniter: Expressionbody: Block
While

Fields of While

label: Option<Identifier>condition: Expressionbody: Block
Loop

Fields of Loop

label: Option<Identifier>body: Blockuntil_condition: Option<Expression>
Expression(Expression)

Methods

impl StatementData[src]

pub fn requires_semi(&self) -> bool[src]

pub fn evaluates_to_expression(&self) -> bool[src]

pub fn is_block(&self) -> bool[src]

pub fn is_module(&self) -> bool[src]

pub fn is_import(&self) -> bool[src]

pub fn is_export(&self) -> bool[src]

pub fn is_use(&self) -> bool[src]

pub fn is_type_alias(&self) -> bool[src]

pub fn is_struct(&self) -> bool[src]

pub fn is_union(&self) -> bool[src]

pub fn is_enum(&self) -> bool[src]

pub fn is_sum(&self) -> bool[src]

pub fn is_impl(&self) -> bool[src]

pub fn is_function(&self) -> bool[src]

pub fn is_declaration(&self) -> bool[src]

pub fn is_assignment(&self) -> bool[src]

pub fn is_loop_control(&self) -> bool[src]

pub fn is_return(&self) -> bool[src]

pub fn is_conditional(&self) -> bool[src]

pub fn is_for(&self) -> bool[src]

pub fn is_while(&self) -> bool[src]

pub fn is_loop(&self) -> bool[src]

pub fn is_match(&self) -> bool[src]

pub fn is_expression(&self) -> bool[src]

Trait Implementations

impl Clone for StatementData[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for StatementData[src]

Auto Trait Implementations

Blanket Implementations

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]