Expand description
Turn the symbolic program into a sequence of words in binary.
We evaluate (i.e. generate binary from) high-level parts of the
abstract syntax tree, including assignment of default values.
Some of the evaluation of individual parts of the abstract
representation is performed in super::ast
.
StructsΒ§
- Address
Overflow π - Represents an overflow in adding an index value to an address.
- Evaluation
Context π - Context data used by symbol lookup and word value evaluation.
- Exhausted
Index πRegisters - We ran out of index registers when assigning a default value.
- RcBlock π
- Represents the RC-block.
- Scope
Identifier π - A scope in which a tag name can be looked up.
EnumsΒ§
- Evaluation
Failure π - We failed while evaluating the value of a word (typically, the value of a word in the final assembled output).
- Here
Value π HereValue
specifies the value used for#
. A#
always signifies the address of the word we are trying to assemble.
TraitsΒ§
- Evaluate π
- The
Evaluate
trait is implemented by any element of the program that can evaluate to a 36-bit word value.
FunctionsΒ§
- assign_
default_ πvalue - Assign a default value for a symbol, using the rules from section 6-2.2 of the Users Handbook, βSYMEX DEFINITON - TAGS - EQUALITIES - AUTOMATIC ASSIGNMENTβ.
- evaluate_
elevated_ πsymbol - Compute the value of a symbol in super/sub/normal script.
- evaluate_
normal_ πsymbol - Compute the value of a symbol appearing in normal script.
- extract_
final_ πequalities - Determine the numerical value of all equalities, where they have one.
- offset_
from_ πorigin - Compute sum of an address and an unsigned offset.