eval_bits

DATA TYPES

bindings()

An abstract structure for bindings between variables and values (the environment)

evalfun()

A closure which evaluates an expression given an environment

field()

Represents a field in a "bin".

matchfun()

A closure which depending on its first argument can perform a match (given a value, a pattern and an environment), lookup a variable in the bindings, or add a new binding

Functions


expr_grp(Fields::[field()], Bindings::bindings(), EvalFun::evalfun(), ListOfBits::term(), X5::term()) -> {value, binary(), bindings()}

Returns a tuple with {value,Bin,Bs} where Bin is the binary constructed from form the Fields under the current Bindings. Bs contains the present bindings. This function can also throw an exception if the construction fails.

expr_grp(Fields, Bindings, EvalFun) -> term()

bin_gen(BinPattern::{bin, integer(), [field()]}, Bin::binary(), GlobalEnv::bindings(), LocalEnv::bindings(), MatchFun::matchfun(), EvalFun::evalfun()) -> {match, binary(), bindings()} | {nomatch, binary()} | done

Used to perform matching in a comprehension. If the match succeeds a new environment and what remains of the binary is returned. If the match fails what remains of the binary is returned. If nothing remains of the binary the atom 'done' is returned.

match_bits(Fields::[field()], Bin::binary(), GlobalEnv::bindings(), LocalEnv::bindings(), MatchFun::matchfun(), EvalFun::evalfun(), X7::term()) -> {match, bindings()}

Used to perform matching. If the match succeeds a new environment is returned. If the match have some syntactic or semantic problem which would have been caught at compile time this function throws 'invalid', if the matching fails for other reasons the function throws 'nomatch'

match_bits(Fs, Bin, Bs0, BBs, Mfun, Efun) -> term()

View Functions