Metadata-Version: 2.1
Name: simpleparse
Version: 3.0.0a3
Summary: A Parser Generator for Python (w/mxTextTools derivative)
Author-email: "Mike C. Fletcher" <mcfletch@users.sourceforge.net>
License: BSD-3-Clause
Project-URL: Homepage, https://mcfletch.github.io/simpleparse/
Project-URL: Source, https://github.com/mcfletch/simpleparse
Keywords: parse,parser,parsing,text,ebnf,grammar,generator
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: tox>=4.11; extra == "dev"
Requires-Dist: tox-uv>=1; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-rtd-theme; extra == "docs"

# SimpleParse 3.x
## A Parser Generator for Python and mxTextTools

SimpleParse is a parser generator, it takes a modified EBNF
grammar and customises a text-processing engine `mxTextTools`
to produce a relatively fast table-driven parser.

As of version 3.x, Simpleparse has moved to being unicode-native,
with direct support for each of the 3 internal unicode formats
that are supported by Python3 (as well as bytes format). However,
the effect of the unicode changes is that the parser generator will
assume unicode when generating the parser, and you will need to
specify the content encoding when parsing/tagging.

So for parsing a latin-1 document provided as raw encoded bytes:

* tag(bytestream, tagtable, 'latin-1')

Only utf-8 encoding is handled among multi-byte encodings, but
single-byte encodings should be handled. Note that it is *generally*
going to be more useful to load your document as unicode text and
then tag the content, but the byte-stream parsing may be necessary
if you have the content already in memory as bytes and can't 
decode it for some reason.

You can see a full-featured [sample parser](https://github.com/mcfletch/pyvrml97/blob/master/vrml/vrml97/parser.py)
in the `PyVRML97` package.

See the [docs](https://mcfletch.github.io/simpleparse/) for usage.

```pip install SimpleParse```

[![Appveyor Build](https://ci.appveyor.com/api/projects/status/MikeCFletcher/simpleparse?svg=True)](https://ci.appveyor.com/project/MikeCFletcher/simpleparse)

[![PyPI download month](https://img.shields.io/pypi/v/simpleparse.svg)](https://pypi.python.org/pypi/simpleparse)

[![PyPI download month](https://img.shields.io/pypi/dm/simpleparse.svg)](https://pypi.python.org/pypi/simpleparse/)

