[프로그래밍언어론] 6. C언어의 BNF 문법과 파싱 예제
·
CS/프로그래밍언어론
BNF 따라가기 BNF 문법은 나중에 YACC 라는 프로그램에 들어가 Parser 를 만든다. (야크는 파서 제너레이터이다.) 이번 글에서는 BNF 문법을 보고 주어진 C 코드를 파서가 어떻게 파싱하게 될 지 파싱트리를 그리는 과정을 직접해보고자 한다. 이 과정을 수행하려면 우선 lexical analyzer 에 의해 소스코드가 각각의 렉시컬 토큰 조각들로 구분이 되어있어야 한다. 소스코드에서 렉시컬 토큰을 추출하는 과정은 아래의 lex 코드를 참고하자. // 강의록에서 ANSI C grammer, Lex specification.pdf 에 있는 코드입니다. D [0-9] L [a-zA-Z_] H [a-fA-F0-9] E [Ee][+-]?{D}+ FS (f|F|l|L) IS (u|U|l|L)* %{ #i..