[−][src]Enum gluon_base::ast::Expr
The representation of gluon's expression syntax
Variants
Ident(TypedIdent<Id>)
Identifiers
Literal(Literal)
Literal values
Function application, eg. f x
Fields of App
func: &'ast mut SpannedExpr<'ast, Id>
implicit_args: &'ast mut [SpannedExpr<'ast, Id>]
args: &'ast mut [SpannedExpr<'ast, Id>]
Lambda(Lambda<'ast, Id>)
Lambda abstraction, eg. \x y -> x * y
IfElse(&'ast mut SpannedExpr<'ast, Id>, &'ast mut SpannedExpr<'ast, Id>, &'ast mut SpannedExpr<'ast, Id>)
If-then-else conditional
Match(&'ast mut SpannedExpr<'ast, Id>, &'ast mut [Alternative<'ast, Id>])
Pattern match expression
Infix operator expression eg. f >> g
Fields of Infix
lhs: &'ast mut SpannedExpr<'ast, Id>
op: SpannedIdent<Id>
rhs: &'ast mut SpannedExpr<'ast, Id>
implicit_args: &'ast mut [SpannedExpr<'ast, Id>]
Projection(&'ast mut SpannedExpr<'ast, Id>, Id, ArcType<Id>)
Record field projection, eg. value.field
Array(Array<'ast, Id>)
Array construction
Record construction
Fields of Record
typ: ArcType<Id>
types: &'ast mut [ExprField<'ast, Id, ArcType<Id>>]
exprs: &'ast mut [ExprField<'ast, Id, SpannedExpr<'ast, Id>>]
base: Option<&'ast mut SpannedExpr<'ast, Id>>
Tuple construction
Fields of Tuple
typ: ArcType<Id>
elems: &'ast mut [SpannedExpr<'ast, Id>]
LetBindings(ValueBindings<'ast, Id>, &'ast mut SpannedExpr<'ast, Id>)
Declare a series of value bindings
TypeBindings(&'ast mut [TypeBinding<'ast, Id>], &'ast mut SpannedExpr<'ast, Id>)
Declare a series of type aliases
Block(&'ast mut [SpannedExpr<'ast, Id>])
A group of sequenced expressions
Do(&'ast mut Do<'ast, Id>)
Fields of MacroExpansion
original: &'ast mut SpannedExpr<'ast, Id>
replacement: &'ast mut SpannedExpr<'ast, Id>
Annotated(&'ast mut SpannedExpr<'ast, Id>, ArcType<Id>)
An invalid expression
Implementations
impl<'ast, Id> Expr<'ast, Id>
[src]
pub fn rec_let_bindings(
arena: ArenaRef<'_, 'ast, Id>,
binds: impl IntoIterator<Item = ValueBinding<'ast, Id>>,
expr: SpannedExpr<'ast, Id>
) -> Self
[src]
arena: ArenaRef<'_, 'ast, Id>,
binds: impl IntoIterator<Item = ValueBinding<'ast, Id>>,
expr: SpannedExpr<'ast, Id>
) -> Self
pub fn annotated<'a>(
arena: ArenaRef<'_, 'ast, Id>,
expr: SpannedExpr<'ast, Id>,
typ: ArcType<Id>
) -> SpannedExpr<'ast, Id> where
Id: From<&'a str> + Clone,
[src]
arena: ArenaRef<'_, 'ast, Id>,
expr: SpannedExpr<'ast, Id>,
typ: ArcType<Id>
) -> SpannedExpr<'ast, Id> where
Id: From<&'a str> + Clone,
pub fn let_binding(
arena: ArenaRef<'_, 'ast, Id>,
bind: ValueBinding<'ast, Id>,
expr: SpannedExpr<'ast, Id>
) -> Self
[src]
arena: ArenaRef<'_, 'ast, Id>,
bind: ValueBinding<'ast, Id>,
expr: SpannedExpr<'ast, Id>
) -> Self
pub fn kind(&self) -> &'static str
[src]
impl<'ast, Id> Expr<'ast, Id>
[src]
pub fn app(
arena: ArenaRef<'_, 'ast, Id>,
func: SpannedExpr<'ast, Id>,
args: impl IntoIterator<Item = SpannedExpr<'ast, Id>>
) -> Self
[src]
arena: ArenaRef<'_, 'ast, Id>,
func: SpannedExpr<'ast, Id>,
args: impl IntoIterator<Item = SpannedExpr<'ast, Id>>
) -> Self
pub fn field_iter<'a>(
&'a self
) -> impl Iterator<Item = Either<&'a ExprField<'_, Id, ArcType<Id>>, &'a ExprField<'_, Id, SpannedExpr<'ast, Id>>>> + 'a
[src]
&'a self
) -> impl Iterator<Item = Either<&'a ExprField<'_, Id, ArcType<Id>>, &'a ExprField<'_, Id, SpannedExpr<'ast, Id>>>> + 'a
Trait Implementations
impl<'ast, Id> AstClone<'ast, Id> for Expr<'ast, Id> where
Id: AstClone<'ast, Id>,
Id: Clone,
[src]
Id: AstClone<'ast, Id>,
Id: Clone,
impl<'ast, Id: Debug> Debug for Expr<'ast, Id>
[src]
impl<'ast, Id> Default for Expr<'ast, Id>
[src]
impl<'ast, Id: Eq> Eq for Expr<'ast, Id>
[src]
impl<'ast, Id: PartialEq> PartialEq<Expr<'ast, Id>> for Expr<'ast, Id>
[src]
impl<'ast, Id> StructuralEq for Expr<'ast, Id>
[src]
impl<'ast, Id> StructuralPartialEq for Expr<'ast, Id>
[src]
impl<'_> Typed for Expr<'_, Symbol>
[src]
Auto Trait Implementations
impl<'ast, Id> RefUnwindSafe for Expr<'ast, Id> where
Id: RefUnwindSafe,
Id: RefUnwindSafe,
impl<'ast, Id> Send for Expr<'ast, Id> where
Id: Send + Sync,
Id: Send + Sync,
impl<'ast, Id> Sync for Expr<'ast, Id> where
Id: Send + Sync,
Id: Send + Sync,
impl<'ast, Id> Unpin for Expr<'ast, Id> where
Id: Unpin,
Id: Unpin,
impl<'ast, Id> !UnwindSafe for Expr<'ast, Id>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<Id> AsId<Id> for Id where
Id: ?Sized,
[src]
Id: ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,