Metadata-Version: 2.1
Name: aslutils
Version: 0.1.0
Summary: Code to parse Arm Specification Language (ASL) files
Home-page: https://github.com/alehed/aslutils.git
Author: Alexander Hedges
Author-email: ahedges@ethz.ch
License: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3
Description-Content-Type: text/markdown
Requires-Dist: antlr4-python3-runtime (==4.5.*)

# AslUtils

Utility scripts to parse ASL files and the actual ASL language.

## Installing

Preferably this is installed in a virtual environment. To create a virtual environment in the current directory write `python3 -m venv env/`. To enter the virtual environment use `source env/bin/activate`.

To install simply use pip: `pip3 install aslutils`.

## Using aslutils

The documentation can be found at <https://alehed.github.io/aslutils/>

## Developing

### Generating the documentation

`aslutils` uses sphinx (`pip install sphinx`) to generate the documentation. From the root folder the command to generate the html documentation is `sphinx-build -b html docs/source docs/build`. The docs can then be found at `docs/build/index.html`.

If anything in the source changes (class names, new classes etc.) the aslutils.rst and modules.rst files have to be regenerated. This can be done via `sphinx-apidoc -f -o docs/source/ aslutils`. Do not edit those files manually as the changes will be overwritten once sphinx-apidoc is rerun.

### Build time dependencies

In order to build the project locally, you need to have `antlr4` (<https://www.antlr.org/>) and the corresponding antlr4 python runtime installed (`pip install antlr4-python3-runtime==4.?.?`, the version has to match the installed antlr version).

### Building the parser

The ASL visitor code is generated with `antlr4 -Dlanguage=Python3 -no-listener -visitor ./aslutils/ASL.g4`. This has to be done every time the file ASL.g4 is changed.

### Packaging

Note: I am currently the sole packager of this project, so this section is only for reference to my later self.

Once antlr is installed, this step is easy. The dependencies for packaging are: wheel, and twine (`pip install wheel twine`)

First the package needs to be generated with: `python setup.py sdist bdist_wheel --universal`. Then the package can be uploaded using twine: `twine upload dist/*`.


