Metadata-Version: 2.4
Name: mathsys
Version: 0.6.1
Summary: The Domain Specific Language for math.
Author-email: Alejandro Vaz <notyetimplemented@abscissa.eu>
License: CC-BY-NC-ND-4.0 with additional clauses and exceptions
Keywords: dsl,math,mathsys,compiler,language
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

## *Mathsys*
*Mathsys* is a *DSL* (Domain-Specific Language) aimed to make math writing easier on computers, and something machines can actually understand.

To do so, we are building a hybrid syntax between what math currently is right now, but adding features from programming languages (like multicharacter variables).

The project is currently on its early stages, and future improvements will be made over time. Most features Mathsys aims to cover aren't close to being developed yet.

A new version is released every few weeks on an irregular schedule. Regular releases happen every one to three weeks, whilst patches and bug fixes are released soon after detection.

You will be able to check it out live on the [Abscissa playground](https://abscissa.eu/playground).

I say *we* but I'm indeed a solo developer for now, so if you want to get involved learn

## How to install
Currently we only ship the latest packages over `pip`, although soon a web *API* will be designed. To install, just run:
```sh
pip install mathsys
```

## How to contribute
1. **Check out our wiki:** [here](https://github.com/abscissa-math/mathsys/wiki).
2. **Join the team:** Contact us to become a member of the organisation and get write role.
3. **Work on a branch:** Create a new branch and add your changes. The branch `main` is protected against direct commits to keep the codebase clean, every commit there is a version deployed into the website.
4. **Submit the pull request:** Create a pull request. Don't forget to update the `changelog.md` and the version numbers accordingly. We will give you feedback.

> [!NOTE]
> If there is already a branch that is developing the next version, branch out instead from that branch instead of branching out from `main`.

## Technical background
Currently only a *Python* transpiler to *LaTeX* is available. Here is how it works:
1. Tokenization and *AST* building are handled completely by the [lark parser](https://github.com/lark-parser/lark) at once.
2. A small *LaTeX* generator runs over the *AST* and prints out *LaTeX* character by character.

## License
This project is licensed under the [*Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International*](https://creativecommons.org/licenses/by-nc-nd/4.0/) license subject to additional clauses and exceptions. See `LICENSE` for more details.
