C 소스 파일과 함수 이름, 구조, 열거형 또는 기타 이름을 가져와 요소가 있는 경우 요소 바로 위에 주석을 출력하는 간단한 유틸리티를 구현하고 싶습니다.
즉.
/* This is a doc comment
* I want this comment extracted
*/
void function_foo(){
}
용법:
utility file.c function_foo
산출:
This is a doc comment
I want this comment extracted
이에 대한 사용 사례는 소스 파일의 기능 문서를 처리하기 위해 emacs에서 org-babel을 사용하고 싶다는 것입니다. 어쩌면 이 작업을 수행할 수 있는 doxygen 도구나 clang 도구가 있을까요? 아직 찾지 못했을 뿐입니다. 최종 결과는 다른 콘텐츠가 포함된 문서 구성 파일의 코드에서 직접 가져온 최신 문서를 쉽게 유지할 수 있다는 것입니다.
답변1
노력하다:
utility() {
FUNC=$2 perl -l -0777 -ne '
if (
m{
^ /\* \s* ((?s:(?!\*/).)*?) \s* \*/ \s* \n
(?:\w.*\h)? \Q$ENV{FUNC}\E \h* \(
}mx
) {
$comment = $1;
$comment =~ s/^\s*\*\s*//gm;
print $comment
}' < "$1"
}
함수 호출에 대한 거짓 긍정을 피하기 위해 주석과 함수 정의가 행의 시작 부분(선행 공백 없이)에 있다고 가정합니다.
이제 바퀴를 재발명하기 전에 다음을 살펴보는 것이 좋습니다.doxygen
이는 코드 기반 문서화를 위한 프레임워크를 제공합니다.