Skip to main content

JuliaExpr

Enum JuliaExpr 

Source
pub enum JuliaExpr {
Show 37 variants IntLit(i64), UIntLit(u64), FloatLit(f64), BoolLit(bool), StringLit(String), CharLit(char), Nothing, Var(String), Field(Box<JuliaExpr>, String), Index(Box<JuliaExpr>, Vec<JuliaExpr>), Slice(Box<JuliaExpr>, Option<Box<JuliaExpr>>, Option<Box<JuliaExpr>>), Call(Box<JuliaExpr>, Vec<JuliaExpr>), CallKw(Box<JuliaExpr>, Vec<JuliaExpr>, Vec<(String, JuliaExpr)>), Broadcast(Box<JuliaExpr>, Vec<JuliaExpr>), BinOp(String, Box<JuliaExpr>, Box<JuliaExpr>), UnOp(String, Box<JuliaExpr>), CompareChain(Vec<JuliaExpr>, Vec<String>), ArrayLit(Vec<JuliaExpr>), MatrixLit(Vec<Vec<JuliaExpr>>), Range(Box<JuliaExpr>, Option<Box<JuliaExpr>>, Box<JuliaExpr>), TupleLit(Vec<JuliaExpr>), ArrayComp(Box<JuliaExpr>, Vec<(String, JuliaExpr)>, Option<Box<JuliaExpr>>), Generator(Box<JuliaExpr>, Vec<(String, JuliaExpr)>, Option<Box<JuliaExpr>>), DictComp(Box<JuliaExpr>, Box<JuliaExpr>, Vec<(String, JuliaExpr)>), Lambda(Vec<JuliaParam>, Box<JuliaExpr>), DoBlock(Box<JuliaExpr>, Vec<String>, Vec<JuliaStmt>), Ternary(Box<JuliaExpr>, Box<JuliaExpr>, Box<JuliaExpr>), TypeAssert(Box<JuliaExpr>, JuliaType), Convert(JuliaType, Box<JuliaExpr>), IsA(Box<JuliaExpr>, JuliaType), TypeOf(Box<JuliaExpr>), Macro(String, Vec<JuliaExpr>), Interpolated(Vec<JuliaStringPart>), Splat(Box<JuliaExpr>), NamedArg(String, Box<JuliaExpr>), Pair(Box<JuliaExpr>, Box<JuliaExpr>), Block(Vec<JuliaStmt>),
}
Expand description

Julia expression AST node.

Variants§

§

IntLit(i64)

Integer literal: 42

§

UIntLit(u64)

Unsigned integer literal: 0x2a

§

FloatLit(f64)

Float literal: 3.14

§

BoolLit(bool)

Boolean literal: true / false

§

StringLit(String)

String literal: "hello"

§

CharLit(char)

Char literal: 'a'

§

Nothing

Nothing literal: nothing

§

Var(String)

Variable reference: x

§

Field(Box<JuliaExpr>, String)

Field access: obj.field

§

Index(Box<JuliaExpr>, Vec<JuliaExpr>)

Index access: arr[i]

§

Slice(Box<JuliaExpr>, Option<Box<JuliaExpr>>, Option<Box<JuliaExpr>>)

Slice: arr[begin:end]

§

Call(Box<JuliaExpr>, Vec<JuliaExpr>)

Function call: f(args...)

§

CallKw(Box<JuliaExpr>, Vec<JuliaExpr>, Vec<(String, JuliaExpr)>)

Keyword arguments call: f(a; key=val, ...)

§

Broadcast(Box<JuliaExpr>, Vec<JuliaExpr>)

Broadcasting call: f.(args...)

§

BinOp(String, Box<JuliaExpr>, Box<JuliaExpr>)

Binary operation: a + b

§

UnOp(String, Box<JuliaExpr>)

Unary operation: -x

§

CompareChain(Vec<JuliaExpr>, Vec<String>)

Comparison chain: a < b <= c

§

ArrayLit(Vec<JuliaExpr>)

Array literal: [1, 2, 3]

§

MatrixLit(Vec<Vec<JuliaExpr>>)

Matrix literal (rows separated by semicolons): [1 2; 3 4]

§

Range(Box<JuliaExpr>, Option<Box<JuliaExpr>>, Box<JuliaExpr>)

Range: 1:10 or 1:2:10

§

TupleLit(Vec<JuliaExpr>)

Tuple: (a, b, c)

§

ArrayComp(Box<JuliaExpr>, Vec<(String, JuliaExpr)>, Option<Box<JuliaExpr>>)

Array comprehension: [f(x) for x in xs]

§

Generator(Box<JuliaExpr>, Vec<(String, JuliaExpr)>, Option<Box<JuliaExpr>>)

Generator expression: (f(x) for x in xs)

§

DictComp(Box<JuliaExpr>, Box<JuliaExpr>, Vec<(String, JuliaExpr)>)

Dict comprehension: Dict(k => v for (k,v) in pairs)

§

Lambda(Vec<JuliaParam>, Box<JuliaExpr>)

Anonymous function: x -> x + 1

§

DoBlock(Box<JuliaExpr>, Vec<String>, Vec<JuliaStmt>)

Short anonymous function with do block is represented as Lambda

§

Ternary(Box<JuliaExpr>, Box<JuliaExpr>, Box<JuliaExpr>)

Ternary: cond ? then : else

§

TypeAssert(Box<JuliaExpr>, JuliaType)

Type assertion: x::T

§

Convert(JuliaType, Box<JuliaExpr>)

Type conversion: convert(T, x)

§

IsA(Box<JuliaExpr>, JuliaType)

isa check: x isa T

§

TypeOf(Box<JuliaExpr>)

typeof call: typeof(x)

§

Macro(String, Vec<JuliaExpr>)

Macro call: @macro args...

§

Interpolated(Vec<JuliaStringPart>)

Interpolated string: "text $(expr) more"

§

Splat(Box<JuliaExpr>)

Splat: args...

§

NamedArg(String, Box<JuliaExpr>)

Named argument pair: key = value

§

Pair(Box<JuliaExpr>, Box<JuliaExpr>)

Pair (for Dict): k => v

§

Block(Vec<JuliaStmt>)

Block expression: begin ... end

Trait Implementations§

Source§

impl Clone for JuliaExpr

Source§

fn clone(&self) -> JuliaExpr

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for JuliaExpr

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for JuliaExpr

Source§

fn eq(&self, other: &JuliaExpr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for JuliaExpr

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.