전 파서와 파싱을 난해한 프로그램 언어(OTLanguage)를 만들면서 알게 되었는데요.
그래서 파싱과 파서에 대해서 설명을 간단하게 적게 되었습니다.
파서를 알아보기 전에 파싱을 알아보겠습니다.
파싱은 특정 패턴이나 순서등을 추출하여 컴퓨터가 알아들을 수 있게 바꾸어주는 작업을 말합니다.
예시로 간단한 사칙연산을 사용해보았습니다.
(OTLanguage 문법 입니다.)
12.34 ㅇ+ㅇ (32 ㅇ/ㅇ 34) ㅇ+ㅇ 34234
위 문법을 구문 트리로 만들면 아래와 같은 구문 트리가 만들어지게 됩니다.
이렇게 토큰으로 분리되어 각 문장을 컴퓨터가 인식할 수 있게 만드는 작업을 하는 것 입니다.
사칙연산을 위해서는 <숫자> <연산자> <숫자> 이여야 하는데 만약 <숫자> <연산자> <다른 무언가> 와 같이 규칙에 맞지 않는 규칙이 들어가 있다면 변환하지 못하고 있어야 하는 것이죠.
정상적으로 문법에 맞게 입력하면 파싱이 올바르게 작동합니다.
34 ㅇ+ㅇ 342아34
<숫자> <연산자> <???>
사실 파서는 단순히 파싱을 하는 프로그램을 말하는 것입니다.
여담으로 OTLanguage에는 전용 파서를 직접 들어가있습니다.
1개씩 계산해 내려가는 동작을 출력하면 아래처럼 동작합니다.