OCaml의 포맷터 (형식 형식)가 줄 바꿈 (특히 print_break (@)
에서 오는 태그)을 삽입하는 것을 피하는 교묘 한 해킹이 있습니까?Ocaml의 Format pretty-printer에서 선택적 줄 바꿈을 피하는 방법은 무엇입니까?
메시지가 많이 나오는 소프트웨어가 다소 있습니다. grep
과 sed
과 같은 유닉스 도구를 사용하고 싶습니다. 그러나 삽입 된 줄 바꿈은 메시지가 포맷터에 의해 분리 될 때 작동하지 못하도록합니다. 그리고 코드에 너무 많은 서식자가있어 모두를 개별적으로 추적하고 set_margin
을 통해 "여백"속성을 변경합니다.
그런 영리한 해킹은 기본 마진이 9999와 같은 것으로 설정 될 수있는 단일 중심점이있는 경우 다른 모듈 내에 Format을 래핑하거나 결국 OCaml 자체를 다시 컴파일하는 것을 포함 할 수 있습니다. Format.set_margin
메인이 호출 된 후에도, 프로그램에 의해 생성 된 포매터에는 적용되지 않는 것처럼 보입니다. 대신 뉴 라인의 공백을 인쇄합니다 성공하면
이 솔루션은'Format.set_margin'을 사용하는 것과 동일한 이슈가 있습니다 : 그것은 단지'Format.std_formatter'에만 적용되며, ** 모든 포맷에 대해'Format.pp_set_all_formatter_output_functions'을 사용해야합니다 ** 프로그램이 사용하는 포맷터. – Virgile