NAME

Lox - A Perl implementation of the Lox programming language

DESCRIPTION

A Perl translation of the Java Lox interpreter from Crafting Interpreters.

INSTALL

To install the project dependencies and just run plox from the project directory:

$ cpanm --installdeps .

If you'd rather build and install it:

$ perl Makefile.PL
$ make
$ make test
$ make install

SYNOPSIS

If you have built and installed plox:

$ plox
Welcome to Perl-Lox version 0.01
>

$ plox hello.lox
Hello, World!

Otherwise from the root project directory:

$ perl -Ilib bin/plox
Welcome to Perl-Lox version 0.01
>

$ perl -Ilib bin/plox hello.lox
Hello, World!

TESTING

The test suite includes 238 test files from the Crafting Interpreters repo.

$ prove -l t/*

ISSUES

Differences from the canonical "jlox" implementation:

  • signed zero is unsupported

  • methods are equivalent

    Prints "true" in plox and "false" in jlox:

    class Foo  { bar () { } } print Foo().bar == Foo().bar;

AUTHOR

Copyright 2020 David Farrell

LICENSE

See LICENSE file.