[][src]Enum mtots_core::ExprDesc

pub enum ExprDesc {
    Nil,
    Bool(bool),
    Number(f64),
    String(RcStr),
    Name(RcStr),
    List(Vec<Expr>),
    Map(Vec<(Expr, Expr)>),
    Parentheses(Box<Expr>),
    Block(Vec<Expr>),
    Switch(Box<Expr>, Vec<(Expr, Expr)>, Option<Box<Expr>>),
    If(Vec<(Expr, Expr)>, Option<Box<Expr>>),
    For(AssignTargetBox<Expr>, Box<Expr>),
    While(Box<Expr>, Box<Expr>),
    Binop(BinopBox<Expr>, Box<Expr>),
    LogicalBinop(LogicalBinopBox<Expr>, Box<Expr>),
    Unop(UnopBox<Expr>),
    Subscript(Box<Expr>, Box<Expr>),
    Slice(Box<Expr>, Option<Box<Expr>>, Option<Box<Expr>>),
    Attr(Box<Expr>, RcStr),
    CallFunction(Box<Expr>, Args),
    CallMethod(Box<Expr>, RcStrArgs),
    Assign(AssignTargetBox<Expr>),
    AugAssign(AssignTargetBinopBox<Expr>),
    NonlocalAssign(RcStrBox<Expr>),
    Nonlocal(Vec<RcStr>),
    New(Option<RcStr>, Vec<(RcStr, Expr)>),
    Del(RcStr),
    Yield(Box<Expr>),
    Return(Option<Box<Expr>>),
    Import(RcStr),
    BreakPoint,
    AssignDoc(Box<Expr>, RcStrRcStr),
    Function {
        is_generator: bool,
        name: Option<RcStr>,
        params: ArgSpec,
        docstr: Option<RcStr>,
        body: Box<Expr>,
        varspec: Option<VarSpec>,
    },
    Class {
        name: RcStr,
        bases: Vec<Expr>,
        docstr: Option<RcStr>,
        methods: Vec<(RcStr, Expr)>,
        static_methods: Vec<(RcStr, Expr)>,
        hidden_name: Option<RcStr>,
    },
}

Variants

Nil
Bool(bool)
Number(f64)
String(RcStr)
Name(RcStr)
List(Vec<Expr>)
Map(Vec<(Expr, Expr)>)
Parentheses(Box<Expr>)
Block(Vec<Expr>)
Switch(Box<Expr>, Vec<(Expr, Expr)>, Option<Box<Expr>>)
While(Box<Expr>, Box<Expr>)
Binop(BinopBox<Expr>, Box<Expr>)
LogicalBinop(LogicalBinopBox<Expr>, Box<Expr>)
Unop(UnopBox<Expr>)
Subscript(Box<Expr>, Box<Expr>)
Slice(Box<Expr>, Option<Box<Expr>>, Option<Box<Expr>>)
Attr(Box<Expr>, RcStr)
CallFunction(Box<Expr>, Args)
CallMethod(Box<Expr>, RcStrArgs)
Assign(AssignTargetBox<Expr>)
AugAssign(AssignTargetBinopBox<Expr>)
NonlocalAssign(RcStrBox<Expr>)
Nonlocal(Vec<RcStr>)
Del(RcStr)
Yield(Box<Expr>)
Return(Option<Box<Expr>>)
Import(RcStr)
BreakPoint
AssignDoc(Box<Expr>, RcStrRcStr)

AssignDoc at runtime is more or less a nop. However, it attaches docstrings to field assignments (the first 'Expr' parameter should always be an Assign)

Function

Fields of Function

is_generator: boolname: Option<RcStr>params: ArgSpecdocstr: Option<RcStr>body: Box<Expr>varspec: Option<VarSpec>
Class

Fields of Class

name: RcStrbases: Vec<Expr>docstr: Option<RcStr>methods: Vec<(RcStr, Expr)>static_methods: Vec<(RcStr, Expr)>hidden_name: Option<RcStr>

The hidden name for a class is computed during annotation. The hidden name is used by methods to refer to the class that they belong to

Trait Implementations

impl Debug for ExprDesc[src]

Auto Trait Implementations

impl !RefUnwindSafe for ExprDesc

impl !Send for ExprDesc

impl !Sync for ExprDesc

impl Unpin for ExprDesc

impl !UnwindSafe for ExprDesc

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.