Skip to main content
Version: Next

Introduction for Jayvee Developers

"On the tracks of Jayvee's internals"

How to contribute

In order to contribute to the Jayvee project, please have a look at our contribution guide. Before planning a contribution, please read the design principles and consider if your changes fit the vision expressed there.

The overall project is licensed under the AGPL-3.0-only license and is compliant to the REUSE Specification by the Free Software Foundation Europe. Because of this, contributions are required to adhere to the license and follow that specification. More details on this topic can be found here.

And last but not least, please read and follow our code of conduct.

Project overview

The Jayvee repository is located here on GitHub. It uses an Nx mono-repository setup and contains all related projects, most notably the Jayvee language server and interpreter. Please have a look at the architecture overview for more details.

Prerequisites

Node.js and npm are required for development. It is recommended to use their LTS version to avoid any potential compatibility issues. Also, refer to this quick start guide for developers.

In order to run the Jayvee VS Code extension during development, VS Code is required as IDE. Using VS Code also allows installing the Langium VS Code extension for better IDE support when working with Langium grammar files.

Resources for getting started

Langium

Building compilers / interpreters / DSLs

  • Crafting Interpreters: A book by Robert Nystrom on implementing an interpreter for the Lox scripting language
  • DSL Engineering: A book by Markus Voelter on designing, implementing and using domain-specific languages
  • Awesome Compilers: A list featuring many resources on compilers and interpreters