pub(crate) struct ArithmeticExpression {
pub(crate) first: SignedAtom,
pub(crate) tail: Vec<(Operator, SignedAtom)>,
}
Expand description
Represents an arithmetic expression.
In the TX-2’s M4 assembly language, arithmetic expressions are constants. In other words, the assembler evaluates them to a specific 36-bit value which is emitted into the output.
Fields§
§first: SignedAtom
§tail: Vec<(Operator, SignedAtom)>
Implementations§
Source§impl ArithmeticExpression
impl ArithmeticExpression
pub(crate) fn with_tail( first: SignedAtom, tail: Vec<(Operator, SignedAtom)>, ) -> ArithmeticExpression
fn symbol_uses( &self, block_id: BlockIdentifier, block_offset: Unsigned18Bit, ) -> impl Iterator<Item = Result<(SymbolName, SimpleSpan, SymbolUse), InconsistentSymbolUse>> + use<>
fn eval_binop( left: Unsigned36Bit, binop: Operator, right: Unsigned36Bit, ) -> Unsigned36Bit
fn substitute_macro_parameters( &self, param_values: &MacroParameterBindings, on_missing: OnUnboundMacroParameter, macros: &BTreeMap<SymbolName, MacroDefinition>, ) -> Option<ArithmeticExpression>
fn allocate_rc_words<R: RcAllocator>( &mut self, explicit_symtab: &mut ExplicitSymbolTable, implicit_symtab: &mut ImplicitSymbolTable, rc_allocator: &mut R, ) -> Result<(), RcWordAllocationFailure>
Trait Implementations§
Source§impl Clone for ArithmeticExpression
impl Clone for ArithmeticExpression
Source§fn clone(&self) -> ArithmeticExpression
fn clone(&self) -> ArithmeticExpression
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for ArithmeticExpression
impl Debug for ArithmeticExpression
Source§impl Display for ArithmeticExpression
impl Display for ArithmeticExpression
Source§impl Evaluate for ArithmeticExpression
impl Evaluate for ArithmeticExpression
fn evaluate<R: RcUpdater>( &self, ctx: &mut EvaluationContext<'_, R>, scope: ScopeIdentifier, ) -> Result<Unsigned36Bit, EvaluationFailure>
Source§impl From<ArithmeticExpression> for InstructionFragment
impl From<ArithmeticExpression> for InstructionFragment
Source§fn from(expr: ArithmeticExpression) -> Self
fn from(expr: ArithmeticExpression) -> Self
Converts to this type from the input type.
Source§impl From<Atom> for ArithmeticExpression
impl From<Atom> for ArithmeticExpression
Source§fn from(a: Atom) -> ArithmeticExpression
fn from(a: Atom) -> ArithmeticExpression
Converts to this type from the input type.
Source§impl From<SignedAtom> for ArithmeticExpression
impl From<SignedAtom> for ArithmeticExpression
Source§fn from(a: SignedAtom) -> ArithmeticExpression
fn from(a: SignedAtom) -> ArithmeticExpression
Converts to this type from the input type.
Source§impl From<SymbolOrLiteral> for ArithmeticExpression
impl From<SymbolOrLiteral> for ArithmeticExpression
Source§fn from(value: SymbolOrLiteral) -> Self
fn from(value: SymbolOrLiteral) -> Self
Converts to this type from the input type.
Source§impl PartialEq for ArithmeticExpression
impl PartialEq for ArithmeticExpression
impl Eq for ArithmeticExpression
impl StructuralPartialEq for ArithmeticExpression
Auto Trait Implementations§
impl Freeze for ArithmeticExpression
impl RefUnwindSafe for ArithmeticExpression
impl Send for ArithmeticExpression
impl Sync for ArithmeticExpression
impl Unpin for ArithmeticExpression
impl UnwindSafe for ArithmeticExpression
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
§impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
§type Iter<'a> = Once<&'a T>
where
T: 'a
type Iter<'a> = Once<&'a T> where T: 'a
An iterator over the items within this container, by reference.
§fn contains(&self, val: &T) -> boolwhere
T: PartialEq,
fn contains(&self, val: &T) -> boolwhere
T: PartialEq,
Check whether an item is contained within this sequence.
§fn to_maybe_ref<'b>(item: <T as Seq<'p, T>>::Item<'b>) -> Maybe<T, &'p T>where
'p: 'b,
fn to_maybe_ref<'b>(item: <T as Seq<'p, T>>::Item<'b>) -> Maybe<T, &'p T>where
'p: 'b,
Convert an item of the sequence into a [
MaybeRef
].