This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Reason given by maintainers: Support dropped. Move to paralang-base.
parac - The Python Module for the Para-C Compiler
Introduction to parac (as Python Module)
The parac module serves the purpose of combining the entire compiler with
lib into a simple module, which can be imported and used in ways that are not
implemented in the standard CLI. This means both the preprocessor and
compiler are available for customisable usage.
Installation
python3 -m pip install -U parac
With specific version:
python3 -m pip install -U parac==version
Structure
Tree
parac - Main module that can be imported
|-- abc/
| `-- *
|-- compiler/
| `-- *
|-- preprocessor/
| `-- *
|-- util/
| `-- *
|-- const.py
|-- exceptions.py
`-- logging.py
Info
abc: ABC classes that are the base for many classes inpreprocessorandcompilercompiler: Main Compiler module, which includes lexer, parser, semantic analyser, optimiser and code-generation (not completely implemented yet, due to active development still ongoing)preprocessor: Pre-Processor module, which implements its own lexer and parser for processing files.util: Module Utility functions, decorators and classesconst.py: Constant values, which are evaluated on__init__exceptions.py: Module exceptions with error-codes ErrorCodes(IntEnum)logging.py: Logging Implementation for the Module and CLI
Introduction to Para-C (as Language)
Para-C (From Greek "para": Beside/Alongside C) is a programming language that is designed to integrate other languages and allow for advanced management of embedded programs / code-bases inside a program, where the language will serve as a base for writing overhead and "connector" programs, which can manage instances, listen for events, stop and start processes and manage in- and out-data.
Documentation
Documentations are available on the official readthedocs.org site, which builds
for each repository on Para-C/Para-C the respective sphinx docs.
Note that the docs are still unfinished and full of things that will be likely changing the more development progresses. For finalisation, it might take until v0.2 or v0.3, so please be patient
Contributing and Development
Due to active and early development not available. (Can be expected with later versions, such as v0.1 or v0.2) - Reason for that is the there is not a lot that can be contributed to, since changes are made while the theory is made as well. This means contributions are going to be limited until the basic structure is finished.
Running Info
There are two different usage (run) options where the compiler can be used:
- Python module, which is either the source code execution or usage of the imported module
- Compiled distribution, which is the compiled version of Para-C, which included the CLI. Due to the difference in implementation, only this version can be configured, since the python module is intended for customised behaviour, meaning the pre-configured runtime options are not available.
To differentiate between the two, there are constant variables that are set during initialisation (Only one can be true, if one is true the other is automatically false):
DIST_COMPILED_VERSION: bool- IfTrueit's the distribution version, aka. called using the compiled binariesMODULE_VERSION: bool- IfTrueit's the module version
Extensions
parac-ext-cli - CLI
The CLI is its own unique project, as the main compiler is a native python project, which is used using the normal Python interpreter. Therefore, it also has its own pypi release site, which can be found here.
Metadata
Release files for parac 0.1.dev6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| parac-0.1.dev6.tar.gz | 144.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| parac-0.1.dev6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 300.7 kB
Release files / parac-0.1.dev6.tar.gz
| Download URL | parac-0.1.dev6.tar.gz |
|---|---|
| Size | 144.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f7641dd909ba807bc7bb13c5bf5c6e00984687ad0c455d0f602f2f6f8cc903d5
|
|
BLAKE2b-256 checksum How to use checksums |
151830fcca44e55ca43045d3890cb0825e4ec1d0578dbfb32d4edb1eb72d5762
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8
|
Release files / parac-0.1.dev6-py3-none-any.whl
| Download URL | parac-0.1.dev6-py3-none-any.whl |
|---|---|
| Size | 156.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
32b4fda4542661848d613219da0ac98c9537804f81f4f3efe52e5820816f5728
|
|
BLAKE2b-256 checksum How to use checksums |
54848720e995a5385dc5d4875101f5e3b0dde702737564083e37f3f380e0c3bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8
|