[][src]Enum endbasic_core::ast::Statement

pub enum Statement {
    Assignment(VarRefExpr),
    BuiltinCall(StringVec<(Option<Expr>, ArgSep)>),
    If(Vec<(Expr, Vec<Statement>)>),
    While(ExprVec<Statement>),
}

Represents a statement in the program along all data to execute it.

Variants

Assignment(VarRefExpr)

Represents a variable assignment.

The first parameter is the reference to the variable to set. The second parameter is the expression to compute the value for the variable.

BuiltinCall(StringVec<(Option<Expr>, ArgSep)>)

Represents a call to a builtin command such as PRINT.

The first parameter is the name of the builtin. The second parameter is the sequence of arguments to pass to the builtin.

Each argument is represented as an optional expression to evaluate and the separator that was to separate it from the next argument. Because of this, the last argument always carries ArgSep::End as the separator. The reason the expression is optional is to support calls of the form PRINT a, , b.

Represents an IF statement.

The first and only parameter is a sequence containing all the branches of the statement. Each element is a pair of the conditional guard for the branch and the collection of statements in that branch. The final ELSE branch, if present, is also included here and its guard clause is always a true expression.

While(ExprVec<Statement>)

Represents a WHILE statement.

The first parameter is the loop's condition. The second parameter is the collection of statements within the loop.

Trait Implementations

impl Debug for Statement[src]

impl Eq for Statement[src]

impl PartialEq<Statement> for Statement[src]

impl StructuralEq for Statement[src]

impl StructuralPartialEq for Statement[src]

Auto Trait Implementations

Blanket Implementations

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

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

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

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

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.