Are there any tutorials on building a simple interpreter using Alex + Happy?
-
29-09-2019 - |
Question
I'm working on a school project where I have to build an interpreter for a simple language using Alex + Happy in Haskell.
After looking through the documentation I understand most of it, but would like to see a full blown example on using the tools.
Solution
Not on building interpreters, but on building lexers and parsers, yes. See the example for a lexical analyzer in Alex, here, combined with an intro to Happy here. I found the haskell.x and haskell.y files distributed in the darcs repos for Alex and Happy useful. You can find those here and here.
OTHER TIPS
I wrote a series of posts at bjbell.wordpress.com on using Alex+Happy+LLVM to write a compiler for a simple Java like language.
The source-code is on GitHub at https://github.com/bjwbell/NewL-Compiler (I haven't touched it in a couple years).
Haddock has an Alex/Happy parser for documentation, the sources are here in the files Lex.x and Parse.y.
I wrote a post about solving a problem that you described: http://eax.me/simple-interpreter/ (in Russian). Source code is here: https://bitbucket.org/afiskon/hs-interpreter/