|
@@ 200-211 (lines=12) @@
|
| 197 |
|
throw new CompilationException($compiler, 'If : Syntax error : syntax should be "if $a is [not] div by $b", found ' . $params[$k - 1] . ' is ' . ($negate ? 'not ' : '') . 'div ' . $params[$k + $ptr + 1] . ' ' . $params[$k + $ptr + 2]); |
| 198 |
|
} |
| 199 |
|
break; |
| 200 |
|
case 'even': |
| 201 |
|
$a = array_pop($p); |
| 202 |
|
if (isset($params[$k + $ptr + 1]) && strtolower(trim($params[$k + $ptr + 1], '"\'')) === 'by') { |
| 203 |
|
$b = $params[$k + $ptr + 2]; |
| 204 |
|
$p[] = '(' . $a . ' / ' . $b . ') % 2 ' . ($negate ? '!' : '=') . '== 0'; |
| 205 |
|
next($params); |
| 206 |
|
next($params); |
| 207 |
|
} else { |
| 208 |
|
$p[] = $a . ' % 2 ' . ($negate ? '!' : '=') . '== 0'; |
| 209 |
|
} |
| 210 |
|
next($params); |
| 211 |
|
break; |
| 212 |
|
case 'odd': |
| 213 |
|
$a = array_pop($p); |
| 214 |
|
if (isset($params[$k + $ptr + 1]) && strtolower(trim($params[$k + $ptr + 1], '"\'')) === 'by') { |
|
@@ 212-223 (lines=12) @@
|
| 209 |
|
} |
| 210 |
|
next($params); |
| 211 |
|
break; |
| 212 |
|
case 'odd': |
| 213 |
|
$a = array_pop($p); |
| 214 |
|
if (isset($params[$k + $ptr + 1]) && strtolower(trim($params[$k + $ptr + 1], '"\'')) === 'by') { |
| 215 |
|
$b = $params[$k + $ptr + 2]; |
| 216 |
|
$p[] = '(' . $a . ' / ' . $b . ') % 2 ' . ($negate ? '=' : '!') . '== 0'; |
| 217 |
|
next($params); |
| 218 |
|
next($params); |
| 219 |
|
} else { |
| 220 |
|
$p[] = $a . ' % 2 ' . ($negate ? '=' : '!') . '== 0'; |
| 221 |
|
} |
| 222 |
|
next($params); |
| 223 |
|
break; |
| 224 |
|
default: |
| 225 |
|
throw new CompilationException($compiler, 'If : Syntax error : syntax should be "if $a is [not] (div|even|odd) [by $b]", found ' . $params[$k - 1] . ' is ' . $params[$k + $ptr + 1]); |
| 226 |
|
} |