Skip to content

ludwigpacifici/saumon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Saumon ><>

Lox language implemented in OCaml.

Goals

  • Learn about compiler front ends and interpreters.
  • Play and learn with OCaml and its ecosystem. Note, this implementation diverge slightly from the book ; OCaml idiomatic code is quite different from Java (used for the original implementation).
  • Keep the same learning philosophy as in the book: abstain of using tools like Lex or Yacc and do "everything by hand".

Build and tests

Build with Dune:

$ dune build @install
$ dune exec saumon

Install with Opam:

$ # cd project/root/folder
$ opam install .

Test with:

$ dune runtest

Usage

To use saumon in interactive mode, simply run:

$ saumon

To interpret a file, use:

$ saumon <filename>

Continuous Integration Build Status

Travis CI: https://travis-ci.org/ludwigpacifici/saumon

Progress

Acknowledgments

  1. Designed by Bob Nystrom, A handbook for making programming languages.
  2. Inspired by Rulox.

License

See LICENSE.

Releases

No releases published

Packages

No packages published

Languages