Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close

pyjaco

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

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

License

Free Software. See the LICENSE file for exact details.

Recent activity

gordon

Commits by gordon were pushed to pendletongp/pyjaco

2cbfa1b - namespace module variable definition inside the module definition to avoid name collisions with python code. in the future: should probably condense this down into one ...
gordon

Commits by gordon were pushed to pendletongp/pyjaco

27e8190 - add support for "from foo import bar" and "from foo import bar as x"
gordon

Commits by gordon were pushed to pendletongp/pyjaco

b4f0abe - test single import statement with multiple imports separated by comma (i.e. import a, b, c)
gordon

Commits by gordon were pushed to pendletongp/pyjaco

d9fadbc - Assume module exists in __import_cache, react if it doesn't. I think this is more readable.
gordon

Commits by gordon were pushed to pendletongp/pyjaco

493c767 - had trouble getting .gitignore to work with an arbitrary number of subdirectories. ** supposedly works with some OS. Windows doesn't appear to be one of ...
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.