Бесплатный Лексический Анализатор / Источник Сканера - PullRequest
1 голос
/ 05 октября 2009

Я ищу рукописный бесплатный лексер / сканер для любого языка, даже для игрушечного языка, написанного на языке, аналогичном C / C ++. Я новичок в создании языков и разработке компиляторов, я хотел бы поиграть с исходным кодом.

Например, на этом сайте написан рукописный лексер до того, как лекс сгенерирован сгибанием: http://en.wikipedia.org/wiki/Flex_lexical_analyser

Спасибо.

Ответы [ 3 ]

4 голосов
/ 05 октября 2009

Мне нравится учебник LLVM - он начинается с представления рукописного лексера для игрушечного языка под названием Kaleidoscope, сначала как упражнение «грамотное программирование» с хорошими текстовыми объяснениями каждого бита; это продолжается созданием синтаксического анализатора, который создает абстрактное синтаксическое дерево в том же стиле; затем все это (400 строк рукописного автономного C ++ для lexer, parser и AST builder) снова отображается как полный исходный файл .cpp, так что вам не нужно собирать все это самостоятельно. Следующие главы показывают генерацию кода, JIT, оптимизацию, ... действительно полезное небольшое учебное пособие! Но вы можете остановиться на лексере, если это все, что вы сейчас хотите понять; -).

0 голосов
/ 05 октября 2009

Lex и Yacc - это «классические» инструменты, используемые для построения языков и компиляторов.

0 голосов
/ 05 октября 2009

Вы, вероятно, хотите flex , который, вероятно, является наиболее широко используемым лексером на планете.

...