02_20101008_어휘분석기[1]
- 최초 등록일
- 2012.10.16
- 최종 저작일
- 2010.10
- 16페이지/ 한컴오피스
- 가격 1,000원
소개글
컴파일러, 렉스아님, 노가다
목차
1. 문제정의
2. 문제해결
3. 결과창
4. 소스코드
5. 결론
본문내용
▷ 간단한 어휘분석기를 만든다.
▷ 어휘 분석기 Language : Tiger
- Reserver word(19개)
* array, if, then, else, while, for, to, do, let, in, and, of, break, nill, function, var, type, end, let
- Number : integer d+
- Special Symbol(24개)
* , : ; ( ) [ ] { } . + - * / = <> < <= >= > & | :=
- Comment
* c - style /* ... */
- String Literal(4개)
* \n \t \ "
▷ 입력값 : Tiger 프로그램(예제 프로그램 제공됨)
▷ 출력값 : token stream
▷ 입출력 sample :
- 입력 : var N := 8
- 출력 : VAR
ID(N)
ASSIGN
INT(8)
2. 문제해결
※ 기본 설계 및 알고리즘
▷ reservered word
- 배열에 저장해 놓고 스트링과 해당 배열에 있는 값들이 일치하는지 확인한다.
* 매번 스트링을 비교해서 연산을 하는 것이 부담스러운 일이지만, 철자 하나씩 따져서 Automata를 만들고 프로그램을 하게 된다면 끝이 나지 않을 것이다.
▷ Number
- 소수점과 부호는 표현하지 않는다.
- 출력되지 않은 버퍼의 앞에 있는 내용이 모두 숫자인 경우에 숫자로 인식한다.
- 출력되지 않은 버퍼의 내용이 없는 경우에 숫자로 인식한다.
- 출력되지 않은 버퍼의 내용이 문자가 있는 경우 숫자는 문자로 인식한다.
▷ special symbol
- special symbol은 버퍼 앞의 내용이 있는 경우 해당 내용을 ID로 인식한다
참고 자료
없음