
disasm(+PredSpec, ?WAMCode)

   Disassemble an existing predicate PredSpec in the current module to its WAM
abstract machine representation WAMCode.



Arguments
   +PredSpec           Atom/Integer.
   ?WAMCode            Variable or a list of WAM instructions in the right format.

Type
   library(asm)

Description
   Unifies WAMCode with the WAM instructions representing the abstract
   machine code for the predicate specified by PredSpec (in Name/Arity
   form). The WAM code is in the form of a list, with each element
   representing one WAM instruction. The format of the WAMCode is the same
   as that used by asm/2,3 and pasm/4 to assemble a predicate. Thus, the
   WAM code generated by disasm/2,3 can be used to load the predicate into
   ECLiPSe without having to compile the source Prolog form. 


   The library asm must be loaded to use diasm/2.


   Currently asm/2 cannot disassemble dynamic predicates.




Fail Conditions
      Fails if WAMCode is initially instantiated and does not unify with the WAM code generated by asm/1 for the predicate, or if PredSpec is dynamic.

Resatisfiable
      No.

Exceptions
     5 --- PredSpec is not in correct form.
    60 --- PredSpec does not exist in current module.

Examples
   
   for fruit/1 defined by:

      fruit(orange).

   ?- disasm(fruit / 1, W).
   W = [get_atom(a(1), orange), retd, code_end]





See Also
   disasm / 3, asm / 2, asm / 3, pasm / 4, wam / 1
