About
A parser for the Temporal Logic of Actions (TLA+). The parser
is based on the LR(1) algorithm
with state merging, and has time complexity linear
in the size of the input. The lexer and parser are generated using
parstools.
The syntax tree is represented as named-tuples, using
typing.NamedTuple. Each node has line and column
information for its start and end.
To install:
pip install tla
To parse a string:
import tla
module_text = r'''
---- MODULE name ----
operator == TRUE
====================
'''
tree = tla.parse(module_text)
print(tree)
text = tla.pformat_ast(tree)
print(text)
More examples can be found in the directory examples/.
To implement a new translator of TLA+, as example the
module tla._pprint can be used, or the class
tla._utils.Traversal.
Documentation
In the Markdown file doc.md.
Tests
Use pytest. Run with:
cd tests/
pytest -v --continue-on-collection-errors .
Read also the file tests/README.md.
License
BSD-3, read LICENSE file.
Release files for tla 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tla-0.0.4.tar.gz | 149.6 kB | Details |
Release files / tla-0.0.4.tar.gz
| Download URL | tla-0.0.4.tar.gz |
|---|---|
| Size | 149.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2b5bcf29060558c9cc31df05b905bb29e061136f1b6e6334f9d9f920f3c67adc
|
|
BLAKE2b-256 checksum How to use checksums |
b23363e9df85813569824ab65ae610032137485a630a8cfa996011909fae0632
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2+
|