Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bareos/bareos-webui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/zendframework/zend-i18n/src/Translator/Plural/Rule.php')
-rw-r--r--vendor/zendframework/zend-i18n/src/Translator/Plural/Rule.php254
1 files changed, 0 insertions, 254 deletions
diff --git a/vendor/zendframework/zend-i18n/src/Translator/Plural/Rule.php b/vendor/zendframework/zend-i18n/src/Translator/Plural/Rule.php
deleted file mode 100644
index 5427fce..0000000
--- a/vendor/zendframework/zend-i18n/src/Translator/Plural/Rule.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\I18n\Translator\Plural;
-
-use Zend\I18n\Exception;
-
-/**
- * Plural rule evaluator.
- */
-class Rule
-{
- /**
- * Parser instance.
- *
- * @var Parser
- */
- protected static $parser;
-
- /**
- * Abstract syntax tree.
- *
- * @var array
- */
- protected $ast;
-
- /**
- * Number of plurals in this rule.
- *
- * @var int
- */
- protected $numPlurals;
-
- /**
- * Create a new plural rule.
- *
- * @param int $numPlurals
- * @param array $ast
- * @return Rule
- */
- protected function __construct($numPlurals, array $ast)
- {
- $this->numPlurals = $numPlurals;
- $this->ast = $ast;
- }
-
- /**
- * Evaluate a number and return the plural index.
- *
- * @param int $number
- * @return int
- * @throws Exception\RangeException
- */
- public function evaluate($number)
- {
- $result = $this->evaluateAstPart($this->ast, abs((int) $number));
-
- if ($result < 0 || $result >= $this->numPlurals) {
- throw new Exception\RangeException(
- sprintf('Calculated result %s is between 0 and %d', $result, ($this->numPlurals - 1))
- );
- }
-
- return $result;
- }
-
- /**
- * Get number of possible plural forms.
- *
- * @return int
- */
- public function getNumPlurals()
- {
- return $this->numPlurals;
- }
-
- /**
- * Evaluate a part of an ast.
- *
- * @param array $ast
- * @param int $number
- * @return int
- * @throws Exception\ParseException
- */
- protected function evaluateAstPart(array $ast, $number)
- {
- switch ($ast['id']) {
- case 'number':
- return $ast['arguments'][0];
-
- case 'n':
- return $number;
-
- case '+':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- + $this->evaluateAstPart($ast['arguments'][1], $number);
-
- case '-':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- - $this->evaluateAstPart($ast['arguments'][1], $number);
-
- case '/':
- // Integer division
- return floor(
- $this->evaluateAstPart($ast['arguments'][0], $number)
- / $this->evaluateAstPart($ast['arguments'][1], $number)
- );
-
- case '*':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- * $this->evaluateAstPart($ast['arguments'][1], $number);
-
- case '%':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- % $this->evaluateAstPart($ast['arguments'][1], $number);
-
- case '>':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- > $this->evaluateAstPart($ast['arguments'][1], $number)
- ? 1 : 0;
-
- case '>=':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- >= $this->evaluateAstPart($ast['arguments'][1], $number)
- ? 1 : 0;
-
- case '<':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- < $this->evaluateAstPart($ast['arguments'][1], $number)
- ? 1 : 0;
-
- case '<=':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- <= $this->evaluateAstPart($ast['arguments'][1], $number)
- ? 1 : 0;
-
- case '==':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- == $this->evaluateAstPart($ast['arguments'][1], $number)
- ? 1 : 0;
-
- case '!=':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- != $this->evaluateAstPart($ast['arguments'][1], $number)
- ? 1 : 0;
-
- case '&&':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- && $this->evaluateAstPart($ast['arguments'][1], $number)
- ? 1 : 0;
-
- case '||':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- || $this->evaluateAstPart($ast['arguments'][1], $number)
- ? 1 : 0;
-
- case '!':
- return !$this->evaluateAstPart($ast['arguments'][0], $number)
- ? 1 : 0;
-
- case '?':
- return $this->evaluateAstPart($ast['arguments'][0], $number)
- ? $this->evaluateAstPart($ast['arguments'][1], $number)
- : $this->evaluateAstPart($ast['arguments'][2], $number);
-
- default:
- throw new Exception\ParseException(sprintf(
- 'Unknown token: %s',
- $ast['id']
- ));
- }
- }
-
- /**
- * Create a new rule from a string.
- *
- * @param string $string
- * @throws Exception\ParseException
- * @return Rule
- */
- public static function fromString($string)
- {
- if (static::$parser === null) {
- static::$parser = new Parser();
- }
-
- if (!preg_match('(nplurals=(?P<nplurals>\d+))', $string, $match)) {
- throw new Exception\ParseException(sprintf(
- 'Unknown or invalid parser rule: %s',
- $string
- ));
- }
-
- $numPlurals = (int) $match['nplurals'];
-
- if (!preg_match('(plural=(?P<plural>[^;\n]+))', $string, $match)) {
- throw new Exception\ParseException(sprintf(
- 'Unknown or invalid parser rule: %s',
- $string
- ));
- }
-
- $tree = static::$parser->parse($match['plural']);
- $ast = static::createAst($tree);
-
- return new static($numPlurals, $ast);
- }
-
- /**
- * Create an AST from a tree.
- *
- * Theoretically we could just use the given Symbol, but that one is not
- * so easy to serialize and also takes up more memory.
- *
- * @param Symbol $symbol
- * @return array
- */
- protected static function createAst(Symbol $symbol)
- {
- $ast = array('id' => $symbol->id, 'arguments' => array());
-
- switch ($symbol->id) {
- case 'n':
- break;
-
- case 'number':
- $ast['arguments'][] = $symbol->value;
- break;
-
- case '!':
- $ast['arguments'][] = static::createAst($symbol->first);
- break;
-
- case '?':
- $ast['arguments'][] = static::createAst($symbol->first);
- $ast['arguments'][] = static::createAst($symbol->second);
- $ast['arguments'][] = static::createAst($symbol->third);
- break;
-
- default:
- $ast['arguments'][] = static::createAst($symbol->first);
- $ast['arguments'][] = static::createAst($symbol->second);
- break;
- }
-
- return $ast;
- }
-}