An interpreter written in Python for the imperative, stack-backed language called Whitespace
Project description
An interpreter written in Python for the imperative, stack-based language called Whitespace. This is a fork of https://github.com/dwayne/whitespace-python.
Installation
To install, simply use pip (or pipenv):
$ pip install whitespace2
Usage
Let program.ws
be any Whitespace program. To execute it, type:
$ whitespace program.ws
You can find example Whitespace programs at tests/fixtures.
For example, here’s the factorial program:
$ whitespace fact.ws
Enter a number: 40
40! = 815915283247897734345611269596115894272000000000
Development
Recommended tools:
Clone the repository and install the dependencies:
$ git clone git@github.com:rzuckerm/whitespace-python.git
$ cd whitespace-python
$ poetry env '<python-version>'
$ poetry install
where <python-version> is the version of python that you have installed. This must be at least python 3.8. Example for python 3.10:
$ poetry env 3.10
You’re now all set to begin development.
Formatting
The code is formatted using black.
Run the formatter:
$ make format
Linting
The code is linted using black and pylint.
Run the linters:
$ make lint
Testing
Tests are written using pytest.
Run all tests.
$ make test
Run a specific test module.
$ make test PYTEST_ARGS="-vvl -m test.<my-module>"
Run a specific test case.
$ make test PYTEST_ARGS="-vvl -k test.test_parser.ParserTestCase.test_it_parses_push"
Help
To get a list of make targets, run this:
$ make help
References
Credits
Thanks to Edwin Brady and Chris Morris for designing/developing this programming language; they are also developers of the Idris programming language.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for whitespace2-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed7da8d26703acd46c0f9b3b8444faa1313fb9ae443cb3c93200d0eccda65a64 |
|
MD5 | 6d4f2fd757145e7bc73f6eb4d51cb4b0 |
|
BLAKE2b-256 | 9ee5b7aa127ed8ea208d633dd05e21aa7fd81cca6211e3257fc4adf99f576493 |