본문내용
(1)보고서 제목
Lexical Analyzer
(2)문제
파스칼문법과 비슷한 문법을 만들고 그문법에서 생성된 20줄 이상의 한글프로그램을 만든 다음 이프로그램을 인식하여 토큰테이블, 심볼테이블, 상수테이블을 만드는 Lexical Analyzer를 만들어라.
(3)접근방법
파스칼 문법구조와 비슷한 문법구조를 완성한후 문법에 맞추어 token을 분리해내는 방법
(4)알고리즘
문법:
stmt -> stmt;
stmt -> exp
exp -> exp addop term | term
addop -> +|-
term -> term mulop factor | factor
mulop -> *|/
factor -> (exp) | number
stmt -> if_stmt | other
if_stmt -> if(exp) stmt
id -> id | Alphabet
파일로부터 읽어들인 자료를 char단위로 읽어들여서 그값이 한글인지 영문인지 특수문자인지, 아니면 숫자인지 판단하여 각각에 할당된 임시 저장공간에 저장하고 reserved word인지 판단후 token 저장 구조체에 각각의 속성정보들과 같이 저장하여 관리함. 완성형 한글은 2byte임으로 char형 2byte로 받아서 관리하고 한글 한개의 코드값은 항상 음수임을 이용 토큰에서 한글을 인식하는 함수를 만들어서 사용. 토큰 구조체속에 토큰의 속성을 알 수 있는 변수를 사용하여 토큰에 대한정보를 구체화하여 재사용 할수 있게함
Lexical Analyzer
(2)문제
파스칼문법과 비슷한 문법을 만들고 그문법에서 생성된 20줄 이상의 한글프로그램을 만든 다음 이프로그램을 인식하여 토큰테이블, 심볼테이블, 상수테이블을 만드는 Lexical Analyzer를 만들어라.
(3)접근방법
파스칼 문법구조와 비슷한 문법구조를 완성한후 문법에 맞추어 token을 분리해내는 방법
(4)알고리즘
문법:
stmt -> stmt;
stmt -> exp
exp -> exp addop term | term
addop -> +|-
term -> term mulop factor | factor
mulop -> *|/
factor -> (exp) | number
stmt -> if_stmt | other
if_stmt -> if(exp) stmt
id -> id | Alphabet
파일로부터 읽어들인 자료를 char단위로 읽어들여서 그값이 한글인지 영문인지 특수문자인지, 아니면 숫자인지 판단하여 각각에 할당된 임시 저장공간에 저장하고 reserved word인지 판단후 token 저장 구조체에 각각의 속성정보들과 같이 저장하여 관리함. 완성형 한글은 2byte임으로 char형 2byte로 받아서 관리하고 한글 한개의 코드값은 항상 음수임을 이용 토큰에서 한글을 인식하는 함수를 만들어서 사용. 토큰 구조체속에 토큰의 속성을 알 수 있는 변수를 사용하여 토큰에 대한정보를 구체화하여 재사용 할수 있게함
소개글