문제

C/C ++와 비슷한 언어로 작성된 장난감 언어조차도 모든 언어에 대한 손으로 쓴 무료 Lexer/Scanner를 찾고 있습니다. 저는 언어와 컴파일러 디자인을 만드는 초보자이며 소스와 함께 놀고 싶습니다.

예를 들어, Flex가 Lex를 생성하기 전에이 웹 사이트에 손으로 작성된 Lexer가 있습니다. http://en.wikipedia.org/wiki/flex_lexical_analyser

감사.

도움이 되었습니까?

해결책

나는 좋아한다 LLVM 튜토리얼 -만화경이라는 장난감 언어에 대한 손으로 쓴 렉서를 제시하는 것으로 시작합니다. 먼저 각 비트에 대한 좋은 텍스트 설명이있는 "문맹 프로그래밍"연습으로 시작합니다. 그것은 같은 스타일로 추상 구문 트리를 구축하는 파서를 만들어 계속됩니다. 그런 다음 모든 것 (Lexer, Parser 및 AST Builder의 경우 손으로 작성된 독립형 C ++의 400 라인)이 다시 .CPP 소스 파일로 다시 표시되므로 모든 것을 혼자서 정리할 필요는 없습니다. 다음 장에 코드 생성, JIT, 최적화, ... 정말 유용한 작은 튜토리얼을 보여줍니다! 그러나, 당신이 지금 당신이 이해하고 싶은 전부라면 Lexer로 멈출 수 있습니다 ;-).

다른 팁

Lex와 YACC 언어 및 컴파일러를 구축하기 위해 사용되는 "클래식"도구입니다.

당신은 아마 원할 것입니다 몸을 풀다, 아마도 지구상에서 가장 널리 사용되는 Lexer 일 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top