전처리 툴
본 장에서는 OFCOBOL의 전처리 툴 및 옵션에 대해 설명한다. 기본적인 컴파일 옵션은 -h으로 확인할 수 있다.
1. ofconv
ofconv 명령어를 통해 IDMS-COBOL 문법을 OpenFrame 환경에서 사용할 수 있는 COBOL 문법으로 전환한다.
-
사용법
Usage : ofconv -i <source-file> [options]
-
[options]
항목 설명 -saveretcode
프로그램 내의 RETURN-CODE 값을 NDB2 구문을 호출한 뒤 복원한다.
-dmlseq
프로그램 내의 DML 세그먼트의 sequence number을 출력한다.
-uc
프로그램 내에서 사용되고 있는 DML 세그먼트를 리스팅한다.
2. ofcbpp
ofcbpp 명령어를 통해 컴파일과는 별도로 COPY 문에 대한 처리 등 전처리를 수행할 수 있다.
-
사용법
Usage : ofcbpp -i <source-file> [options]
-
[options]
항목 설명 -o <output name>
출력 파일의 이름을 결정한다.
-copypath <path>
환경변수로 지정한 copybook path 외에 copybook path를 지정한다. 추가할 경로 당 하나의 옵션을 사용한다.
--enable-osvs
OS/VS COBOL의 문법을 포함하여 전처리를 수행한다.
--enable-rw
IBM REPORT WRITER 관련 문법을 포함하여 전처리를 수행한다.
--enable-include
EXEC SQL INCLUDE로 선언된 파일을 DB2INCLUDE 환경변수로 지정된 디렉터리, OFCOBCPY 환경변수로 지정된 디렉터리, 현재 디렉터리 순으로 검색하여 소스를 삽입한다.
--enable-declare
EXEC SQL INCLUDE로 선언된 파일을 DB2INCLUDE 환경변수로 지정된 디렉터리, OFCOBCPY 환경변수로 지정된 디렉터리, 현재 디렉터리 순으로 검색하여 소스를 삽입한다. 그리고 EXEC SQL 문을 통해 참조되는 DATA DIVISION 변수의 앞뒤가 EXEC SQL DECLARE 문을 통해 감싸져있지않다면, 해당 구문을 추가한다.
--collating-seq-ebcdic
collating seqence가 EBCDIC이 되도록 구문을 추가한다.
--add-missing-period
Section / Paragraph 이전 Sentence의 end-period가 생략된 경우 end-peroid를 추가한다. 단, Section / Paragraph는 A area 영역에 선언되어야 한다.
--conv-stop-run
STOP statement를 GOBACK statement로 변환하여 전처리를 수행한다.
--disable-cpy-limit
COPY statement를 사용하는 경우 target copybook 이름의 8글자 제한을 해제한다.
--expanded
Expanded COBOL의 문법을 포함하여 전처리를 수행한다. 지원 중인 Expanded COBOL 문법은 OpenFrame COBOL "Language Reference 안내서"의 " 부록 “Expanded COBOL"을 참고한다.
--conv-nominal-key
--enable-osvs 옵션을 사용했을 때 동작하며 NOMINAL KEY clause를 ORGANIZATION INDEXED clause로 대체한다.
3. ofcbppf
ofcbppf 명령어를 통해 ofcob에서 Net-COBOL을 컴파일하기 위한 전처리를 수행할 수 있다.
-
사용법
Usage : ofcbppf -i <source-file> [options]
-
[options]
항목 설명 -o <output name>
출력 파일의 이름을 지정한다.
--version
ofcbppf 의 현재 버전을 나타낸다.
-v
COBOL 프로그램이 가변 형식임을 지정한다.
-l
SECTION, PARAGRAPH의 이름을 출력하는 DISPLAY statement를 삽입한다.
-c <num>
지정한 num에 따라 전처리에 필요한 collating sequence 모드를 설정한다.
-
0 : 전처리 과정에서 별도의 collating sequence에 대한 처리를 수행하지 않는다. (기본값)
-
1 : COBOL 프로그램에 collating sequence가 지정되어 있지 않는 경우에만, OpenFrame AIM이 기본으로 제공하는 collating sequence를 사용하도록 전처리한다.
-
2 : COBOL 프로그램에 collating sequence가 지정되어 있는 경우와 지정되어 있지 않는 경우 항상 OpenFrame AIM이 기본으로 제공하는 collating sequence를 사용하도록 전처리한다.
-t
CALL statement를 수행할 때 callpush, callpop 함수를 호출하는 코드를 생성한다. 이것을 통하여 해당 함수에 전달하는 Argument 정보를 OpenFrame에 전달할 수 있다.
--resolve-console
DISPLAY statement의 UPON CONSOLE phrase를 사용할 수 있도록 한다.
--print-rename
전처리를 통해 이름이 변경된 변수의 변경 전과 변경 후의 변수명 리스트를 출력한다.
--user-ndb-exception
NDB statement 전처리할 때 DB EXCEPTION과 DEAD LOCK 처리를 수행하는 CODE를 자동으로 생성하지 않도록 한다.
--config-print
MODE, CHARACTER TYPE clause 전처리 후 나타나는 Print 제어 코드를 CSV 형식의 config 파일을 통해 변경할 수 있도록 한다.
--call-assembly
OFASM의 variable_parameter_list를 사용할 수 있도록 CALL statement를 수행할 때 파라미터 정보를 넘겨주는 코드를 생성한다.
-
4. ofcbppe
ofcbppe 명령어를 통해 ofcob에서 esql 문법을 컴파일하기 위한 전처리를 수행할 수 있다.
-
사용법
Usage: ofcbppe -i <source-file> [options]
-
[options]
항목 설명 -o <output name>
출력 파일의 이름을 지정한다.
--version
ofcbppe 의 현재 버전을 나타낸다.
-copypath <path>
COPYBOOK이 저장된 디렉터리를 지정한다.
--enable-osvs
OS/VS COBOL의 문법을 포함하여 전처리를 수행한다.
--enable-rw
IBM REPORT WRITER 관련 문법을 포함하여 전처리를 수행한다.
--enable-varchar
사용자가 선언한 COBOL group item을 ESQL의 VARCHAR 데이터 타입으로 인식하도록 지정한다.
--enable-mode-ansi
ANSI 타입의 동적 SQL을 사용하도록 지정한다. 이 옵션 값이 지정되었을 경우 Tibero 타입의 동적 SQL을 사용하면 프리컴파일러에서 문법 에러를 발생한다.
--enable-unsafe-null
지시자 변수가 없을 때 NULL 값을 허용할 것인지의 여부를 지정하는 옵션이다. NULL 데이터가 예상되는 경우에도 편의상 지시자 변수 사용을 생략하고 싶을 때 이 옵션을 사용한다.
--enable-runtime-odbc
ODBC(Open DataBase Connectivity)를 사용할 경우 이 옵션을 사용한다.
--enable-close-on-commit
commit과 함께 커서를 닫도록 지정한다.
--enable-mssql
DB2 SQL을 MSSQL의 SQL로 치환한다.
--enable-end-of-fetch-100
SQL 문장의 수행 후 END-OF-FETCH 상황에서 사용자에게 반환할 SQLCODE 값을 100으로 지정한다.
--enable-loglvl-debug
esql_set_option에 "LOG_LVL", "DEBUG" 를 지정한다.
--remove-quote
tbdb2cblcv 사용시 ROWNUM를 사용하는 경우 큰따옴표를 제거한다.
--disable-cpy-limit
COPY statement 사용시 target copybook 이름의 8글자 제한을 해제한다.
-
ofcbppe는 Tibero에서 제공하는 ESQL Parser를 참조한다. 따라서 ofcbppe 툴을 사용하여 ESQL 구문을 전처리하기 위해서는 Tibero 클라이언트가 설치되어 있어야 한다. "Tibero 설치 안내서"를 참고하여 설치하고, TB_HOME의 client/lib에서 libtbeparser.so가 존재하는지 확인한다.
-
ofcbppe-1.0.34 이전 버전에서는 --enable-runtime-odbc 대신 --runtime-odbc를 사용해야 한다. 정확한 내용은 --help 옵션을 통해 확인한다.
-
5. ofcbppd
ofcbppd 명령어를 통해 ofcob에서 DB2 문법을 컴파일하기 위한 전처리를 수행할 수 있다(ofcbppd는 현재 comp로 선언된 host variable의 Endian 처리를 위한 'comp_swap' 함수를 생성하는 기능만 지원하고 있다).
-
사용법
Usage: ofcbppd -i <source-file> [options]
-
[options]
항목 설명 -o <output name>
출력 파일의 이름을 지정한다.
--version
ofcbppd 의 현재 버전을 나타낸다.
-copypath <path>
COPYBOOK이 저장된 디렉터리를 지정한다.
--enable-osvs
OS/VS COBOL의 문법을 포함하여 전처리를 수행한다.
--enable-rw
IBM REPORT WRITER 관련 문법을 포함하여 전처리를 수행한다.
--oracle
ORACLE DB 사용이 가능하도록 한다.