만들어야 할 것은 Lexical analysis 를 수행한 결과이다. 위키피디아에서는 Lexical analysis 에 대한 상세한 내용을 볼 수 있다.
결국 프로그램은 입력-처리-출력 구조를 가지므로, 핵심적인 사항은 무엇을 입력했을때, 무엇이 나오는가일 것이다. 예시를 통해서 구하는 것과 주어진 것 을 확인해보자.
다음과 같은 문자열이 입력으로 주어진다.
x = a + b * 2;
출력예시는 다음과 같다.
[ (identifier, x), (operator, =), (identifier, a), (operator, +), (identifier, b), (operator, *), (literal, 2), (separator, ;) ]
이렇게 보면 출력 부분이 무엇을 의미하는지 알 수 없으므로, 설명이 더 필요할 것 같다. 이 부분은 입력된 문자열을 토큰 들로 분해해서, 목록을 반환하는 것이다.
각 토큰은 이름과 값을 갖는다. (identifier, x) 에서 identifier 는 토큰의 이름인 식별자이고, x 는 토큰의 값이다.