Manpages

이 름

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 [AT] kldp.org>, 2000년 4월 19일