Есть ли уроки по созданию простого интерпретатора с использованием Alex + Happy?

Я работаю над школьным проектом, где мне нужно создать переводчика для простого языка, используя Alex + Happy в Haskell.

Просматривая документацию, я понимаю большую ее часть, но хотел бы увидеть полный пример использования инструментов.

4 ответа

Решение

Не на построении интерпретаторов, а на построении лексеров и парсеров, да. Смотрите пример лексического анализатора в Alex здесь, в сочетании с введением к Happy здесь. Я нашел полезными файлы haskell.x и haskell.y, распространяемые в репозиториях darcs для Alex и Happy. Вы можете найти их здесь и здесь.

Я написал серию публикаций на bjbell.wordpress.com об использовании Alex+Happy+LLVM для написания компилятора для простого языка, похожего на Java.

Исходный код находится на GitHub по адресу https://github.com/bjwbell/NewL-Compiler (я не трогал его пару лет).

У Хэддока есть парсер Alex/Happy для документации, исходники которого находятся в файлах Lex.x и Parse.y.

Я написал пост о решении проблемы, которую вы описали: http://eax.me/simple-interpreter/ (на русском языке). Исходный код находится здесь: https://bitbucket.org/afiskon/hs-interpreter/

Другие вопросы по тегам