Package pyparsing :: Module pyparsing :: Class Forward

[frames] | no frames]

# Class Forward

source code

         object --+
                  |
      ParserElement --+
                      |
    ParseElementEnhance --+
                          |
                         Forward

Known Subclasses:
  - _ForwardNoRecurse

Forward declaration of an expression to be defined later - used for recursive grammars, such as algebraic infix notation. When the expression is known, it is assigned to the `Forward` variable using the '<<' operator.

Note: take care when assigning to `Forward` not to overlook precedence of operators. Specifically, '|' has a lower precedence than '<<', so that:

      fwdExpr << a | b | c

will actually be evaluated as:

      (fwdExpr << a) | b | c

thereby leaving b and c out as parseable alternatives. It is recommended that you explicitly group the values inserted into the `Forward`:

      fwdExpr << (a | b | c)

Converting to use the '<<=' operator instead will avoid this problem.

Nested Classes
Inherited from `ParserElement`: `literalStringClass`

Instance Methods

__init__(self, other=None) x.__init__(...) initializes x; see x.__class__.__doc__ for signature | source code

__lshift__(self, other) | source code

__ilshift__(self, other) | source code

leaveWhitespace(self) Disables the skipping of whitespace before matching the characters in the `ParserElement`'s defined pattern. | source code

streamline(self) | source code

validate(self, validateTrace=`[``]`) Check defined expressions for valid structure, check for infinite recursive definitions. | source code

__str__(self) str(x) | source code

copy(self) Make a copy of this `ParserElement`. | source code

Inherited from `ParseElementEnhance`: `checkRecursion`, `ignore`, `parseImpl`

Inherited from `ParserElement`: `__add__`, `__and__`, `__call__`, `__eq__`, `__hash__`, `__invert__`, `__mul__`, `__ne__`, `__or__`, `__radd__`, `__rand__`, `__repr__`, `__req__`, `__rmul__`, `__rne__`, `__ror__`, `__rsub__`, `__rxor__`, `__sub__`, `__xor__`, `addParseAction`, `parseFile`, `parseString`, `parseWithTabs`, `postParse`, `preParse`, `scanString`, `searchString`, `setBreak`, `setDebug`, `setDebugActions`, `setFailAction`, `setName`, `setParseAction`, `setResultsName`, `setWhitespaceChars`, `suppress`, `transformString`, `tryParse`

Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Static Methods
Inherited from `ParserElement`: `enablePackrat`, `inlineLiteralsUsing`, `resetCache`, `setDefaultWhitespaceChars`

Class Variables
Inherited from `ParserElement`: `DEFAULT_WHITE_CHARS`, `verbose_stacktrace`

Properties
Inherited from `object`: `__class__`

Method Details

### __init__(self, other=None)
(Constructor)

source code

x.__init__(...) initializes x; see x.__class__.__doc__ for signature

Overrides: object.__init__
  (inherited documentation)

### leaveWhitespace(self)

source code

Disables the skipping of whitespace before matching the characters in the `ParserElement`'s defined pattern. This is normally only used internally by the pyparsing module, but may be needed in some whitespace-sensitive grammars.

Overrides: ParserElement.leaveWhitespace
  (inherited documentation)

### streamline(self)

source code

Overrides: ParserElement.streamline

### validate(self, validateTrace=`[``]`)

source code

Check defined expressions for valid structure, check for infinite recursive definitions.

Overrides: ParserElement.validate
  (inherited documentation)

### __str__(self)
(Informal representation operator)

source code

str(x)

Overrides: object.__str__
  (inherited documentation)

### copy(self)

source code

Make a copy of this `ParserElement`. Useful for defining different parse actions for the same parsing pattern, using copies of the original parse element.

Overrides: ParserElement.copy
  (inherited documentation)