36 lines
864 B
Plaintext
36 lines
864 B
Plaintext
|
---+ Package =TWiki::If=
|
||
|
|
||
|
Support for the conditions in %IF{} statements. Basically a simple
|
||
|
stack-based parser for infix expressions that generates a parse
|
||
|
tree that can subsequently be evaluated.
|
||
|
|
||
|
|
||
|
%TOC%
|
||
|
|
||
|
---++ ClassMethod *new* <tt>(\%operators) -> \%factory</tt>
|
||
|
|
||
|
Construct a new if node factory.
|
||
|
|
||
|
* =\%operators= reference to a hash of operators.
|
||
|
|
||
|
Each operator must have the following fields: prec (precedence) type (0 unary 1 binary) exec (ref to a function to execute). If not provided, the default set of boolean operations supported by %IF is used.
|
||
|
|
||
|
|
||
|
|
||
|
---++ ObjectMethod *evaluate* <tt>($twiki) -> $result</tt>
|
||
|
|
||
|
Execute the parse node.
|
||
|
|
||
|
|
||
|
|
||
|
!!!new!!!
|
||
|
|
||
|
---++ ObjectMethod *parse* <tt>($string) -> \$if</tt>
|
||
|
|
||
|
* =$string= - string containing an expression to parse
|
||
|
|
||
|
Construct a new search node by parsing the passed expression. Return
|
||
|
the new object.
|
||
|
|
||
|
|