Module Eval__.Pushout

val push_atom : Eval__.Vm.AtomLists.key -> 'a -> 'a Util.DList.t Eval__.Vm.AtomLists.t -> 'a Util.DList.element * 'a Util.DList.t Eval__.Vm.AtomLists.t

アトムリストにアトムを追加する

val remove_atom : Eval__.Vm.AtomLists.key -> 'a Util.DList.element -> 'a Util.DList.t Eval__.Vm.AtomLists.t -> 'a Util.DList.t Eval__.Vm.AtomLists.t

アトムリストからアトムを削除する

val deref_lhs_register : ('a * Eval__.Vm.link array) Util.DList.element array -> int -> int -> Eval__.Vm.link array * int * Eval__.Vm.vm_atom_elt

ルール左辺でマッチしたアトムを代入したレジスタからデータを取得する

returns

ルール左辺でマッチしたアトムが繋がっていたアトムのデータ

val pushout : Eval__.Vm.vm_atom Util.DList.element array -> (string * Eval__.Vm.link) list -> Eval__.Vm.vm_atom Util.DList.t Eval__.Vm.AtomLists.t -> Generator.rhs_inst -> Eval__.Vm.vm_atom Util.DList.t Eval__.Vm.AtomLists.t

ルール右辺の命令を一回実行して,更新したアトムリストを返す

val pushouts : Eval__.Vm.vm_atom Util.DList.element array -> (string * Eval__.Vm.link) list -> Eval__.Vm.vm_atom Util.DList.t Eval__.Vm.AtomLists.t -> Generator.rhs_inst list -> Eval__.Vm.vm_atom Util.DList.t Eval__.Vm.AtomLists.t

ルール右辺の命令を実行する

  • アトムリストを受け取り,更新したアトムリストを返す