ftomassetti / LangSandbox

Project to illustrate how to build a programming language
Apache License 2.0
698 stars 90 forks source link

Apache 2.0 License  build status

LangSandbox

This project is used to illustrate how to build a programming language. The code present here is discussed in a series of articles.

From these series of tutorials I derived a book on creating languages.

You may be interested in the companion project (Kanvas) where we show how to build an editor for your language.

  1. Define the lexer
  2. Define the parser
  3. Build an editor with syntax highlighting (the code for this part is in this project)
  4. Build an editor with autocompletion (the code for this part is in this project)
  5. Map the parse tree to the abstract syntax tree
  6. Transform the abstract syntax tree
  7. Validate the abstract syntax tree
  8. Generate bytecode

I hope you enjoy and please let me know if you have issues, ideas, comments or any sort of feedback!