Metadata-Version: 2.1
Name: gold-python
Version: 0.1.2
Summary: Library for the developement of finite automata
Home-page: https://github.com/GOLD-Python/GOLD-Python
Download-URL: https://github.com/GOLD-Python/GOLD-Python/archive/refs/tags/v012-BETA.zip
Author: Nicolas Saavedra Gonzalez
Author-email: personal@nicolassaavedra.com
License: BSD 3-Clause
Keywords: automata,gold,transducer,pushdown,deterministic
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Description-Content-Type: text/markdown
License-File: LICENSE.txt

# GOLD-Python

GOLD-Python is a port of the GOLD programming language's Finite Automata features to Python 3.10 for a better developer experience.

## How to install

```sh
pip install gold-python
```

## Using the library:

```python
def main():
    automaton = createAutomaton()
    print(automaton.acceptsInput(input("Enter: ")))
    automaton.show()


def createAutomaton():
    Q = product(between(0, 7), between(0, 1))
    E = "01"
    Q0 = (0, 0)
    F = [(0, 0)]

    return DeterministicAutomata(Q, E, Q0, F, delta)

@deltafunc
def delta(x, y, next):
    d = int(next)
    if (x, y) == (0, 1):
        return (0, 1)
    elif x==7:
        return (0, 0) if (d-y==0) else (0, 1)
    else:
        return (x+1, (y+d) % 2)

if __name__ == "__main__":
    main()
```

## Features:

* Better Syntax Autocompletion
* Support for types
* Docstrings for most functions
* Documentation in HTML (work in progress)

## Progress:

* ~~Deterministic Finite State Automata~~
* ~~Deterministic Transducer (Mealey)~~
* ~~Basic Set Operations (Between, Product)~~
* ~~Non-Deterministic Finite State Automata~~
* Pushdown Automata
* Advanced Set Operations (String ranges, Parts of sets, etc)
* GUI Interface to show Automata
* Full documentation in Sphinx (Progress: 0%)
* Release
