pub enum ExprKind {
Show 41 variants
Int(i64),
Float(f64),
Unit {
value: String,
unit: String,
},
Str(Vec<StrSeg>),
RawStr(String),
Char(char),
Text(String),
Content {
kind: String,
id: String,
},
Tag(String),
Bool(bool),
Null,
Ident(String),
This,
Base,
It,
Declare {
ty: Option<Type>,
name: Name,
mutable: bool,
},
TypeOf(Type),
NameOf(Box<Expr>),
Default(Option<Type>),
Mc(VersionCond),
Tuple(Vec<Expr>),
Collection(Vec<Element>),
New {
ty: Option<Type>,
args: Option<Vec<Arg>>,
init: Vec<(Name, Expr)>,
},
Lambda {
params: Vec<LambdaParam>,
body: LambdaBody,
},
Unary {
op: UnOp,
expr: Box<Expr>,
},
Cast {
ty: Type,
expr: Box<Expr>,
},
Binary {
op: BinOp,
left: Box<Expr>,
right: Box<Expr>,
},
Range {
from: Box<Expr>,
to: Box<Expr>,
inclusive: bool,
},
Is {
expr: Box<Expr>,
pattern: Box<Pattern>,
},
As {
expr: Box<Expr>,
ty: Type,
},
Has {
expr: Box<Expr>,
ty: Type,
},
Conditional {
cond: Box<Expr>,
then: Box<Expr>,
otherwise: Box<Expr>,
},
Switch {
expr: Box<Expr>,
arms: Vec<Arm>,
},
Call {
callee: Box<Expr>,
args: Vec<Arg>,
},
Index {
expr: Box<Expr>,
index: Box<Expr>,
},
TypeArgs {
expr: Box<Expr>,
args: Vec<Type>,
},
Member {
expr: Box<Expr>,
name: Name,
safe: bool,
},
Macro {
name: Name,
args: Vec<Expr>,
},
Move(Box<Expr>),
NotNull(Box<Expr>),
Error,
}Variants§
Int(i64)
Float(f64)
Unit
Str(Vec<StrSeg>)
RawStr(String)
Char(char)
Text(String)
Content
Tag(String)
Bool(bool)
Null
Ident(String)
This
Base
base: this as its base class (base.Tick()).
It
Declare
out let x, out i32 x: a local declared where a method gives it.
TypeOf(Type)
typeof(T): its System.Type.
NameOf(Box<Expr>)
nameof(x.Y): its last name, as a string.
Default(Option<Type>)
default, default(T): the type’s zero value.
Mc(VersionCond)
mc >= 1.21: the running game’s version.
Tuple(Vec<Expr>)
Collection(Vec<Element>)
[a, b], [k => v], [..xs]: a list, a set or a map by its target.
New
new Pos(1, 2, 3), new(4), new Battery { Count = 2 }.
Lambda
x => …, (a, b) => …, { … } after a call (it its parameter).
Unary
Cast
(i32)x.
Binary
Range
Is
x is Monster m, x is not null.
As
x as T: null when it isn’t one.
Has
x has Charge.
Conditional
c ? a : b.
Switch
x switch { … }.
Call
Index
TypeArgs
f<T, U> before a call: the type arguments.
Member
x.Name, x?.Name.
Macro
panic!(…): a built-in macro’s call (a declared macro’s is
expanded before the parser sees it).
Move(Box<Expr>)
move x: x handed on, gone after.
NotNull(Box<Expr>)
x!: asserted not null.
Error
What couldn’t be parsed (reported already).