2012-05-09 4 views
3

CIL(C中間言語)に新しい機能を追加しました。私は今私のCILモジュールでcillyに与えられたファイルにアクセスする方法

$cilly --dotestmodule --save-temps -D HAPPY_MOOD -o test test.c 

を使用して、私の新しいモジュールを実行することができるよ、私のtestmoduleに、私はtest.cのファイルのCfg.computeFileCFGを呼びたいです。しかし、自分のモジュールでtest.cファイルにアクセスする方法がわかりません。

私はCil.fileを使ってみました。 「Unbound value Cil.file」と表示されます。

私のコード:

open Pretty 
open Cfg 
open Cil 

module RD = Reachingdefs 

let() = Cfg.computeFileCFG Cil.file 

let rec fact n = if n < 2 then 1 else n * fact(n-1) 
let doIt n = fact n 

let feature : featureDescr = 
    { fd_name = "testmodule"; 
    fd_enabled = ref false; 
    fd_description = "simple test 1240"; 
    fd_extraopt = []; 
    fd_doit = (function (f: file) -> ignore (doIt 10)); 
    fd_post_check = true; 
    } 

方法test.cのファイルのCFGを計算する方法を教えてください。

答えて

3

私はCILの専門家ではないけど、ここではいくつかの発言です:

  • Cil.fileは、OCamlの型であることCILオンラインドキュメントstatesタイプを引数としてファンクションに渡すことは、おそらくあなたがここでやりたいことではありません。
  • フィーチャー記述子のfd_doit関数が、あなたが探しているファイルを引数のfとして受け取りました。
  • Cillyマニュアルによれば、fのタイプはCil.fileである。便宜的には、このseemsは、関数computeFileCFGが必要とする引数の型になります。

うまくいきましょう。がんばろう!

関連する問題