pub(crate) enum Atom {
SymbolOrLiteral(SymbolOrLiteral),
Parens(SimpleSpan, Script, Box<ArithmeticExpression>),
RcRef(SimpleSpan, RegistersContaining),
}
Expand description
A component of an arithmetic expression.
A symbol, numeric literal, address of an RC-word, or a parenthesised arithmetic expression.
Variants§
SymbolOrLiteral(SymbolOrLiteral)
Parens(SimpleSpan, Script, Box<ArithmeticExpression>)
RcRef(SimpleSpan, RegistersContaining)
Implementations§
Source§impl Atom
impl Atom
fn symbol_uses( &self, block_id: BlockIdentifier, block_offset: Unsigned18Bit, ) -> impl Iterator<Item = Result<(SymbolName, SimpleSpan, SymbolUse), InconsistentSymbolUse>> + use<>
fn substitute_macro_parameters( &self, param_values: &MacroParameterBindings, on_missing: OnUnboundMacroParameter, macros: &BTreeMap<SymbolName, MacroDefinition>, ) -> Option<Atom>
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 Evaluate for Atom
impl Evaluate for Atom
fn evaluate<R: RcUpdater>( &self, ctx: &mut EvaluationContext<'_, R>, scope: ScopeIdentifier, ) -> Result<Unsigned36Bit, EvaluationFailure>
Source§impl From<(SimpleSpan, Script, SymbolName)> for Atom
impl From<(SimpleSpan, Script, SymbolName)> for Atom
Source§fn from((span, script, name): (SimpleSpan, Script, SymbolName)) -> Self
fn from((span, script, name): (SimpleSpan, Script, SymbolName)) -> 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<Atom> for SignedAtom
impl From<Atom> for SignedAtom
Source§impl From<LiteralValue> for Atom
impl From<LiteralValue> for Atom
Source§fn from(literal: LiteralValue) -> Atom
fn from(literal: LiteralValue) -> Atom
Converts to this type from the input type.
Source§impl From<SymbolOrLiteral> for Atom
impl From<SymbolOrLiteral> for Atom
Source§fn from(value: SymbolOrLiteral) -> Self
fn from(value: SymbolOrLiteral) -> Self
Converts to this type from the input type.
impl Eq for Atom
impl StructuralPartialEq for Atom
Auto Trait Implementations§
impl Freeze for Atom
impl RefUnwindSafe for Atom
impl Send for Atom
impl Sync for Atom
impl Unpin for Atom
impl UnwindSafe for Atom
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
].