| Home | Trees | Indices | Help |
|
|---|
|
|
object --+
|
ParserElement --+
|
ParseElementEnhance --+
|
Forward
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.
See ParseResults.pprint for an example of a recursive parser
created using Forward.
| Instance Methods | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
Inherited from Inherited from Inherited from |
|||
| Static Methods | |
|
Inherited from |
| Class Variables | |
|
Inherited from |
| Properties | |
|
Inherited from |
| Method Details |
x.__init__(...) initializes x; see help(type(x)) for signature
|
Disables the skipping of whitespace before matching the characters in
the
|
|
Check defined expressions for valid structure, check for infinite recursive definitions.
|
str(x)
|
Make a copy of this Example:
integer = Word(nums).setParseAction(lambda toks: int(toks[0]))
integerK = integer.copy().addParseAction(lambda toks: toks[0]*1024) + Suppress("K")
integerM = integer.copy().addParseAction(lambda toks: toks[0]*1024*1024) + Suppress("M")
print(OneOrMore(integerK | integerM | integer).parseString("5K 100 640K 256M"))
prints: [5120, 100, 655360, 268435456] Equivalent form of
integerM = integer().addParseAction(lambda toks: toks[0]*1024*1024) + Suppress("M")
|
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Sun Aug 14 16:58:53 2016 | http://epydoc.sourceforge.net |