Metadata-Version: 2.1
Name: nmfu
Version: 0.5.7
Summary: A parser generator that turns procedural programs into C state machines
Home-page: https://github.com/mincrmatt12/nmfu
Author: Matthew Mirvish
Author-email: matthew@mm12.xyz
License: GPLv3
Project-URL: Bug Tracker, https://github.com/mincrmatt12/nmfu/issues
Project-URL: Source Code, https://github.com/mincrmatt12/nmfu
Keywords: c parser parser-generator cli tool
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: C
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Code Generators
Requires-Python: ~=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: lark>=1.0
Provides-Extra: coverage
Requires-Dist: pytest-cov; extra == "coverage"
Provides-Extra: debug
Requires-Dist: graphviz>=0.14; extra == "debug"
Provides-Extra: tests
Requires-Dist: pytest; extra == "tests"
Requires-Dist: hypothesis; extra == "tests"

<img src="https://user-images.githubusercontent.com/5255209/117226360-7e69a900-ade2-11eb-9127-4a146a443199.png" alt="nmfu logo banner" width="100%"/>

# nmfu

---
_the "no memory for you" "parser" generator_

---

![PyPI - License](https://img.shields.io/pypi/l/nmfu) [![PyPI](https://img.shields.io/pypi/v/nmfu)](https://pypi.org/project/nmfu) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/nmfu) [![Jenkins](https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins.mm12.xyz%2Fjenkins%2Fjob%2Fnmfu%2Fjob%2Fmaster)](https://jenkins.mm12.xyz/job/nmfu) [![Jenkins tests](https://img.shields.io/jenkins/tests?compact_message&jobUrl=https%3A%2F%2Fjenkins.mm12.xyz%2Fjenkins%2Fjob%2Fnmfu%2Fjob%2Fmaster)](https://jenkins.mm12.xyz/jenkins/job/nmfu/job/master/lastCompletedBuild/testReport/) [![Jenkins Coverage](https://img.shields.io/jenkins/coverage/apiv4?jobUrl=https%3A%2F%2Fjenkins.mm12.xyz%2Fjenkins%2Fjob%2Fnmfu%2Fjob%2Fmaster)](https://jenkins.mm12.xyz/jenkins/job/nmfu/job/master/lastCompletedBuild/coverage/) [![Read the Docs](https://img.shields.io/readthedocs/nmfu)](https://nmfu.rtfd.io)

`nmfu` attempts to turn a parser specified as a procedural matching thing into a state machine, parsing protocols with minimal memory and in arbitrarily sized chunks.

There are a number of examples present in the `examples/` folder, as well as documentation and a tutorial available on [readthedocs](https://nmfu.rtfd.io).

## Plugins

There is a vim plugin available which adds syntax highlighting for `.nmfu` files at [mincrmatt12/nmfu-vim](https://github.com/mincrmatt12/nmfu-vim), as well
as a pygments lexer plugin at [mincrmatt12/nmfu-pygments](https://github.com/mincrmatt12/nmfu-pygments).

## License

NMFU is licensed under the GPLv3.
Copyright (C) 2020-2023 Matthew Mirvish.
