Lox - A Perl implementation of the Lox programming language
A Perl translation of the Java Lox interpreter from Crafting Interpreters.
As long as you have Perl 5.24.0 or greater, you should be able to run plox from the root project directory.
plox
If you'd rather build and install it:
$ perl Makefile.PL $ make $ make test $ make install
If you have built and installed plox:
$ plox Welcome to Perl-Lox version 0.02 > $ plox hello.lox Hello, World!
Otherwise from the root project directory:
$ perl -Ilib bin/plox Welcome to Perl-Lox version 0.02 > $ perl -Ilib bin/plox hello.lox Hello, World!
Pass the --debug or -d option to plox to print the tokens it scanned and the parse tree.
--debug
-d
The test suite includes 238 test files from the Crafting Interpreters repo.
$ prove -l t/*
Perl-Lox has these capabilities from the "challenges" sections of the book:
Anonymous functions fun () { ... }
fun () { ... }
Break statements in loops
Multi-line comments /* ... */
/* ... */
New Exceptions:
Evaluating an uninitialized variable
Differences from the canonical "jlox" implementation:
repl is stateful
signed zero is unsupported
methods are equivalent
Prints "true" in plox and "false" in jlox:
class Foo { bar () { } } print Foo().bar == Foo().bar;
Copyright 2020 David Farrell
See LICENSE file.
To install Lox, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lox
CPAN shell
perl -MCPAN -e shell install Lox
For more information on module installation, please visit the detailed CPAN module installation guide.