Skip to main content

A compiler for a simple language that compiles to Human Resource Machine assembly-like language

Project description

HRM Compiler
============

Work-in-progress compiler to have an high-level tool
to reason about problems in Human Resources Machines.

I hate pseudo-assembly, and I want to write a compiler.

## Install

```
virtualenv .hrm
source .hrm/bin/activate

pip install -e .
```

## Usage

`hrmc <script>`

## Examples

There is no formal doc about the accepted grammar (check _parser.py_),
but you can find some examples in the `examples` folder.

## Development

### Run tests

To run the unit tests, execute `pytest`.


### Run differential testing

To check that a new optimization does not introduces bugs, it is possible to
use [hrm-interpreter](https://github.com/alfateam123/hrm-interpreter)
and a custom script to compile the examples with different flags and run the different
builds.

To be able to perform this kind of testing:

1. install rust and cargo via rustup
2. clone and build `hrm-interpreter` in the parent directory of this repository
3. run `run_all_on_interpreter.py`

If something is wrong, you should see an AssertionError.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hrmcompiler-0.2.0.tar.gz (9.8 kB view hashes)

Uploaded Source

Built Distribution

hrmcompiler-0.2.0-py3-none-any.whl (10.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page