ashrimp blog

piped 개발기 - lexer/parser 에러메세지 우아하게 보여주기

Written in 2020/07/21 21:07:27 UTC, categoried as compiler

piped라는 빌드 시스템을 하나 개발하고 있다. lexer/parser는 다 만들었는데, 역시 에러 메세지 출력이 문제였다. 평소 같았으면 나 혼자 쓸 테니까 대충 어디서 뭐 때문에 터졌는지 정도만 간단하게 표시하려고 했겠는데, piped는 그래도 어디에 내놔도 남부끄럽지 않게 만들어보려는 목적도 있어서 그렇게 할 수는 없었다. 그래서 일반적인 컴파일러와 유사하게 소스코드와 위치, 문제 내용을 우아하게 출력하는 기능을 구현했다. 생각보다 까다로웠다.

error log screenshot

rustc 같은 건 진짜 잘 만들어진 프로그램이구나 새삼 느꼈다. 그래도 이정도면 나름 괜찮은 것 같아서 만족스럽다.