Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Python to JavaScript translator
Python JavaScript

This branch is 89 commits ahead, 4 commits behind chrivers:master

README.rst


Python to JavaScript translator.

Webpage: http://pyjaco.org

Mailinglist: http://groups.google.com/group/pyjaco

Installation

Execute the following:

git clone https://github.com/chrivers/pyjaco
cd pyjaco
make

Examples

firefox examples/gol.html

And the game of life should show in the browser. If it doesn't, it's a bug. You can generate that file using

python examples/gol.py > examples/gol.html

Tests

./run_tests.py

Will run all tests, that are supposed to work. If any test fails, it's a bug.

./run_tests.py foo

Will run all tests with "foo" in the name. Very useful for running a group of tests.

./run_tests.py -a

Will run all tests including those that are known to fail (currently). It should be understandable from the output.

./run_tests.py -x or ./run_tests.py --no-error

Will run tests but ignore if an error is raised by the test. This is not affecting the error generated by the test files in the tests directory.

For more flags then described here

./run_tests.py -h

Single test cases

With the "casetest" script you can keep comparing the output of pyjaco to the output of python on the same python script. It's very useful if you are debugging the compiler or standard library.

./casetest foo.py

Will run foo.py through python and pyjaco, and display the differences. It will then display a line of "#", and wait for you to press enter to do another iteration. When the files match, casetest will exit.

Usage

From source code:

import sys
    from pyjaco import Compiler
    code = open("tojs.py", "r")
    compiler = Compiler()
    compiler.append_string(code.read())
    print str(compiler)

Using the pyjs.py script:

./pyjs.py filename.py --output filename.js --watch

License

Free Software. See the LICENSE file for exact details.

Something went wrong with that request. Please try again.