[ library(asm) | Reference Manual | Alphabetic Index ]

wam(+PredSpec)

Prints the formatted WAM code for predicate PredSpec.
+PredSpec
Atom, or Atom/Integer

Description

Prints the WAM instructions representing the predicate specified by PredSpec from the current module in a formatted form. Requires the library asm to be loaded.

If PredSpec is an atom (i.e. no arity is given), then a predicate with that name is printed, and if there are more than one predicate defined (i.e. same name but different arities), then these different predicates will be printed by backtracking.

This predicate is intended as a replacement for the lower level als/1, which performs the same function. The differences are that the abstract instruction names are printed in a more human oriented form (rather than the internal names used by ECLiPSe), and labels and their references are printed symbolically. Note that the predicate is implemented via the disasm/3 predicate of the library, and hence the same restrictions applies: it cannot be used to print the code for dynamic predicates.

Fail Conditions

If PredSpec is a dynamic predicate.

Resatisfiable

Yes.

Exceptions

(5) type error
PredSpec not in correct form.
(60) referring to an undefined procedure
PredSpec not defined in the current module.

See Also

disasm / 2, disasm / 3, wam / 2, als / 1