Enum aftermath::Expr

source ·
pub enum Expr<'arena> {
    RealNumber {
        val: f64,
    },
    ImaginaryNumber {
        val: f64,
    },
    ComplexNumber {
        val: Complex64,
    },
    Binding {
        name: &'arena mut str,
    },
    FunctionCall {
        ident: &'arena mut str,
        args: Vec<'arena, &'arena mut Expr<'arena>>,
    },
    Operator {
        op: Operator,
        rhs: &'arena mut Expr<'arena>,
        lhs: &'arena mut Expr<'arena>,
    },
}
Expand description

A token Tree representing a whole Expression It lives inside an Arena

Variants§

§

RealNumber

Fields

§val: f64

The value of the real number

A real number

§

ImaginaryNumber

Fields

§val: f64

The value of the imaginary number, without the i unit

An imaginary number

§

ComplexNumber

Fields

§val: Complex64

The value of the complex number’s node

Complex number

§

Binding

Fields

§name: &'arena mut str

The name of the variable

A variable

§

FunctionCall

Fields

§ident: &'arena mut str

Name of the function

§args: Vec<'arena, &'arena mut Expr<'arena>>

List of argument in order they appeard

A function call, with an variable amount of arguments

§

Operator

Fields

§op: Operator

The operator

§rhs: &'arena mut Expr<'arena>

Left side of the operation

§lhs: &'arena mut Expr<'arena>

Right side of the operation

An operation

Implementations§

Clone an AST with another backing arena

Create an AST from an input str

Errors

This will error on any wrong input

Trait Implementations§

Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
This method tests for self and other values to be equal, and is used by ==.
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.