ray-delossantos / ts-rust-zig-deez

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Degens Interpreter Competition (DIC)

Based on the awesome book "Writing An Interpreter In Go" by Thorsten Ball
Use the code THEPRIMEAGEN for 30% off

Work In Progress

Contributing

Remember: first come, first serve. If there exists an implementation in your language of choice, contribute to it!

If not, start by copying LANG_TEMPLATE folder:

cp -r .github/LANG_TEMPLATE/ <your_folder_name>

It comes with:

├── .gitignore  # ignores all editor-specific or os-specific files, add additional stuff for your language
├── Dockerfile  # for Docker builds
├── Makefile    # convenient commands runner (make <cmd>) under *NIX systems
└── make.cmd    # convenient commands runner (.\make.cmd <cmd>) under Windows

Running

Command names

General:

  • help — outputs all the commands available, same as running the make or make.cmd without arguments

Without Docker:

  • fmt
  • lint
  • test
  • ready — should run the three above

Docker:

  • docker-build — makes the build
  • docker-ready — runs the build image and executes fmt, lint, test commands inside

*NIX (Linux, macOS, etc.)

This assumes there is a Makefile in the root of the language directory.

# without docker
make fmt
make lint
make test
make ready  # runs all three above

# docker, assuming there's a Dockerfile
make docker-build  # makes the build
make docker-ready  # runs fmt, lint and test in the built image

Windows

This assumes there is a make.cmd in the root of the language directory.

@rem without docker
.\make.cmd fmt
.\make.cmd lint
.\make.cmd test
.\make.cmd ready  @rem runs all three above

@rem docker, assuming there's a Dockerfile
.\make.cmd docker-build  @rem makes the build
.\make.cmd docker-ready  @rem runs fmt, lint and test in the built image

About


Languages

Language:OCaml 15.9%Language:Elixir 11.9%Language:Fortran 9.7%Language:TypeScript 9.0%Language:Zig 5.4%Language:C++ 4.8%Language:Java 4.6%Language:PHP 4.1%Language:Dart 4.1%Language:C# 4.1%Language:Odin 4.0%Language:Erlang 4.0%Language:C 3.8%Language:Rust 3.5%Language:Python 3.4%Language:F# 3.1%Language:Crystal 1.4%Language:Dockerfile 1.3%Language:CMake 0.9%Language:Standard ML 0.8%Language:Shell 0.2%Language:Monkey 0.1%