Module Corelang__.Alpha

val alpha_arg : (string list * Corelang__.Link.LinkSet.t) -> int -> Parse.arg -> int * (Corelang__.Syntax.c_link * (string * Corelang__.Syntax.c_link list) list)

アルファ変換とアトムの分解

  • アトムの引数部分を処理する
parameter locals

ユーザが明示的に書いた局所リンク名のリスト

parameter frees

自由リンク名のセット

parameter link_id

局所リンクに割り当てる用の id

returns

(更新された局所リンクに割り当てる用の id, (アルファ変換されたリンク名, 分解されたアトムのリスト))

val alpha_atom : (string list * Corelang__.Link.LinkSet.t) -> int -> Parse.arg -> int * (string * Corelang__.Syntax.c_link list) list

アルファ変換とアトムの分解

  • トップレベル(抽象構文木の根)のアトムを処理する
parameter link_names

ユーザが明示的に書いた局所・自由リンク名それぞれのマップオブジェクト

parameter link_id

局所リンクに割り当てる用の id

returns

(更新された局所リンクに割り当てる用の id, 分解されたアトムのリスト)

val alpha_atoms : (string list * Corelang__.Link.LinkSet.t) -> Parse.arg list -> (string * Corelang__.Syntax.c_link list) list

アルファ変換とアトムの分解

  • アトムを引数部分に埋め込む略記法に対して割り当てるリンク ID は, ユーザが直接書いた局所リンクの数 List.length locals 以上の連続した整数となる.
parameter link_names

ユーザが明示的に書いた局所・自由リンク名それぞれのマップオブジェクト

returns

分解されたアトムのリスト