Module Analyze
Analyze AST.
include Analyze__.Sem_graph
module LocalPortMap = Analyze__.Sem_graph.LocalPortMap局所リンクのポートの収集のためのマップモジュール
type local_port_map= (int * int) list LocalPortMap.tアトムの位置とポートの引数番号の組のリストのマップ
val string_of_local_port_binding : (int * (int * int) list) -> stringlocal_port_map の binding の dumper
val string_of_local_port_map : (int * int) list LocalPortMap.t -> stringlocal_port_map の dumper
type a_atom= int * Corelang.c_atomアトムには一意な id を割り当てる
type a_graph= local_port_map * a_atom listアトムのリストには局所リンクのポートの情報も付加する
type a_rule=|ARule of string * a_graph * Parse.arg list * (a_graph * Corelang.c_conn list)
val string_of_graph : ((int * int) list LocalPortMap.t * ('a * (string * Corelang.c_link list)) list) -> stringval string_of_rule : a_rule -> stringval string_of_sem_graph : (((int * int) list LocalPortMap.t * ('a * (string * Corelang.c_link list)) list) * a_rule list) -> string
val sem_graph_of_atoms : ('a * Corelang.c_link list) list -> (int * int) list Analyze__.Sem_graph.LocalPortMap.t * (int * ('a * Corelang.c_link list)) listCore language のグラフを解析して Semantic graph を生成する
- 現状アトムに 0 から連続した整数を振ってやって,ポートの位置情報を付加するだけ
 
val sem_graph_of_rule : Corelang.c_rule -> a_ruleルールの解析を行う
val sem_graph_of_process : (('a * Corelang.c_link list) list * Corelang.c_rule list) -> ((int * int) list Analyze__.Sem_graph.LocalPortMap.t * (int * ('a * Corelang.c_link list)) list) * a_rule listCore language のグラフとルールセットを解析して Semantic graph を生成する
- 今後もしルールがサブルールも持てるようにするのであれば, 上記のルール解析関数と合わせて相互再帰関数として定義する必要がある