Module eval

Module eval 

Source
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Β§

AddressOverflow πŸ”’
Represents an overflow in adding an index value to an address.
EvaluationContext πŸ”’
Context data used by symbol lookup and word value evaluation.
ExhaustedIndexRegisters πŸ”’
We ran out of index registers when assigning a default value.
RcBlock πŸ”’
Represents the RC-block.
ScopeIdentifier πŸ”’
A scope in which a tag name can be looked up.

EnumsΒ§

EvaluationFailure πŸ”’
We failed while evaluating the value of a word (typically, the value of a word in the final assembled output).
HereValue πŸ”’
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.