jon.recoil.org

Module Directive.Constant

type t = private
  1. | Signed_int of Int64.t
  2. | Unsigned_int of Numbers.Uint64.t
  3. | This
  4. | Label of Asm_label.t
  5. | Symbol of Asm_symbol.t
  6. | Variable of string
    (*

    For .set assignments (macOS only)

    *)
  7. | Add of t * t
  8. | Sub of t * t
val eval : this:(unit -> int64) -> lookup_label:(Asm_label.t -> int64 option) -> lookup_symbol:(Asm_symbol.t -> int64 option) -> lookup_variable:(string -> int64 option) -> t -> int64 option

Evaluate a constant expression to a 64-bit value.

  • parameter this

    Called to get the current offset when This is encountered.

  • parameter lookup_label

    Called to resolve Label values.

  • parameter lookup_symbol

    Called to resolve Symbol values.

  • parameter lookup_variable

    Called to resolve Variable values (for .set on macOS).

  • returns

    Some value if evaluation succeeds, None if a symbol cannot be resolved.