package bap-std

  1. Overview
  2. Docs
The Binary Analysis Platform Standard Library

Install

Dune Dependency

Authors

Maintainers

Sources

v2.5.0.tar.gz
sha256=9c126781385d2fa9b8edab22e62b25c70bf2f99f6ec78abb7e5e36d63cfa4174
md5=5abd9b3628b43f797326034f31ca574f

doc/bap/Bap/Std/Stmt/class-finder/index.html

Class Stmt.finder

A visitor with a shortcut. Finder is a specialization of a visitor, that uses return as its folding argument. At any time you can stop the traversing by calling return function of the provided argument (which is by itself is a record with one field - a function accepting argument of type 'a option).

For example, the following function will check whether x variable is assigned (i.e., occurs on the left of the assignment operator) in the provided scope.

  let is_assigned x = find (object(self)
      inherit [unit] finder
      method! enter_move y _rhs cc =
        if Var.(x = y) then cc.return (Some ()); cc
    end)

There're three find functions in the library, that accepts an object of type finder:

  • Bil.finder searches in the stmt list aka bil
  • Stmt.finder searches in stmt
  • Exp.finder searches in exp.

In addition, you can use this object directly, using one of the two provided entry points.

inherit 'a option Core_kernel.return visitor
method find : t list -> 'a option
OCaml

Innovation. Community. Security.