2012-07-07 3 views
1

이 나는 ​​사람이 는 렉서 별도로렉서의 목적은 무엇입니까?

는이 프로그램이 컴파일시 거치는 단계 중 하나입니다 필요한 이유에 대한 답을 찾을 수 없습니다 this question. 에 대한 답을 읽고 있었다? 누군가 내가 왜 렉서가 필요한지 간단히 설명해 주실 수 있습니까?

답변

4

렉서는 입력 문자 스트림을 가져 와서 토큰으로 변환합니다.

이것은 다양한 목적으로 사용될 수 있습니다. 간단한 텍스트 처리 및 조작을 위해 어휘에 변형을 적용 할 수 있습니다.

또는 어휘의 스트림을 파서 트리로 변환 할 파서로 보내면됩니다.

목표가 컴파일 인 경우 어휘 분석이 첫 번째 단계입니다. 문자를 가져 와서 토큰으로 변환하는 하위 단계라고 생각하십시오. 해석기는 알파벳이 구문 분석 트리를 구문 분석하고 생성하는 토큰 (렉서로 작성)으로 구성된 상위 레벨 메커니즘입니다.

목표가 텍스트 조작이면 조작 규칙을 어휘 자체에 적용 할 수 있습니다.

+0

좋은 답변입니다. 감사 –

2

좋은 예가 위키 피 디아 http://en.wikipedia.org/wiki/Lexical_analysis입니다.

예를 들어 "(33 + 3) * 2"표현식을 평가하려는 경우 첫 번째 단계는 문자열을 토큰 "(", "33", "+", "3", " ","* ","2 ". 늘어나는만큼 컴파일러에 관한 나의 길을 기억한다. 이것은 가장 긴 일치 단어 자동 완성에 의해 이루어진다.

+1

예, 프로그램의 일반 텍스트를 일련의 토큰으로 분할하는 컴파일 프로세스의 첫 번째 단계입니다. – Stasik

관련 문제