pub enum NessaExpr {
Show 38 variants
QualifiedName(Location, String, Option<usize>),
Variable(Location, usize, String, Type),
CompiledVariableDefinition(Location, usize, String, Type, Box<NessaExpr>),
CompiledVariableAssignment(Location, usize, String, Type, Box<NessaExpr>),
FunctionCall(Location, usize, Vec<Type>, Vec<NessaExpr>),
CompiledFor(Location, usize, usize, String, Box<NessaExpr>, Vec<NessaExpr>),
DoBlock(Location, Vec<NessaExpr>, Type),
AttributeAccess(Location, Box<NessaExpr>, usize),
AttributeAssignment(Location, Box<NessaExpr>, Box<NessaExpr>, usize),
Break(Location),
Continue(Location),
CompiledLambda(Location, usize, Vec<(String, NessaExpr)>, Vec<(String, Type)>, Type, Vec<NessaExpr>),
Macro(Location, Vec<Annotation>, String, NessaMacroType, Pattern, NdlMacro),
Literal(Location, Object),
Tuple(Location, Vec<NessaExpr>),
Lambda(Location, Vec<String>, Vec<(String, Type)>, Type, Vec<NessaExpr>),
NameReference(Location, String),
UnaryOperation(Location, usize, Vec<Type>, Box<NessaExpr>),
BinaryOperation(Location, usize, Vec<Type>, Box<NessaExpr>, Box<NessaExpr>),
NaryOperation(Location, usize, Vec<Type>, Box<NessaExpr>, Vec<NessaExpr>),
VariableDefinition(Location, String, Type, Box<NessaExpr>),
VariableAssignment(Location, String, Box<NessaExpr>),
FunctionDefinition(Location, Vec<Annotation>, usize, Vec<String>, Vec<(String, Type)>, Type, Vec<NessaExpr>),
PrefixOperatorDefinition(Location, String, usize),
PostfixOperatorDefinition(Location, String, usize),
BinaryOperatorDefinition(Location, String, bool, usize),
NaryOperatorDefinition(Location, String, String, usize),
ClassDefinition(Location, Vec<Annotation>, String, Vec<String>, Vec<(String, Type)>, Option<Type>, Vec<Pattern>),
InterfaceDefinition(Location, Vec<Annotation>, String, Vec<String>, Vec<(Vec<Annotation>, String, Option<Vec<String>>, Vec<(String, Type)>, Type)>, Vec<(Vec<Annotation>, usize, Vec<String>, String, Type, Type)>, Vec<(Vec<Annotation>, usize, Vec<String>, (String, Type), (String, Type), Type)>, Vec<(Vec<Annotation>, usize, Vec<String>, (String, Type), Vec<(String, Type)>, Type)>),
InterfaceImplementation(Location, Vec<String>, Type, String, Vec<Type>),
PrefixOperationDefinition(Location, Vec<Annotation>, usize, Vec<String>, String, Type, Type, Vec<NessaExpr>),
PostfixOperationDefinition(Location, Vec<Annotation>, usize, Vec<String>, String, Type, Type, Vec<NessaExpr>),
BinaryOperationDefinition(Location, Vec<Annotation>, usize, Vec<String>, (String, Type), (String, Type), Type, Vec<NessaExpr>),
NaryOperationDefinition(Location, Vec<Annotation>, usize, Vec<String>, (String, Type), Vec<(String, Type)>, Type, Vec<NessaExpr>),
If(Location, Box<NessaExpr>, Vec<NessaExpr>, Vec<(NessaExpr, Vec<NessaExpr>)>, Option<Vec<NessaExpr>>),
While(Location, Box<NessaExpr>, Vec<NessaExpr>),
For(Location, String, Box<NessaExpr>, Vec<NessaExpr>),
Return(Location, Box<NessaExpr>),
}Variants§
QualifiedName(Location, String, Option<usize>)
Variable(Location, usize, String, Type)
CompiledVariableDefinition(Location, usize, String, Type, Box<NessaExpr>)
CompiledVariableAssignment(Location, usize, String, Type, Box<NessaExpr>)
FunctionCall(Location, usize, Vec<Type>, Vec<NessaExpr>)
CompiledFor(Location, usize, usize, String, Box<NessaExpr>, Vec<NessaExpr>)
DoBlock(Location, Vec<NessaExpr>, Type)
AttributeAccess(Location, Box<NessaExpr>, usize)
AttributeAssignment(Location, Box<NessaExpr>, Box<NessaExpr>, usize)
Break(Location)
Continue(Location)
CompiledLambda(Location, usize, Vec<(String, NessaExpr)>, Vec<(String, Type)>, Type, Vec<NessaExpr>)
Macro(Location, Vec<Annotation>, String, NessaMacroType, Pattern, NdlMacro)
Literal(Location, Object)
Tuple(Location, Vec<NessaExpr>)
Lambda(Location, Vec<String>, Vec<(String, Type)>, Type, Vec<NessaExpr>)
NameReference(Location, String)
UnaryOperation(Location, usize, Vec<Type>, Box<NessaExpr>)
BinaryOperation(Location, usize, Vec<Type>, Box<NessaExpr>, Box<NessaExpr>)
NaryOperation(Location, usize, Vec<Type>, Box<NessaExpr>, Vec<NessaExpr>)
VariableDefinition(Location, String, Type, Box<NessaExpr>)
VariableAssignment(Location, String, Box<NessaExpr>)
FunctionDefinition(Location, Vec<Annotation>, usize, Vec<String>, Vec<(String, Type)>, Type, Vec<NessaExpr>)
PrefixOperatorDefinition(Location, String, usize)
PostfixOperatorDefinition(Location, String, usize)
BinaryOperatorDefinition(Location, String, bool, usize)
NaryOperatorDefinition(Location, String, String, usize)
ClassDefinition(Location, Vec<Annotation>, String, Vec<String>, Vec<(String, Type)>, Option<Type>, Vec<Pattern>)
InterfaceDefinition(Location, Vec<Annotation>, String, Vec<String>, Vec<(Vec<Annotation>, String, Option<Vec<String>>, Vec<(String, Type)>, Type)>, Vec<(Vec<Annotation>, usize, Vec<String>, String, Type, Type)>, Vec<(Vec<Annotation>, usize, Vec<String>, (String, Type), (String, Type), Type)>, Vec<(Vec<Annotation>, usize, Vec<String>, (String, Type), Vec<(String, Type)>, Type)>)
InterfaceImplementation(Location, Vec<String>, Type, String, Vec<Type>)
PrefixOperationDefinition(Location, Vec<Annotation>, usize, Vec<String>, String, Type, Type, Vec<NessaExpr>)
PostfixOperationDefinition(Location, Vec<Annotation>, usize, Vec<String>, String, Type, Type, Vec<NessaExpr>)
BinaryOperationDefinition(Location, Vec<Annotation>, usize, Vec<String>, (String, Type), (String, Type), Type, Vec<NessaExpr>)
NaryOperationDefinition(Location, Vec<Annotation>, usize, Vec<String>, (String, Type), Vec<(String, Type)>, Type, Vec<NessaExpr>)
If(Location, Box<NessaExpr>, Vec<NessaExpr>, Vec<(NessaExpr, Vec<NessaExpr>)>, Option<Vec<NessaExpr>>)
While(Location, Box<NessaExpr>, Vec<NessaExpr>)
For(Location, String, Box<NessaExpr>, Vec<NessaExpr>)
Return(Location, Box<NessaExpr>)
Implementations§
Trait Implementations§
source§impl<'de> Deserialize<'de> for NessaExpr
impl<'de> Deserialize<'de> for NessaExpr
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl PartialEq for NessaExpr
impl PartialEq for NessaExpr
impl Eq for NessaExpr
impl StructuralPartialEq for NessaExpr
Auto Trait Implementations§
impl Freeze for NessaExpr
impl !RefUnwindSafe for NessaExpr
impl !Send for NessaExpr
impl !Sync for NessaExpr
impl Unpin for NessaExpr
impl !UnwindSafe for NessaExpr
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.