Ann: Pyparsing 1.5.0 released


Paul McGuire

I've just uploaded to SourceForge the latest update to pyparsing,
version 1.5.0. This version includes a number of long-awaited
features, so I thought it was time to bump the minor rev version.

- parsing a complete string without having to add StringEnd() to the
pyparsing grammar, by adding parseAll argument to the parseString
method (default value is False to maintain compatibility with prior
versions, set to True to force parsing of the full input string)

- support for indentation-based grammars (like Python's), using a
new helper method, indentedBlock.

- improved syntax error detection and reporting, based on the
ErrStop class submitted by Eike Welk on the pyparsing forum,
and Thomas/Poldy's proposal on the pyparsing wiki; the CHANGES
file includes a detailed example showing how syntax errors can
be designated by using '-' instead of '+' operators

Pyparsing 1.5.0 also includes a number of bug-fixes, described in
detail in the CHANGES file.

(Despite my best efforts, I have *not* been able to include support
for Python 3.0 using a common source code base. For those who wish
to try out pyparsing with Python 3.0, there is a file
in the SourceForge Subversion repository. I have done some testing
of this code, but many of my unit tests still need to be converted to
Python 3.)

Download pyparsing 1.5.0 at
The pyparsing Wiki is at

-- Paul

Pyparsing is a pure-Python class library for quickly developing
recursive-descent parsers. Parser grammars are assembled directly in
the calling Python code, using classes such as Literal, Word,
OneOrMore, Optional, etc., combined with operators '+', '|', and '^'
for And, MatchFirst, and Or. No separate code-generation or external
files are required. Pyparsing can be used in many cases in place of
regular expressions, with shorter learning curve and greater
readability and maintainability. Pyparsing comes with a number of
parsing examples, including:
- "Hello, World!" (English, Korean, Greek, and Spanish(new))
- chemical formulas
- configuration file parser
- web page URL extractor
- 5-function arithmetic expression parser
- subset of CORBA IDL
- chess portable game notation
- simple SQL parser
- Mozilla calendar file parser
- EBNF parser/compiler
- Python value string parser (lists, dicts, tuples, with nesting)
(safe alternative to eval)
- HTML tag stripper
- S-expression parser
- macro substitution preprocessor
- TAP output parser (new)

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Latest member

Latest Threads