컴파일러 과제로 LALR parser를 만드는 과제를 겨우 끝냈습니다.

생각보다  코딩은 짧았는데, 이론으로 많이 고민을 해야 해서 매우 힘들었습니다.


yacc는 쓰지말고, parser를 직접 만들어야 하는게 과제였습니다.

yacc를 쓰면 자동으로 lex에서 Token을 받아오는데, parser를 직접 만들게 되면 자동으로 Token을 받아 올 수 없어서 고민을 했습니다.

lex에서 분리한 Token을 받아오는 함수가 무엇인지 알 수가 있어야지요.(소스를 분석해도 잘 모르겠더군요)

그래서 결국 Lex에서 Token을 주루루룩 file로 저장하고, 그 file을 제 parser가 open하는 형태로 Token을 받아왔습니다.

Lex에서 직접 제 parser로 Token을 받아올려면 lex의 무슨 멤버함수를 써야 하는지 아시는 분 계시는지요?

file을 저장했다가 불러오기 때문에, 만족스럽지가 못하네요.

lex