Changeset 42343 for trunk/src/wp-includes/pomo/plural-forms.php
- Timestamp:
- 11/30/2017 11:09:33 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/pomo/plural-forms.php
r41723 r42343 35 35 */ 36 36 protected static $op_precedence = array( 37 '%' => 6,38 39 '<' => 5,37 '%' => 6, 38 39 '<' => 5, 40 40 '<=' => 5, 41 '>' => 5,41 '>' => 5, 42 42 '>=' => 5, 43 43 … … 50 50 51 51 '?:' => 1, 52 '?' => 1,53 54 '(' => 0,55 ')' => 0,52 '?' => 1, 53 54 '(' => 0, 55 ')' => 0, 56 56 ); 57 57 … … 99 99 // Convert infix operators to postfix using the shunting-yard algorithm. 100 100 $output = array(); 101 $stack = array();101 $stack = array(); 102 102 while ( $pos < $len ) { 103 103 $next = substr( $str, $pos, 1 ); … … 154 154 case '?': 155 155 $end_operator = strspn( $str, self::OP_CHARS, $pos ); 156 $operator = substr( $str, $pos, $end_operator );156 $operator = substr( $str, $pos, $end_operator ); 157 157 if ( ! array_key_exists( $operator, self::$op_precedence ) ) { 158 158 throw new Exception( sprintf( 'Unknown operator "%s"', $operator ) ); … … 192 192 // Replace. 193 193 $stack[ $s_pos ] = '?:'; 194 $found = true;194 $found = true; 195 195 break; 196 196 } … … 205 205 default: 206 206 if ( $next >= '0' && $next <= '9' ) { 207 $span = strspn( $str, self::NUM_CHARS, $pos );207 $span = strspn( $str, self::NUM_CHARS, $pos ); 208 208 $output[] = array( 'value', intval( substr( $str, $pos, $span ) ) ); 209 $pos += $span;209 $pos += $span; 210 210 continue; 211 211 } … … 254 254 public function execute( $n ) { 255 255 $stack = array(); 256 $i = 0;256 $i = 0; 257 257 $total = count( $this->tokens ); 258 258 while ( $i < $total ) { 259 $next = $this->tokens[ $i];259 $next = $this->tokens[ $i ]; 260 260 $i++; 261 261 if ( $next[0] === 'var' ) { … … 270 270 switch ( $next[1] ) { 271 271 case '%': 272 $v2 = array_pop( $stack );273 $v1 = array_pop( $stack );272 $v2 = array_pop( $stack ); 273 $v1 = array_pop( $stack ); 274 274 $stack[] = $v1 % $v2; 275 275 break; 276 276 277 277 case '||': 278 $v2 = array_pop( $stack );279 $v1 = array_pop( $stack );278 $v2 = array_pop( $stack ); 279 $v1 = array_pop( $stack ); 280 280 $stack[] = $v1 || $v2; 281 281 break; 282 282 283 283 case '&&': 284 $v2 = array_pop( $stack );285 $v1 = array_pop( $stack );284 $v2 = array_pop( $stack ); 285 $v1 = array_pop( $stack ); 286 286 $stack[] = $v1 && $v2; 287 287 break; 288 288 289 289 case '<': 290 $v2 = array_pop( $stack );291 $v1 = array_pop( $stack );290 $v2 = array_pop( $stack ); 291 $v1 = array_pop( $stack ); 292 292 $stack[] = $v1 < $v2; 293 293 break; 294 294 295 295 case '<=': 296 $v2 = array_pop( $stack );297 $v1 = array_pop( $stack );296 $v2 = array_pop( $stack ); 297 $v1 = array_pop( $stack ); 298 298 $stack[] = $v1 <= $v2; 299 299 break; 300 300 301 301 case '>': 302 $v2 = array_pop( $stack );303 $v1 = array_pop( $stack );302 $v2 = array_pop( $stack ); 303 $v1 = array_pop( $stack ); 304 304 $stack[] = $v1 > $v2; 305 305 break; 306 306 307 307 case '>=': 308 $v2 = array_pop( $stack );309 $v1 = array_pop( $stack );308 $v2 = array_pop( $stack ); 309 $v1 = array_pop( $stack ); 310 310 $stack[] = $v1 >= $v2; 311 311 break; 312 312 313 313 case '!=': 314 $v2 = array_pop( $stack );315 $v1 = array_pop( $stack );314 $v2 = array_pop( $stack ); 315 $v1 = array_pop( $stack ); 316 316 $stack[] = $v1 != $v2; 317 317 break; 318 318 319 319 case '==': 320 $v2 = array_pop( $stack );321 $v1 = array_pop( $stack );320 $v2 = array_pop( $stack ); 321 $v1 = array_pop( $stack ); 322 322 $stack[] = $v1 == $v2; 323 323 break; 324 324 325 325 case '?:': 326 $v3 = array_pop( $stack );327 $v2 = array_pop( $stack );328 $v1 = array_pop( $stack );326 $v3 = array_pop( $stack ); 327 $v2 = array_pop( $stack ); 328 $v1 = array_pop( $stack ); 329 329 $stack[] = $v1 ? $v2 : $v3; 330 330 break;
Note: See TracChangeset
for help on using the changeset viewer.