You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.6 KiB
103 lines
3.6 KiB
Metadata-Version: 2.1
|
|
Name: pyparsing
|
|
Version: 2.4.7
|
|
Summary: Python parsing module
|
|
Home-page: https://github.com/pyparsing/pyparsing/
|
|
Download-URL: https://pypi.org/project/pyparsing/
|
|
Author: Paul McGuire
|
|
Author-email: ptmcg@users.sourceforge.net
|
|
License: MIT License
|
|
Classifier: Development Status :: 5 - Production/Stable
|
|
Classifier: Intended Audience :: Developers
|
|
Classifier: Intended Audience :: Information Technology
|
|
Classifier: License :: OSI Approved :: MIT License
|
|
Classifier: Operating System :: OS Independent
|
|
Classifier: Programming Language :: Python
|
|
Classifier: Programming Language :: Python :: 2
|
|
Classifier: Programming Language :: Python :: 2.6
|
|
Classifier: Programming Language :: Python :: 2.7
|
|
Classifier: Programming Language :: Python :: 3
|
|
Classifier: Programming Language :: Python :: 3.3
|
|
Classifier: Programming Language :: Python :: 3.4
|
|
Classifier: Programming Language :: Python :: 3.5
|
|
Classifier: Programming Language :: Python :: 3.6
|
|
Classifier: Programming Language :: Python :: 3.7
|
|
Classifier: Programming Language :: Python :: 3.8
|
|
Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.*
|
|
License-File: LICENSE
|
|
|
|
PyParsing -- A Python Parsing Module
|
|
====================================
|
|
|
|
|Build Status|
|
|
|
|
Introduction
|
|
============
|
|
|
|
The pyparsing module is an alternative approach to creating and
|
|
executing simple grammars, vs. the traditional lex/yacc approach, or the
|
|
use of regular expressions. The pyparsing module provides a library of
|
|
classes that client code uses to construct the grammar directly in
|
|
Python code.
|
|
|
|
*[Since first writing this description of pyparsing in late 2003, this
|
|
technique for developing parsers has become more widespread, under the
|
|
name Parsing Expression Grammars - PEGs. See more information on PEGs at*
|
|
https://en.wikipedia.org/wiki/Parsing_expression_grammar *.]*
|
|
|
|
Here is a program to parse ``"Hello, World!"`` (or any greeting of the form
|
|
``"salutation, addressee!"``):
|
|
|
|
.. code:: python
|
|
|
|
from pyparsing import Word, alphas
|
|
greet = Word(alphas) + "," + Word(alphas) + "!"
|
|
hello = "Hello, World!"
|
|
print(hello, "->", greet.parseString(hello))
|
|
|
|
The program outputs the following::
|
|
|
|
Hello, World! -> ['Hello', ',', 'World', '!']
|
|
|
|
The Python representation of the grammar is quite readable, owing to the
|
|
self-explanatory class names, and the use of '+', '|' and '^' operator
|
|
definitions.
|
|
|
|
The parsed results returned from ``parseString()`` can be accessed as a
|
|
nested list, a dictionary, or an object with named attributes.
|
|
|
|
The pyparsing module handles some of the problems that are typically
|
|
vexing when writing text parsers:
|
|
|
|
- extra or missing whitespace (the above program will also handle ``"Hello,World!"``, ``"Hello , World !"``, etc.)
|
|
- quoted strings
|
|
- embedded comments
|
|
|
|
The examples directory includes a simple SQL parser, simple CORBA IDL
|
|
parser, a config file parser, a chemical formula parser, and a four-
|
|
function algebraic notation parser, among many others.
|
|
|
|
Documentation
|
|
=============
|
|
|
|
There are many examples in the online docstrings of the classes
|
|
and methods in pyparsing. You can find them compiled into online docs
|
|
at https://pyparsing-docs.readthedocs.io/en/latest/. Additional
|
|
documentation resources and project info are listed in the online
|
|
GitHub wiki, at https://github.com/pyparsing/pyparsing/wiki. An
|
|
entire directory of examples is at
|
|
https://github.com/pyparsing/pyparsing/tree/master/examples.
|
|
|
|
License
|
|
=======
|
|
|
|
MIT License. See header of pyparsing.py
|
|
|
|
History
|
|
=======
|
|
|
|
See CHANGES file.
|
|
|
|
.. |Build Status| image:: https://travis-ci.org/pyparsing/pyparsing.svg?branch=master
|
|
:target: https://travis-ci.org/pyparsing/pyparsing
|