Donate Share

Python parsing module

File Release Notes and Changelog

Release Name: pyparsing-1.4.7

Notes:
Version 1.4.7 - July, 2007
--------------------------
- NEW NOTATION SHORTCUT: ParserElement now accepts results names using
  a notational shortcut, following the expression with the results name
  in parentheses.  So this:

    stats = "AVE:" + realNum.setResultsName("average") + \
            "MIN:" + realNum.setResultsName("min") + \
            "MAX:" + realNum.setResultsName("max")  

  can now be written as this:
  
    stats = "AVE:" + realNum("average") + \
            "MIN:" + realNum("min") + \
            "MAX:" + realNum("max")  

  The intent behind this change is to make it simpler to define results
  names for significant fields within the expression, while keeping
  the grammar syntax clean and uncluttered.
  
- Fixed bug when packrat parsing is enabled, with cached ParseResults
  being updated by subsequent parsing.  Reported on the pyparsing
  wiki by Kambiz, thanks!

- Fixed bug in operatorPrecedence for unary operators with left
  associativity, if multiple operators were given for the same term.

- Fixed bug in example simpleBool.py, corrected precedence of "and" vs.
  "or" operations.
  
- Fixed bug in Dict class, in which keys were converted to strings
  whether they needed to be or not.  Have narrowed this logic to 
  convert keys to strings only if the keys are ints (which would 
  confuse __getitem__ behavior for list indexing vs. key lookup).

- Added ParserElement method setBreak(), which will invoke the pdb
  module's set_trace() function when this expression is about to be 
  parsed.

- Fixed bug in StringEnd in which reading off the end of the input
  string raises an exception - should match.  Resolved while
  answering a question for Shawn on the pyparsing wiki.

Changes: