책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 리눅스/유닉스 프로그래밍
· ISBN : 9788979142150
· 쪽수 : 495쪽
· 출판일 : 2002-11-23
책 소개
목차
1장. 렉스와 야크
가장 간단한 렉스 프로그램
렉스 이용한 단어 인식
기호 테이블
문법
파서와 렉서의 의사 소통
언어 요소 분석기
야크 파서
규칙절
렉스와 야크의 실행
렉스와 손수 작성한 렉서의 비교
연습 문제
2장. 렉스 이용하기
정규 표현식
정규 표현식의 예
단어 세기 프로그램
명령행 파싱
시작 상태
C 소스 코드 분석기
요약
연습 문제
3장. 야크 이용하기
문법
재귀 규칙
이동/감소 파싱
야크에서 파싱할 수 없는 문법
야크 파서
정의절
규칙절
기호 값과 동작
렉서
간단한 파서 컴파일 및 실행
산술 표현식과 모호성
우선 순위 규칙을 사용하지 말아야 할 때
변수와 타입을 갖는 토큰
기호 값과 %union
기호 테이블
함수와 예약어
기호 테이블의 예약어
교환 가능한 함수와 변수명
Make를 이용한 파서 구축
요약
연습 문제
4장. 메뉴 생성 언어
MGL 개요
MGL 개발
MGL 구축
초기화
화면 처리
종료
샘플 MGL 코드
연습문제
5장. SQL 파싱
SQL 개요
관계형 데이터베이스
관계의 구성
SQL을 사용하는 세 가지 방법
구문 검사기
렉서
에러와 메인 루틴
파서
정의
최상위 규칙
스키마 서브-언어
모듈 서브-언어
조작 서브-언어
잡동사니
구문 검사기의 사용
임베디드 SQL
렉서에 가한 변경
파서에 가한 변경
보조 루틴
전처리기 이용하기
연습문제
6장. 렉스 명세서 참조
렉스 명세서의 구조
정의절
규칙절
사용자 서브루틴
BEGIN
버그
모호한 미리 보기
AT&T 렉스
플렉스
문자 변환
컨텍스트 감지
왼쪽 컨텍스트
오른쪽 컨텍스트
정의 (대체)
ECHO
Include 연산 (파일의 논리적 포함)
yywrap( )을 이용한 파일 체인
파일 포함 구조
문자열에서 읽어들이는 입력
AT&T 렉스
플렉스
아브락사스 피시렉스
MKS 렉스
POSIX 렉스
input( )
내부 테이블(%N 선언)
렉스 라이브러리
main( )
다른 라이브러리 루틴
행 번호와 yylineno
리터럴 블록
한 프로그램에 존재하는 여러 개의 렉서
결합된 렉서
여러 개의 렉서
output( )
렉서가 생성한 렉서의 이식성
렉스 명세서 이식
생성된 C 렉서 이식
정규 표현식 구문
메타 문자
POSIX 확장
REJECT
yylex( )에서 값 리턴하기
시작 상태
unput( )
yyinput( ), yyoutput( ), yyunput( )
yyleng
yyless( )
yylex( )
yylex( ) 안의 사용자 코드
yymore( )
yytext
yytext 확장
yywrap( )
7장. 야크 문법 참조
야크 문법의 구조
기호
정의절
규칙절
사용자 서브루틴절
동작
규칙에 내장된 동작
내장 동작을 위한 기호 타입
사라져가는 기능
모호성과 충돌
충돌의 타입
야크에 존재하는 버그
실제 버그
무한 재귀
실제 버그가 아닌 것
끝 표시기
에러 토큰과 에러 복구
%ident 선언
상속된 속성 ($0)
상속된 속성을 위한 기호 타입
렉서의 피드백
리터럴 블록
리터럴 토큰
야크 파서의 이식성
야크 문법 이식
생성된 C 파서 이식
우선 순위, 결합 법칙 그리고 연산자 선언
우선 순위와 결합 법칙
연산자 선언
우선 순위와 결합 법칙 이용한 충돌 해소
우선 순위의 전형적인 이용
재귀 규칙
왼쪽과 오른쪽 재귀
규칙
특수 문자
시작 선언
기호 값
기호 타입 선언
계산기 예제
명시적인 기호 타입
토큰
토큰 번호
토큰 값
%type 선언
%union 선언
여러 가지 다른 문법들
결합된 파서
여러 개의 파서
재귀적인 파싱
여러 개의 파서를 위한 렉서
y.output 파일
야크 라이브러리
main( )
yyerror( )
YYABORT
YYACCEPT
YYBACKUP
yyclearin
yydebug와 YYDEBUG
YYDEBUG
yydebug
yyerrok
YYERROR
yyerror( )
yyparse( )
YYRECOVERING( )
8장. 모호성과 충돌
포인터 모델과 충돌
충돌의 타입
파서 상태
y.output의 내용
y.output 안의 충돌 재검토
충돌의 흔한 예
표현식 문법
IF-THEN-ELSE
중첩 리스트 문법
충돌 해결 방법
IF-THEN-ELSE (이동/감소)
루프 안에 있는 루프 (이동/감소)
표현식의 우선 순위 (이동/감소)
제한된 미리 보기 (이동/감소 혹은 감소/감소)
선택 사항의 중복 (감소/감소)
요약
연습 문제
9장. 에러 보고와 복구
에러 보고
더 나은 렉스 에러 보고
에러 복구
야크 에러 복구
에러 토큰의 위치
컴파일러 에러 복구
연습 문제
부록 A. AT&T 렉스
에러 메시지
부록 B. AT&T 야크
옵션
에러 메시지
부록 C. 버클리 야크
옵션
에러 메시지
치명적인 에러
일반적인 에러
경고
추가적인 정보를 위한 메시지
부록 D. GNU 바이손
차이점
부록 E. 플렉스
차이점
옵션
에러 메시지
렉서 예제의 플렉스 버전
부록 F. MKS 렉스와 야크
차이점
새로운 기능
부록 G. 아브락사스 렉스와 야크
차이점
새로운 기능
부록 H. POSIX 렉스와 야크
옵션
차이점
부록 I. MGL 컴파일러 코드
MGL 야크 소스
MGL 렉스 소스
지원을 위한 C 코드
부록 J. SQL 파서 코드
야크 파서
상호 참조
렉스 스캐너
지원 코드




















