Module Generator__.Match
val check_arg : Generator__.Instruction.reg_i -> Generator__.Register_table.reg_tbl -> int -> Analyzer.b_arg -> Generator__.Register_table.reg_tbl * Generator__.Instruction.lhs_inst list
アトムの引数のリンクのマッチングを行う命令を生成する
val check_ref_neq_of : Generator__.Instruction.reg_i -> Generator__.Instruction.reg_i -> Generator__.Instruction.lhs_inst
リンクの非単射的マッチングを行うための命令
val check_atom : (string * Analyzer.b_arg list) -> Generator__.Register_table.reg_tbl -> Generator__.Instruction.reg_i -> Generator__.Register_table.reg_tbl * Generator__.Instruction.lhs_inst list
アトムのマッチングを行う命令を生成する
val check_ind : (int * int) list -> Generator__.Register_table.reg_tbl -> Generator__.Instruction.reg_i -> Analyzer.b_ind -> Generator__.Register_table.reg_tbl * Generator__.Instruction.lhs_inst list
インダイレクションのマッチングを行う命令を生成する
val functor_of : Analyzer.b_ind -> string * int
ルール左辺のインダイレクションからファンクタを取得する
val find_atom : (int * int) list -> Generator__.Register_table.reg_tbl -> Analyzer.b_ind -> Generator__.Register_table.reg_tbl * Generator__.Instruction.lhs_inst list
reg_tbl を受け取って,更新した reg_tbl と 生成した中間命令列を返す
val find_atoms : (int * int) list -> Generator__.Register_table.reg_tbl -> Analyzer.b_ind list -> Generator__.Register_table.reg_tbl * Generator__.Instruction.lhs_inst list
引数に local_indegs reg_tbl inds をとる
val match_ : ((int * int) list * Analyzer.b_ind list) -> ((string * string) list * (string * int) list) -> Generator__.Register_table.reg_tbl * Generator__.Instruction.lhs_inst list
ルール左辺を中間命令列に変換する