├── .editorconfig ├── .gitattributes ├── .github ├── RELEASE_CHECKLIST.md └── workflows │ ├── build.yml │ ├── docs.yml │ ├── draft-pdf.yml │ ├── lint.yml │ ├── publish.yml │ └── tests.yml ├── .gitignore ├── .python-version ├── .vscode ├── extensions.json └── settings.json ├── CITATION.cff ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── automata ├── __init__.py ├── base │ ├── __init__.py │ ├── animation.py │ ├── automaton.py │ ├── config.py │ ├── exceptions.py │ └── utils.py ├── fa │ ├── __init__.py │ ├── animation.py │ ├── dfa.py │ ├── fa.py │ ├── gnfa.py │ └── nfa.py ├── pda │ ├── __init__.py │ ├── configuration.py │ ├── dpda.py │ ├── exceptions.py │ ├── npda.py │ ├── pda.py │ └── stack.py ├── py.typed ├── regex │ ├── __init__.py │ ├── lexer.py │ ├── parser.py │ ├── postfix.py │ └── regex.py └── tm │ ├── __init__.py │ ├── configuration.py │ ├── dtm.py │ ├── exceptions.py │ ├── mntm.py │ ├── ntm.py │ ├── tape.py │ ├── tm.py │ └── tools.py ├── docs ├── api │ ├── base-exception-classes.md │ ├── class-automaton.md │ ├── fa │ │ ├── class-dfa.md │ │ ├── class-fa.md │ │ ├── class-gnfa.md │ │ └── class-nfa.md │ ├── index.md │ ├── pda │ │ ├── class-dpda.md │ │ ├── class-npda.md │ │ └── class-pda.md │ ├── regular-expressions.md │ └── tm │ │ ├── class-dtm.md │ │ ├── class-mntm.md │ │ ├── class-ntm.md │ │ ├── class-tm.md │ │ └── tm-exception-classes.md ├── assets │ └── img │ │ ├── favicon.png │ │ └── logo.svg ├── characteristics.md ├── examples │ ├── fa-examples.md │ ├── img │ │ ├── my_dfa.svg │ │ └── my_nfa.svg │ └── perf-examples.md ├── index.md ├── migration.md └── people.md ├── example_notebooks ├── DFA.ipynb └── fa_animation.ipynb ├── joss ├── finite_language_dfa.png ├── paper.bib └── paper.md ├── mkdocs.yml ├── pyproject.toml ├── tests ├── __init__.py ├── test_automaton.py ├── test_config.py ├── test_dfa.py ├── test_dpda.py ├── test_dtm.py ├── test_fa.py ├── test_gnfa.py ├── test_lexer.py ├── test_mntm.py ├── test_nfa.py ├── test_npda.py ├── test_ntm.py ├── test_pda.py ├── test_pdaconfiguration.py ├── test_pdastack.py ├── test_postfix.py ├── test_regex.py ├── test_serialization.py ├── test_tm.py ├── test_tmconfiguration.py ├── test_tmtape.py └── test_tmtools.py └── uv.lock /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.py diff=python 2 | uv.lock linguist-generated=true 3 | -------------------------------------------------------------------------------- /.github/RELEASE_CHECKLIST.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/.github/RELEASE_CHECKLIST.md -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/.github/workflows/build.yml -------------------------------------------------------------------------------- /.github/workflows/docs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/.github/workflows/docs.yml -------------------------------------------------------------------------------- /.github/workflows/draft-pdf.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/.github/workflows/draft-pdf.yml -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/.github/workflows/lint.yml -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/.github/workflows/publish.yml -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/.gitignore -------------------------------------------------------------------------------- /.python-version: -------------------------------------------------------------------------------- 1 | 3.12 2 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/.vscode/extensions.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /CITATION.cff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/CITATION.cff -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/README.md -------------------------------------------------------------------------------- /automata/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /automata/base/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /automata/base/animation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/base/animation.py -------------------------------------------------------------------------------- /automata/base/automaton.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/base/automaton.py -------------------------------------------------------------------------------- /automata/base/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/base/config.py -------------------------------------------------------------------------------- /automata/base/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/base/exceptions.py -------------------------------------------------------------------------------- /automata/base/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/base/utils.py -------------------------------------------------------------------------------- /automata/fa/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /automata/fa/animation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/fa/animation.py -------------------------------------------------------------------------------- /automata/fa/dfa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/fa/dfa.py -------------------------------------------------------------------------------- /automata/fa/fa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/fa/fa.py -------------------------------------------------------------------------------- /automata/fa/gnfa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/fa/gnfa.py -------------------------------------------------------------------------------- /automata/fa/nfa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/fa/nfa.py -------------------------------------------------------------------------------- /automata/pda/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /automata/pda/configuration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/pda/configuration.py -------------------------------------------------------------------------------- /automata/pda/dpda.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/pda/dpda.py -------------------------------------------------------------------------------- /automata/pda/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/pda/exceptions.py -------------------------------------------------------------------------------- /automata/pda/npda.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/pda/npda.py -------------------------------------------------------------------------------- /automata/pda/pda.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/pda/pda.py -------------------------------------------------------------------------------- /automata/pda/stack.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/pda/stack.py -------------------------------------------------------------------------------- /automata/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /automata/regex/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /automata/regex/lexer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/regex/lexer.py -------------------------------------------------------------------------------- /automata/regex/parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/regex/parser.py -------------------------------------------------------------------------------- /automata/regex/postfix.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/regex/postfix.py -------------------------------------------------------------------------------- /automata/regex/regex.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/regex/regex.py -------------------------------------------------------------------------------- /automata/tm/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /automata/tm/configuration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/tm/configuration.py -------------------------------------------------------------------------------- /automata/tm/dtm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/tm/dtm.py -------------------------------------------------------------------------------- /automata/tm/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/tm/exceptions.py -------------------------------------------------------------------------------- /automata/tm/mntm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/tm/mntm.py -------------------------------------------------------------------------------- /automata/tm/ntm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/tm/ntm.py -------------------------------------------------------------------------------- /automata/tm/tape.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/tm/tape.py -------------------------------------------------------------------------------- /automata/tm/tm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/tm/tm.py -------------------------------------------------------------------------------- /automata/tm/tools.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/automata/tm/tools.py -------------------------------------------------------------------------------- /docs/api/base-exception-classes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/api/base-exception-classes.md -------------------------------------------------------------------------------- /docs/api/class-automaton.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/api/class-automaton.md -------------------------------------------------------------------------------- /docs/api/fa/class-dfa.md: -------------------------------------------------------------------------------- 1 | # class DFA(FA) 2 | 3 | ::: automata.fa.dfa 4 | -------------------------------------------------------------------------------- /docs/api/fa/class-fa.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/api/fa/class-fa.md -------------------------------------------------------------------------------- /docs/api/fa/class-gnfa.md: -------------------------------------------------------------------------------- 1 | # class GNFA(FA) 2 | 3 | ::: automata.fa.gnfa 4 | -------------------------------------------------------------------------------- /docs/api/fa/class-nfa.md: -------------------------------------------------------------------------------- 1 | # class NFA(FA) 2 | 3 | ::: automata.fa.nfa 4 | -------------------------------------------------------------------------------- /docs/api/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/api/index.md -------------------------------------------------------------------------------- /docs/api/pda/class-dpda.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/api/pda/class-dpda.md -------------------------------------------------------------------------------- /docs/api/pda/class-npda.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/api/pda/class-npda.md -------------------------------------------------------------------------------- /docs/api/pda/class-pda.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/api/pda/class-pda.md -------------------------------------------------------------------------------- /docs/api/regular-expressions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/api/regular-expressions.md -------------------------------------------------------------------------------- /docs/api/tm/class-dtm.md: -------------------------------------------------------------------------------- 1 | # class DTM(TM) 2 | 3 | ::: automata.tm.dtm 4 | -------------------------------------------------------------------------------- /docs/api/tm/class-mntm.md: -------------------------------------------------------------------------------- 1 | # class MNTM(TM) 2 | 3 | ::: automata.tm.mntm 4 | -------------------------------------------------------------------------------- /docs/api/tm/class-ntm.md: -------------------------------------------------------------------------------- 1 | # class NTM(TM) 2 | 3 | ::: automata.tm.ntm 4 | -------------------------------------------------------------------------------- /docs/api/tm/class-tm.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/api/tm/class-tm.md -------------------------------------------------------------------------------- /docs/api/tm/tm-exception-classes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/api/tm/tm-exception-classes.md -------------------------------------------------------------------------------- /docs/assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/assets/img/favicon.png -------------------------------------------------------------------------------- /docs/assets/img/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/assets/img/logo.svg -------------------------------------------------------------------------------- /docs/characteristics.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/characteristics.md -------------------------------------------------------------------------------- /docs/examples/fa-examples.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/examples/fa-examples.md -------------------------------------------------------------------------------- /docs/examples/img/my_dfa.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/examples/img/my_dfa.svg -------------------------------------------------------------------------------- /docs/examples/img/my_nfa.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/examples/img/my_nfa.svg -------------------------------------------------------------------------------- /docs/examples/perf-examples.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/examples/perf-examples.md -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/index.md -------------------------------------------------------------------------------- /docs/migration.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/migration.md -------------------------------------------------------------------------------- /docs/people.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/docs/people.md -------------------------------------------------------------------------------- /example_notebooks/DFA.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/example_notebooks/DFA.ipynb -------------------------------------------------------------------------------- /example_notebooks/fa_animation.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/example_notebooks/fa_animation.ipynb -------------------------------------------------------------------------------- /joss/finite_language_dfa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/joss/finite_language_dfa.png -------------------------------------------------------------------------------- /joss/paper.bib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/joss/paper.bib -------------------------------------------------------------------------------- /joss/paper.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/joss/paper.md -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/mkdocs.yml -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/pyproject.toml -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_automaton.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_automaton.py -------------------------------------------------------------------------------- /tests/test_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_config.py -------------------------------------------------------------------------------- /tests/test_dfa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_dfa.py -------------------------------------------------------------------------------- /tests/test_dpda.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_dpda.py -------------------------------------------------------------------------------- /tests/test_dtm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_dtm.py -------------------------------------------------------------------------------- /tests/test_fa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_fa.py -------------------------------------------------------------------------------- /tests/test_gnfa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_gnfa.py -------------------------------------------------------------------------------- /tests/test_lexer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_lexer.py -------------------------------------------------------------------------------- /tests/test_mntm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_mntm.py -------------------------------------------------------------------------------- /tests/test_nfa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_nfa.py -------------------------------------------------------------------------------- /tests/test_npda.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_npda.py -------------------------------------------------------------------------------- /tests/test_ntm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_ntm.py -------------------------------------------------------------------------------- /tests/test_pda.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_pda.py -------------------------------------------------------------------------------- /tests/test_pdaconfiguration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_pdaconfiguration.py -------------------------------------------------------------------------------- /tests/test_pdastack.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_pdastack.py -------------------------------------------------------------------------------- /tests/test_postfix.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_postfix.py -------------------------------------------------------------------------------- /tests/test_regex.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_regex.py -------------------------------------------------------------------------------- /tests/test_serialization.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_serialization.py -------------------------------------------------------------------------------- /tests/test_tm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_tm.py -------------------------------------------------------------------------------- /tests/test_tmconfiguration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_tmconfiguration.py -------------------------------------------------------------------------------- /tests/test_tmtape.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_tmtape.py -------------------------------------------------------------------------------- /tests/test_tmtools.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/tests/test_tmtools.py -------------------------------------------------------------------------------- /uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caleb531/automata/HEAD/uv.lock --------------------------------------------------------------------------------