testing conditional expressions
I'm trying to write a condition that says:
if ( [ A does not equal a ] AND [ B does not equal b ] ) OR ( [ C does not equal c ] AND [ D does not equal d ] )
Here's the markup I'm using:
(:A:a:) {$:A}
(:B:b:) {$:B}
(:C:c:) {$:C}
(:D:d:) {$:D}
|
a
b
c
d
|
(:if ( [ ! equal {$:A} z ] && [ ! equal {$:B} z ] ) || ( [ ! equal {$:C} z ] && [ ! equal {$:D} z ] ) :)
CONTENT
(:ifend:)
|
|
(:if ! equal {$:A} z :)
A ≠ z
(:ifend:)
|
A ≠ z
|
(:if [! equal {$:A} z] :)
A ≠ z
(:ifend:)
|
A ≠ z
|
(:if ( [! equal {$:A} z] && [ ! equal {$:B} z ] ) :)
A ≠ z and B ≠ z
(:ifend:)
|
|
(:if ! (group nosuchgroup AND false) :)
"! (expression)" works
(:ifend:)
|
"! (expression)" works
|
(:winter:(false OR date 2013-06-01..2013-11-14):)
{$:winter}
|
(false OR date 2013-06-01..2013-11-14)
|
(:if ! {$:winter}:)
It's summer
(:ifend:)
|
It's summer
|
(:if {$:winter}:)
It's winter
(:ifend:)
|
It's winter
|
0: 00.00 00.00 EnablePost = 1, keys=
1: 00.00 00.00 config start
2: 00.01 00.01 config end
3: 00.03 00.03 MarkupToHTML begin
4: 00.03 00.03 MarkupToHTML begin
5: 00.04 00.04 MarkupToHTML end
6: 00.04 00.04 MarkupToHTML begin
7: 00.04 00.04 ParseError: syntax error, unexpected '!'
Code: "return( 0 ! 0 && 0 ! 0 ) || ( 0 ! 0 && 0 ! 0 );"
Vars: {"condname":"(","pagename":"Test.ConditionTest","condparm":"[ ! equal a z ] && [ ! equal b z ] ) || ( [ ! equal c z ] && [ ! equal d z ] ","terms":["0","!","0","&&","0","!","0",")"," ","||"," ","(","0","!","0","&&","0","!","0"]}
#0 /home/pmwiki/pmwiki/pmwiki.php(386): PEVAL('return( 0 ! 0 &...', Array)
#1 /home/pmwiki/pmwiki/scripts/stdmarkup.php(128): CondExpr('Test.ConditionT...')
#2 /home/pmwiki/pmwiki/scripts/stdmarkup.php(106): CondText2('Test.ConditionT...', '(:if ( [ ! equa...', '')
#3 [internal function]: MarkupCondText2(Array)
#4 /home/pmwiki/pmwiki/pmwiki.php(3021): preg_replace_callback('/ \\(:if (\\d*) (...', 'MarkupCondText2', '(:if ( [ ! equa...')
#5 /home/pmwiki/pmwiki/scripts/stdmarkup.php(671): MarkupToHTML('Test.ConditionT...', '(:if ( [ ! equa...', Array)
#6 /home/pmwiki/pmwiki/scripts/stdmarkup.php(689): MarkupMarkup('Test.ConditionT...', '(:if ( [ ! equa...', Array)
#7 [internal function]: MarkupMarkupMarkup(Array)
#8 /home/pmwiki/pmwiki/pmwiki.php(3021): preg_replace_callback('/\\(:(markup)(\\s...', 'MarkupMarkupMar...', '(:groupheader:)...')
#9 /home/pmwiki/pmwiki/pmwiki.php(3075): MarkupToHTML('Test.ConditionT...', '(:groupheader:)...', Array)
#10 /home/pmwiki/pmwiki/pmwiki.php(684): HandleBrowse('Test.ConditionT...', 'read')
#11 /home/pmwiki/pmwiki/pmwiki.php(665): HandleDispatch('Test.ConditionT...', 'browse')
#12 /home/pmwiki/public_html/index.php(17): include_once('/home/pmwiki/pm...')
#13 {main}
8: 00.04 00.04 MarkupToHTML end
9: 00.04 00.04 MarkupToHTML begin
10: 00.04 00.04 MarkupToHTML end
11: 00.04 00.04 MarkupToHTML begin
12: 00.04 00.04 MarkupToHTML end
13: 00.04 00.04 MarkupToHTML begin
14: 00.04 00.04 ParseError: syntax error, unexpected '!'
Code: "return( 1 && 0 ! 0 );"
Vars: {"condname":"(","pagename":"Test.ConditionTest","condparm":"[! equal a z] && [ ! equal b z ] ","terms":["1","&&","0","!","0"]}
#0 /home/pmwiki/pmwiki/pmwiki.php(386): PEVAL('return( 1 && 0 ...', Array)
#1 /home/pmwiki/pmwiki/scripts/stdmarkup.php(128): CondExpr('Test.ConditionT...')
#2 /home/pmwiki/pmwiki/scripts/stdmarkup.php(106): CondText2('Test.ConditionT...', '(:if ( [! equal...', '')
#3 [internal function]: MarkupCondText2(Array)
#4 /home/pmwiki/pmwiki/pmwiki.php(3021): preg_replace_callback('/ \\(:if (\\d*) (...', 'MarkupCondText2', '(:if ( [! equal...')
#5 /home/pmwiki/pmwiki/scripts/stdmarkup.php(671): MarkupToHTML('Test.ConditionT...', '(:if ( [! equal...', Array)
#6 /home/pmwiki/pmwiki/scripts/stdmarkup.php(689): MarkupMarkup('Test.ConditionT...', '(:if ( [! equal...', Array)
#7 [internal function]: MarkupMarkupMarkup(Array)
#8 /home/pmwiki/pmwiki/pmwiki.php(3021): preg_replace_callback('/\\(:(markup)(\\s...', 'MarkupMarkupMar...', '(:groupheader:)...')
#9 /home/pmwiki/pmwiki/pmwiki.php(3075): MarkupToHTML('Test.ConditionT...', '(:groupheader:)...', Array)
#10 /home/pmwiki/pmwiki/pmwiki.php(684): HandleBrowse('Test.ConditionT...', 'read')
#11 /home/pmwiki/pmwiki/pmwiki.php(665): HandleDispatch('Test.ConditionT...', 'browse')
#12 /home/pmwiki/public_html/index.php(17): include_once('/home/pmwiki/pm...')
#13 {main}
15: 00.04 00.04 MarkupToHTML end
16: 00.04 00.04 MarkupToHTML begin
17: 00.04 00.04 MarkupToHTML end
18: 00.04 00.04 MarkupToHTML begin
19: 00.05 00.04 MarkupToHTML end
20: 00.05 00.04 MarkupToHTML begin
21: 00.05 00.04 MarkupToHTML end
22: 00.05 00.04 MarkupToHTML begin
23: 00.05 00.04 MarkupToHTML end
24: 00.05 00.05 MarkupToHTML end
25: 00.06 00.05 MarkupToHTML begin
26: 00.07 00.06 ReadApprovedUrls SiteAdmin.ApprovedUrls begin
27: 00.07 00.06 ReadApprovedUrls SiteAdmin.ApprovedUrls end
28: 00.08 00.07 MarkupToHTML end
29: 00.08 00.07 MarkupToHTML begin
30: 00.08 00.07 MarkupToHTML end
31: 00.08 00.07 now
Peak memory: 4,020,752 bytes