Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
AECforWebAssembly
A port of ArithmeticExpressionCompiler from x86 to WebAssembly, so that the programs written in the language can run in a browser. The compiler has been rewritten from JavaScript into C++.
-
Lark
Lark is a parsing toolkit for Python, built with a focus on ergonomics, performance and modularity.
I've been going down this rabbit hole for the last few years (!). Turns out I really enjoy compiler theory and design. I can whole heartedly recommend you start off with these 3 resources: https://ruslanspivak.com/lsbasi-part1/, http://craftinginterpreters.com/, https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/index.html in that order. My first project when trying out Go was going through ruslanpivak's series https://github.com/thegtproject/spi (a little rough around the edges!) and it was a lot of fun.
You can see the compiler for my programming language on GitHub, in case it helps you: https://github.com/FlatAssembler/AECforWebAssembly
I have not used the other parser generator libraries people have mentioned, but I recently used lark to write a compiler for a BASIC like language and it's really simple to use if you know about context free grammars. I've read a bit of http://craftinginterpreters.com/ and there are example grammars in there. You can either go through that site or you can checkout the examples in the lark github and get straight into it. They also have a gitter channel where you can ask for help.