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, 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)>),
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, 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)>)
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 StructuralEq 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.