안녕하세요 ~!
이번에 LL(1) parser 를 자바로 구현해보려고 하는데
보통 책이나 인터넷 example 을 통해서 보면 예를들어
(a+b)*2 이 문장 자체를 BNF grammer 를 토대로 문법체크를 하더라구요. 이에 대해서 파서 알고리즘을 (파서 테이블을 가지고 구현하는 방법) 이해해 보면 이해가 가는데
만약 제가 소스 코드를 읽어와서 파싱을 해보고 싶은데, 가령
test.ino 라는 파일을 읽어와서 문법체크를 해보고 싶습니다.
예를들면 int val = 3; 이어야 하는 문장이 ints val = 3; 이라던가 선언되지 않은 변수를 사용했다던가 세미콜론을 뺐다던가 등등 문법적인 오류를 체크하고 싶은데요.
먼저 머릿속에서 공회전이 도는게...
1. 파싱을 할려면 우선 스캐너를 사용해야 하는 것이지요? 스캐너가 토큰을 넘겨주면 파서는 토큰을 받아서 구문트리를 만는것이니까요 !