Enum AstExpressionKind

pub enum AstExpressionKind {
Show 17 variants Unary { op: AstUnaryOp, operand: Box<AstExpression>, }, Binary { op: AstBinaryOp, lhs: Box<AstExpression>, rhs: Box<AstExpression>, }, Assignment { computation_node_id: AstNodeId, op: AstAssignmentOp, lhs: Box<AstExpression>, rhs: Box<AstExpression>, }, Conditional { condition: Box<AstExpression>, consequent: Box<AstExpression>, alternative: Box<AstExpression>, }, FunctionCall { designator: Box<AstExpression>, args_node_id: AstNodeId, args: Vec<AstExpression>, }, Deref { pointer: Box<AstExpression>, }, AddressOf { target: Box<AstExpression>, }, Subscript { expr1: Box<AstExpression>, expr2: Box<AstExpression>, }, Cast { target_type: AstDeclaredType, inner: Box<AstExpression>, is_implicit: bool, }, Ident { name: String, unique_name: AstUniqueName, }, SizeOfExpr { operand: Box<AstExpression>, }, SizeOfType { declared_type: AstDeclaredType, }, AlignOfType { declared_type: AstDeclaredType, }, CharLiteral { literal: String, is_multichar: bool, value: i32, }, StringLiteral { literals: Vec<String>, ascii: Vec<String>, }, IntegerLiteral { literal: String, literal_base: usize, value: u64, kind: AstIntegerLiteralKind, }, FloatLiteral { literal: String, literal_base: usize, value: f64, kind: AstFloatLiteralKind, },
}
Expand description

The kind of expression, which may in fact be a subexpression inside a tree of a larger expression.

Variants§

§

Unary

Fields

§

Binary

§

Assignment

Fields

§computation_node_id: AstNodeId
§

Conditional

Fields

§condition: Box<AstExpression>
§consequent: Box<AstExpression>
§alternative: Box<AstExpression>
§

FunctionCall

Fields

§designator: Box<AstExpression>
§args_node_id: AstNodeId
§

Deref

Fields

§

AddressOf

Fields

§

Subscript

Fields

§

Cast

Fields

§target_type: AstDeclaredType
§is_implicit: bool
§

Ident

Fields

§name: String
§unique_name: AstUniqueName
§

SizeOfExpr

Fields

§

SizeOfType

Fields

§declared_type: AstDeclaredType
§

AlignOfType

Fields

§declared_type: AstDeclaredType
§

CharLiteral

Fields

§literal: String
§is_multichar: bool
§value: i32
§

StringLiteral

Fields

§literals: Vec<String>
§ascii: Vec<String>
§

IntegerLiteral

Fields

§literal: String
§literal_base: usize
§value: u64
§

FloatLiteral

Fields

§literal: String
§literal_base: usize
§value: f64

Trait Implementations§

§

impl Clone for AstExpressionKind

§

fn clone(&self) -> AstExpressionKind

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for AstExpressionKind

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
§

impl PartialEq for AstExpressionKind

§

fn eq(&self, other: &AstExpressionKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl StructuralPartialEq for AstExpressionKind

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.