기능 Cil.d_instr
는 다음과 같은 프로토 타입이 있습니다
따라서
val d_instr : unit -> instr -> Pretty.doc
가 입력 Pretty.doc
의 값을 얻기를, 당신은 명령 전에 유형 unit
의 값을 적용 할 필요가 : d_instr() i
은.
그런 다음 Pretty.doc
을 string
으로 변환하려면 Pretty.sprint : width:int -> doc -> string
을 사용해야합니다. 최대 너비를 제공해야하지만 원하는 경우 매우 큰 너비를 사용할 수 있습니다. 마지막으로, 두 부분을 결합, 당신은 얻을 :
let i_str = Pretty.sprint max_int (Cil.d_instr() i)
나는 당신이주의 깊게 Pretty
의 설명서를 참조하는 것이 좋습니다 : http://kerneis.github.io/cil/doc/html/cil/api/Pretty.html은. 가능한 한 오랫동안 유형 Pretty.doc
의 값을 사용하고 값을 (++)
과 연결하고 맨 끝에 만 문자열로 변환 (또는 표준 출력으로 보내기)하는 것이 더 효율적이라는 것을 설명합니다.
마지막으로
,하지만 여기, 내 의견으로는 불필요하게 복잡 당신이 정말로 사용하려는 경우를 구성하는 방법입니다 Printf.sprintf
:
let ds_instr() i = Pretty.sprint max_int (Cil.d_instr() i) in
let i_str = Printf.sprintf "%a" ds_instr i in ...