COMPILE_ET(1)

명칭
compile_et - 에러 테이블 컴파일러

서식
compile_et file

해설
compile_et (은)는, 에러 코드명과 거기에 대응하는 메세지를 리스트업 한 테이블을, com_err(3) 프로그램 라이브러리와 함께 이용하는데 적합한 C 의 원시 파일로 변환합니다.

원시 파일명은 말미가 ``.et''로 끝나지 않으면 안됩니다. 이 파일은 이하의 것으로부터 완성됩니다. 우선, 에러 코드 테이블명의 선언(4 캐릭터까지):

error_table name

계속되어 이하의 형식의 엔트리(256 엔트리까지):

error_code name, " string "

그리고 마지막에 테이블의 마지막을 나타내는 다음의 행입니다:

end

위의 테이블명은 써브루틴명 initialize_XXXX_error_table (을)를 구축하는데 이용됩니다. 이 써브루틴은 com_err(3) 프로그램 라이브러리가 에러 테이블을 인식하기 위해서 불려 갈 필요가 있습니다.

여기서 정의된 여러가지 에러 코드에는, 연속한 승순의 번호(최초의 수는, 테이블명의 해쉬 함수로서 요구된, 어느 큰 수입니다)가 할당할 수 있습니다. 따라서, 호환성을 유지하기 위해서(때문에), 새로운 코드는 기존의 테이블의 말미에게만 추가해, 또 기존의 코드는 테이블에서 삭제하지 않게 해야 합니다.

이 테이블로 정의된 이름은 C 의 헤더 파일에 놓여져 프리프로세서 지시문에 의해 최대 32 비트의 크기의 정정수로서 정의됩니다.

동시에 C 의 원시 파일이 생성됩니다. 이 파일은 컴파일 되어 이러한 에러 코드를 참조하는 오브젝트 파일과 링크 됩니다. 이 C 원시 파일에는, 메세지 텍스트와 초기화 routine가 포함됩니다. 어느 C 의 파일도, 오리지날 원시 파일 말미의 ``.et''를 ``. c'' 및 ``. h''로 옮겨놓은 이름이 됩니다.

원시 파일중의 ``#''는 코멘트 캐릭터로서 다루어져 거기로부터 줄 끝까지의 텍스트는 무시됩니다.

버그
compile_et 하 yacc(1) 에 근거하는 지극히 단순한 파서를 이용하고 있기 (위해)때문에, 에러 회복 처리에는 개량해야 할 점이 많이 남아 있습니다.

관련 항목
yacc(1), comm_err(3) Ken Raeburn, A Common Error Description Library for UNIX.