pub enum NessaExpr {
Show 33 variants
FunctionName(Location, 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>),
CompiledLambda(Location, usize, Vec<(String, Type)>, Type, Vec<NessaExpr>),
Macro(Location, String, NessaMacroType, Pattern, NessaMacro),
Literal(Location, Object),
Tuple(Location, Vec<NessaExpr>),
Lambda(Location, 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, 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, String, Vec<String>, Vec<(String, Type)>, Option<Type>, Vec<Pattern>),
InterfaceDefinition(Location, String, Vec<String>, Vec<(String, Option<Vec<String>>, Vec<(String, Type)>, Type)>, Vec<(usize, Vec<String>, String, Type, Type)>, Vec<(usize, Vec<String>, (String, Type), (String, Type), Type)>, Vec<(usize, Vec<String>, (String, Type), Vec<(String, Type)>, Type)>),
InterfaceImplementation(Location, Vec<String>, Type, String, Vec<Type>),
PrefixOperationDefinition(Location, usize, Vec<String>, String, Type, Type, Vec<NessaExpr>),
PostfixOperationDefinition(Location, usize, Vec<String>, String, Type, Type, Vec<NessaExpr>),
BinaryOperationDefinition(Location, usize, Vec<String>, (String, Type), (String, Type), Type, Vec<NessaExpr>),
NaryOperationDefinition(Location, 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§
FunctionName(Location, 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>)
CompiledLambda(Location, usize, Vec<(String, Type)>, Type, Vec<NessaExpr>)
Macro(Location, String, NessaMacroType, Pattern, NessaMacro)
Literal(Location, Object)
Tuple(Location, Vec<NessaExpr>)
Lambda(Location, 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, 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, String, Vec<String>, Vec<(String, Type)>, Option<Type>, Vec<Pattern>)
InterfaceDefinition(Location, String, Vec<String>, Vec<(String, Option<Vec<String>>, Vec<(String, Type)>, Type)>, Vec<(usize, Vec<String>, String, Type, Type)>, Vec<(usize, Vec<String>, (String, Type), (String, Type), Type)>, Vec<(usize, Vec<String>, (String, Type), Vec<(String, Type)>, Type)>)
InterfaceImplementation(Location, Vec<String>, Type, String, Vec<Type>)
PrefixOperationDefinition(Location, usize, Vec<String>, String, Type, Type, Vec<NessaExpr>)
PostfixOperationDefinition(Location, usize, Vec<String>, String, Type, Type, Vec<NessaExpr>)
BinaryOperationDefinition(Location, usize, Vec<String>, (String, Type), (String, Type), Type, Vec<NessaExpr>)
NaryOperationDefinition(Location, 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 PartialEq for NessaExpr
impl PartialEq for NessaExpr
impl Eq for NessaExpr
impl StructuralPartialEq for NessaExpr
Auto Trait Implementations§
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.