YACC(1)

이름
Yacc - an LALR(1) 파서 생성기

사용법
yacc [ -dlrtv ] [ -b file_prefix ] [ -p symbol_prefix ] filename

설명
Yacc 은 파일의 문법 명세 사항을 읽어 이것을 위한 LR(1) 파서를 생성한다. 파서는 LALR(1) 파싱 테이블 집합과 C 프로그래밍 언어로 작성된 구동 루틴을 포함한다. Yacc 은 일반적으로 파서 테이블과 구동 루틴을 y.tab.c 파일에 쓴다.

다음은 유용한 옵션들이다:

    -b file_prefix
        -b 옵션은 출력 파일 이름의 접두사를 file_prefix 에 의해 표시된 문자열로 변경한다. 기본 접두사는 문자 y 이다.

    -d  -d 옵션은 y.tab.h 헤더 파일을 작성한다.

    -l  -l 옵션이 명시되지 않으면, yacc 은 생성되는 코드에 #line 지시를 삽입 한다. #line 지시는 C 컴파일러가 생성된 코드의 에러를 사용자의 원본 코드에 연관시키도록 한다. 만약 -l 옵션이 명시되었다면, yacc 은 #line 지시를 삽입하지 않는다. #line 지시는 사용자에 의해 유지된다.

    -p symbol_prefix
        The -p 옵션은 yacc에 의해 생성된 심볼을 symbol_prefix 에 정해진 문자열로 접두사를 변경한다. symbol_prefix. 기본 접두사는 문자열 yy 이다.

    -r  The -r 옵션에 의해 yacc 는 코드와 테이블을 위해 각각의 파일들을 생성한다. 코드 파일의 이름은 y.code.c, 테이블 파일의 이름은 y.tab.c 이다.

    -t  -t 옵션은 yacc 에 의해 생성된 프리프로세서의 지시를 변경해서, 디버깅 구문이 컴파일된 코드에 합쳐지게 할 것이다.

    -v  -v 옵션은 생성된 파서의 사람이 읽을 수 있는 설명을 y.output 파일에 쓰도록 한다.

만약 TMPDIR 환경변수가 설정되어 있다면, TMPDIR에 의해 표시된 문자열은 임시 파일 생성 디렉토리의 이름으로 사용될 것이다.

파일
y.code.c
y.tab.c
y.tab.h
y.output
/tmp/yacc.aXXXXXX
/tmp/yacc.tXXXXXX
/tmp/yacc.uXXXXXX

진단
만약 결코 줄어들지 않는 규칙이 있다면, 그런 규칙의 번호를 표준 에러로 보고한다. 만약 어떤 LALR(1) 충돌이 있다면, 충돌 번호를 표준 에러로 보고한다.

역자
배성훈 <plodder@kldp.org>, 2000년 4월 19일