Remove underscore from classes CLDRPluralRule*
authorSiebrand Mazeland <siebrand@kitano.nl>
Mon, 21 Apr 2014 17:23:37 +0000 (19:23 +0200)
committerSiebrand Mazeland <siebrand@kitano.nl>
Mon, 21 Apr 2014 17:23:37 +0000 (19:23 +0200)
Part of program to remove underscores from class names. Checked core and 675
extensions for occurrences. All uses are in core in core are updated in this
patch. There are no uses in Gerrit extensions.

Change-Id: Id3ff16710a11ce1909a83b58505b250736a073e8

12 files changed:
RELEASE-NOTES-1.24
includes/AutoLoader.php
languages/utils/CLDRPluralRuleConverter.php
languages/utils/CLDRPluralRuleConverterExpression.php [new file with mode: 0644]
languages/utils/CLDRPluralRuleConverterFragment.php [new file with mode: 0644]
languages/utils/CLDRPluralRuleConverterOperator.php [new file with mode: 0644]
languages/utils/CLDRPluralRuleConverter_Expression.php [deleted file]
languages/utils/CLDRPluralRuleConverter_Fragment.php [deleted file]
languages/utils/CLDRPluralRuleConverter_Operator.php [deleted file]
languages/utils/CLDRPluralRuleEvaluator.php
languages/utils/CLDRPluralRuleEvaluatorRange.php [new file with mode: 0644]
languages/utils/CLDRPluralRuleEvaluator_Range.php [deleted file]

index 500d19f..fd422fa 100644 (file)
@@ -33,6 +33,12 @@ changes to languages because of Bugzilla reports.
 * The Special:Search hooks SpecialSearchGo and SpecialSearchResultsAppend
   were removed as they were unused.
 
+==== Renamed classes ====
+* CLDRPluralRuleConverter_Expression to CLDRPluralRuleConverterExpression
+* CLDRPluralRuleConverter_Fragment to CLDRPluralRuleConverterFragment
+* CLDRPluralRuleConverter_Operator to CLDRPluralRuleConverterOperator
+* CLDRPluralRuleEvaluator_Range to CLDRPluralRuleEvaluatorRange
+
 == Compatibility ==
 
 MediaWiki 1.24 requires PHP 5.3.2 or later.
index baa9501..34e3743 100644 (file)
@@ -1125,11 +1125,11 @@ $wgAutoloadLocalClasses = array(
        'Language' => 'languages/Language.php',
        'LanguageConverter' => 'languages/LanguageConverter.php',
        'CLDRPluralRuleConverter' => 'languages/utils/CLDRPluralRuleConverter.php',
-       'CLDRPluralRuleConverter_Expression' => 'languages/utils/CLDRPluralRuleConverter_Expression.php',
-       'CLDRPluralRuleConverter_Fragment' => 'languages/utils/CLDRPluralRuleConverter_Fragment.php',
-       'CLDRPluralRuleConverter_Operator' => 'languages/utils/CLDRPluralRuleConverter_Operator.php',
+       'CLDRPluralRuleConverterExpression' => 'languages/utils/CLDRPluralRuleConverterExpression.php',
+       'CLDRPluralRuleConverterFragment' => 'languages/utils/CLDRPluralRuleConverterFragment.php',
+       'CLDRPluralRuleConverterOperator' => 'languages/utils/CLDRPluralRuleConverterOperator.php',
        'CLDRPluralRuleEvaluator' => 'languages/utils/CLDRPluralRuleEvaluator.php',
-       'CLDRPluralRuleEvaluator_Range' => 'languages/utils/CLDRPluralRuleEvaluator_Range.php',
+       'CLDRPluralRuleEvaluatorRange' => 'languages/utils/CLDRPluralRuleEvaluatorRange.php',
        'CLDRPluralRuleError' => 'languages/utils/CLDRPluralRuleError.php',
 
        # maintenance
index 65d57e0..50a22c9 100644 (file)
@@ -119,13 +119,13 @@ class CLDRPluralRuleConverter {
 
                // Iterate through all tokens, saving the operators and operands to a
                // stack per Dijkstra's shunting yard algorithm.
-               /** @var CLDRPluralRuleConverter_Operator $token */
+               /** @var CLDRPluralRuleConverterOperator $token */
                while ( false !== ( $token = $this->nextToken() ) ) {
                        // In this grammar, there are only binary operators, so every valid
                        // rule string will alternate between operator and operand tokens.
                        $expectOperator = !$expectOperator;
 
-                       if ( $token instanceof CLDRPluralRuleConverter_Expression ) {
+                       if ( $token instanceof CLDRPluralRuleConverterExpression ) {
                                // Operand
                                if ( $expectOperator ) {
                                        $token->error( 'unexpected operand' );
@@ -172,7 +172,7 @@ class CLDRPluralRuleConverter {
        /**
         * Fetch the next token from the input string.
         *
-        * @return CLDRPluralRuleConverter_Fragment The next token
+        * @return CLDRPluralRuleConverterFragment The next token
         */
        protected function nextToken() {
                if ( $this->pos >= $this->end ) {
@@ -269,7 +269,7 @@ class CLDRPluralRuleConverter {
         * a fragment with rpn and type members describing the result of that
         * operation.
         *
-        * @param CLDRPluralRuleConverter_Operator $op
+        * @param CLDRPluralRuleConverterOperator $op
         */
        protected function doOperation( $op ) {
                if ( count( $this->operands ) < 2 ) {
@@ -286,10 +286,10 @@ class CLDRPluralRuleConverter {
         *
         * @param string $text
         * @param int $pos
-        * @return CLDRPluralRuleConverter_Expression The numerical expression
+        * @return CLDRPluralRuleConverterExpression The numerical expression
         */
        protected function newNumber( $text, $pos ) {
-               return new CLDRPluralRuleConverter_Expression( $this, 'number', $text, $pos, strlen( $text ) );
+               return new CLDRPluralRuleConverterExpression( $this, 'number', $text, $pos, strlen( $text ) );
        }
 
        /**
@@ -298,10 +298,10 @@ class CLDRPluralRuleConverter {
         * @param string $type
         * @param int $pos
         * @param int $length
-        * @return CLDRPluralRuleConverter_Operator The operator
+        * @return CLDRPluralRuleConverterOperator The operator
         */
        protected function newOperator( $type, $pos, $length ) {
-               return new CLDRPluralRuleConverter_Operator( $this, $type, $pos, $length );
+               return new CLDRPluralRuleConverterOperator( $this, $type, $pos, $length );
        }
 
        /**
diff --git a/languages/utils/CLDRPluralRuleConverterExpression.php b/languages/utils/CLDRPluralRuleConverterExpression.php
new file mode 100644 (file)
index 0000000..2373807
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * @author Niklas Laxström, Tim Starling
+ *
+ * @copyright Copyright © 2010-2012, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ *
+ * @file
+ * @since 1.20
+ */
+
+/**
+ * Helper for CLDRPluralRuleConverter.
+ * An expression object, representing a region of the input string (for error
+ * messages), the RPN notation used to evaluate it, and the result type for
+ * validation.
+ */
+class CLDRPluralRuleConverterExpression extends CLDRPluralRuleConverterFragment {
+       /** @var string */
+       public $type;
+
+       /** @var string */
+       public $rpn;
+
+       function __construct( $parser, $type, $rpn, $pos, $length ) {
+               parent::__construct( $parser, $pos, $length );
+               $this->type = $type;
+               $this->rpn = $rpn;
+       }
+
+       public function isType( $type ) {
+               if ( $type === 'range' && ( $this->type === 'range' || $this->type === 'number' ) ) {
+                       return true;
+               }
+               if ( $type === $this->type ) {
+                       return true;
+               }
+               return false;
+       }
+}
diff --git a/languages/utils/CLDRPluralRuleConverterFragment.php b/languages/utils/CLDRPluralRuleConverterFragment.php
new file mode 100644 (file)
index 0000000..89ada4f
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * @author Niklas Laxström, Tim Starling
+ *
+ * @copyright Copyright © 2010-2012, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ *
+ * @file
+ * @since 1.20
+ */
+
+/**
+ * Helper for CLDRPluralRuleConverter.
+ * The base class for operators and expressions, describing a region of the input string.
+ */
+class CLDRPluralRuleConverterFragment {
+       public $parser, $pos, $length, $end;
+
+       function __construct( $parser, $pos, $length ) {
+               $this->parser = $parser;
+               $this->pos = $pos;
+               $this->length = $length;
+               $this->end = $pos + $length;
+       }
+
+       public function error( $message ) {
+               $text = $this->getText();
+               throw new CLDRPluralRuleError( "$message at position " . ( $this->pos + 1 ) . ": \"$text\"" );
+       }
+
+       public function getText() {
+               return substr( $this->parser->rule, $this->pos, $this->length );
+       }
+}
diff --git a/languages/utils/CLDRPluralRuleConverterOperator.php b/languages/utils/CLDRPluralRuleConverterOperator.php
new file mode 100644 (file)
index 0000000..2824fc6
--- /dev/null
@@ -0,0 +1,114 @@
+<?php
+
+/**
+ * @author Niklas Laxström, Tim Starling
+ *
+ * @copyright Copyright © 2010-2012, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ *
+ * @file
+ * @since 1.20
+ */
+
+/**
+ * Helper for CLDRPluralRuleConverter.
+ * An operator object, representing a region of the input string (for error
+ * messages), and the binary operator at that location.
+ */
+class CLDRPluralRuleConverterOperator extends CLDRPluralRuleConverterFragment {
+       /** @var string The name */
+       public $name;
+
+       /**
+        * Each op type has three characters: left operand type, right operand type and result type
+        *
+        *   b = boolean
+        *   n = number
+        *   r = range
+        *
+        * A number is a kind of range.
+        *
+        * @var array
+        */
+       static $opTypes = array(
+               'or' => 'bbb',
+               'and' => 'bbb',
+               'is' => 'nnb',
+               'is-not' => 'nnb',
+               'in' => 'nrb',
+               'not-in' => 'nrb',
+               'within' => 'nrb',
+               'not-within' => 'nrb',
+               'mod' => 'nnn',
+               ',' => 'rrr',
+               '..' => 'nnr',
+       );
+
+       /**
+        * Map converting from the abbrevation to the full form.
+        *
+        * @var array
+        */
+       static $typeSpecMap = array(
+               'b' => 'boolean',
+               'n' => 'number',
+               'r' => 'range',
+       );
+
+       /**
+        * Map for converting the new operators introduced in Rev 33 to the old forms
+        */
+       static $aliasMap = array(
+               '%' => 'mod',
+               '!=' => 'not-in',
+               '=' => 'in'
+       );
+
+       /**
+        * Initialize a new instance of a CLDRPluralRuleConverterOperator object
+        *
+        * @param CLDRPluralRuleConverter $parser The parser
+        * @param string $name The operator name
+        * @param int $pos The length
+        * @param int $length
+        */
+       function __construct( $parser, $name, $pos, $length ) {
+               parent::__construct( $parser, $pos, $length );
+               if ( isset( self::$aliasMap[$name] ) ) {
+                       $name = self::$aliasMap[$name];
+               }
+               $this->name = $name;
+       }
+
+       /**
+        * Compute the operation
+        *
+        * @param CLDRPluralRuleConverterExpression $left The left part of the expression
+        * @param CLDRPluralRuleConverterExpression $right The right part of the expression
+        * @return CLDRPluralRuleConverterExpression The result of the operation
+        */
+       public function operate( $left, $right ) {
+               $typeSpec = self::$opTypes[$this->name];
+
+               $leftType = self::$typeSpecMap[$typeSpec[0]];
+               $rightType = self::$typeSpecMap[$typeSpec[1]];
+               $resultType = self::$typeSpecMap[$typeSpec[2]];
+
+               $start = min( $this->pos, $left->pos, $right->pos );
+               $end = max( $this->end, $left->end, $right->end );
+               $length = $end - $start;
+
+               $newExpr = new CLDRPluralRuleConverterExpression( $this->parser, $resultType,
+                       "{$left->rpn} {$right->rpn} {$this->name}",
+                       $start, $length );
+
+               if ( !$left->isType( $leftType ) ) {
+                       $newExpr->error( "invalid type for left operand: expected $leftType, got {$left->type}" );
+               }
+
+               if ( !$right->isType( $rightType ) ) {
+                       $newExpr->error( "invalid type for right operand: expected $rightType, got {$right->type}" );
+               }
+               return $newExpr;
+       }
+}
diff --git a/languages/utils/CLDRPluralRuleConverter_Expression.php b/languages/utils/CLDRPluralRuleConverter_Expression.php
deleted file mode 100644 (file)
index 8352e72..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/**
- * @author Niklas Laxström, Tim Starling
- *
- * @copyright Copyright © 2010-2012, Niklas Laxström
- * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- *
- * @file
- * @since 1.20
- */
-
-/**
- * Helper for CLDRPluralRuleConverter.
- * An expression object, representing a region of the input string (for error
- * messages), the RPN notation used to evaluate it, and the result type for
- * validation.
- */
-class CLDRPluralRuleConverter_Expression extends CLDRPluralRuleConverter_Fragment {
-       /** @var string */
-       public $type;
-
-       /** @var string */
-       public $rpn;
-
-       function __construct( $parser, $type, $rpn, $pos, $length ) {
-               parent::__construct( $parser, $pos, $length );
-               $this->type = $type;
-               $this->rpn = $rpn;
-       }
-
-       public function isType( $type ) {
-               if ( $type === 'range' && ( $this->type === 'range' || $this->type === 'number' ) ) {
-                       return true;
-               }
-               if ( $type === $this->type ) {
-                       return true;
-               }
-               return false;
-       }
-}
diff --git a/languages/utils/CLDRPluralRuleConverter_Fragment.php b/languages/utils/CLDRPluralRuleConverter_Fragment.php
deleted file mode 100644 (file)
index 88795a0..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/**
- * @author Niklas Laxström, Tim Starling
- *
- * @copyright Copyright © 2010-2012, Niklas Laxström
- * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- *
- * @file
- * @since 1.20
- */
-
-/**
- * Helper for CLDRPluralRuleConverter.
- * The base class for operators and expressions, describing a region of the input string.
- */
-class CLDRPluralRuleConverter_Fragment {
-       public $parser, $pos, $length, $end;
-
-       function __construct( $parser, $pos, $length ) {
-               $this->parser = $parser;
-               $this->pos = $pos;
-               $this->length = $length;
-               $this->end = $pos + $length;
-       }
-
-       public function error( $message ) {
-               $text = $this->getText();
-               throw new CLDRPluralRuleError( "$message at position " . ( $this->pos + 1 ) . ": \"$text\"" );
-       }
-
-       public function getText() {
-               return substr( $this->parser->rule, $this->pos, $this->length );
-       }
-}
diff --git a/languages/utils/CLDRPluralRuleConverter_Operator.php b/languages/utils/CLDRPluralRuleConverter_Operator.php
deleted file mode 100644 (file)
index c42953c..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-/**
- * @author Niklas Laxström, Tim Starling
- *
- * @copyright Copyright © 2010-2012, Niklas Laxström
- * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- *
- * @file
- * @since 1.20
- */
-
-/**
- * Helper for CLDRPluralRuleConverter.
- * An operator object, representing a region of the input string (for error
- * messages), and the binary operator at that location.
- */
-class CLDRPluralRuleConverter_Operator extends CLDRPluralRuleConverter_Fragment {
-       /** @var string The name */
-       public $name;
-
-       /**
-        * Each op type has three characters: left operand type, right operand type and result type
-        *
-        *   b = boolean
-        *   n = number
-        *   r = range
-        *
-        * A number is a kind of range.
-        *
-        * @var array
-        */
-       static $opTypes = array(
-               'or' => 'bbb',
-               'and' => 'bbb',
-               'is' => 'nnb',
-               'is-not' => 'nnb',
-               'in' => 'nrb',
-               'not-in' => 'nrb',
-               'within' => 'nrb',
-               'not-within' => 'nrb',
-               'mod' => 'nnn',
-               ',' => 'rrr',
-               '..' => 'nnr',
-       );
-
-       /**
-        * Map converting from the abbrevation to the full form.
-        *
-        * @var array
-        */
-       static $typeSpecMap = array(
-               'b' => 'boolean',
-               'n' => 'number',
-               'r' => 'range',
-       );
-
-       /**
-        * Map for converting the new operators introduced in Rev 33 to the old forms
-        */
-       static $aliasMap = array(
-               '%' => 'mod',
-               '!=' => 'not-in',
-               '=' => 'in'
-       );
-
-       /**
-        * Initialize a new instance of a CLDRPluralRuleConverter_Operator object
-        *
-        * @param CLDRPluralRuleConverter $parser The parser
-        * @param string $name The operator name
-        * @param int $pos The length
-        * @param int $length
-        */
-       function __construct( $parser, $name, $pos, $length ) {
-               parent::__construct( $parser, $pos, $length );
-               if ( isset( self::$aliasMap[$name] ) ) {
-                       $name = self::$aliasMap[$name];
-               }
-               $this->name = $name;
-       }
-
-       /**
-        * Compute the operation
-        *
-        * @param CLDRPluralRuleConverter_Expression $left The left part of the expression
-        * @param CLDRPluralRuleConverter_Expression $right The right part of the expression
-        * @return CLDRPluralRuleConverter_Expression The result of the operation
-        */
-       public function operate( $left, $right ) {
-               $typeSpec = self::$opTypes[$this->name];
-
-               $leftType = self::$typeSpecMap[$typeSpec[0]];
-               $rightType = self::$typeSpecMap[$typeSpec[1]];
-               $resultType = self::$typeSpecMap[$typeSpec[2]];
-
-               $start = min( $this->pos, $left->pos, $right->pos );
-               $end = max( $this->end, $left->end, $right->end );
-               $length = $end - $start;
-
-               $newExpr = new CLDRPluralRuleConverter_Expression( $this->parser, $resultType,
-                       "{$left->rpn} {$right->rpn} {$this->name}",
-                       $start, $length );
-
-               if ( !$left->isType( $leftType ) ) {
-                       $newExpr->error( "invalid type for left operand: expected $leftType, got {$left->type}" );
-               }
-
-               if ( !$right->isType( $rightType ) ) {
-                       $newExpr->error( "invalid type for right operand: expected $rightType, got {$right->type}" );
-               }
-               return $newExpr;
-       }
-}
index 61ab947..878982d 100644 (file)
@@ -139,8 +139,8 @@ class CLDRPluralRuleEvaluator {
         */
        private static function doOperation( $token, $left, $right ) {
                if ( in_array( $token, array( 'in', 'not-in', 'within', 'not-within' ) ) ) {
-                       if ( !( $right instanceof CLDRPluralRuleEvaluator_Range ) ) {
-                               $right = new CLDRPluralRuleEvaluator_Range( $right );
+                       if ( !( $right instanceof CLDRPluralRuleEvaluatorRange ) ) {
+                               $right = new CLDRPluralRuleEvaluatorRange( $right );
                        }
                }
                switch ( $token ) {
@@ -166,15 +166,15 @@ class CLDRPluralRuleEvaluator {
                                }
                                return fmod( $left, $right );
                        case ',':
-                               if ( $left instanceof CLDRPluralRuleEvaluator_Range ) {
+                               if ( $left instanceof CLDRPluralRuleEvaluatorRange ) {
                                        $range = $left;
                                } else {
-                                       $range = new CLDRPluralRuleEvaluator_Range( $left );
+                                       $range = new CLDRPluralRuleEvaluatorRange( $left );
                                }
                                $range->add( $right );
                                return $range;
                        case '..':
-                               return new CLDRPluralRuleEvaluator_Range( $left, $right );
+                               return new CLDRPluralRuleEvaluatorRange( $left, $right );
                        default:
                                throw new CLDRPluralRuleError( "Invalid RPN token" );
                }
diff --git a/languages/utils/CLDRPluralRuleEvaluatorRange.php b/languages/utils/CLDRPluralRuleEvaluatorRange.php
new file mode 100644 (file)
index 0000000..8f8945a
--- /dev/null
@@ -0,0 +1,108 @@
+<?php
+/**
+ * @author Niklas Laxström, Tim Starling
+ *
+ * @copyright Copyright © 2010-2012, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ *
+ * @file
+ * @since 1.20
+ */
+
+/**
+ * Evaluator helper class representing a range list.
+ */
+class CLDRPluralRuleEvaluatorRange {
+       /**
+        * The parts
+        *
+        * @var array
+        */
+       public $parts = array();
+
+       /**
+        * Initialize a new instance of CLDRPluralRuleEvaluatorRange
+        *
+        * @param int $start The start of the range
+        * @param int|bool $end The end of the range, or false if the range is not bounded.
+        */
+       function __construct( $start, $end = false ) {
+               if ( $end === false ) {
+                       $this->parts[] = $start;
+               } else {
+                       $this->parts[] = array( $start, $end );
+               }
+       }
+
+       /**
+        * Determine if the given number is inside the range.
+        *
+        * @param int $number The number to check
+        * @param bool $integerConstraint If true, also asserts the number is an integer; otherwise, number simply has to be inside the range.
+        * @return bool True if the number is inside the range; otherwise, false.
+        */
+       function isNumberIn( $number, $integerConstraint = true ) {
+               foreach ( $this->parts as $part ) {
+                       if ( is_array( $part ) ) {
+                               if ( ( !$integerConstraint || floor( $number ) === (float)$number )
+                                       && $number >= $part[0] && $number <= $part[1]
+                               ) {
+                                       return true;
+                               }
+                       } else {
+                               if ( $number == $part ) {
+                                       return true;
+                               }
+                       }
+               }
+               return false;
+       }
+
+       /**
+        * Readable alias for isNumberIn( $number, false ), and the implementation
+        * of the "within" operator.
+        *
+        * @param int $number The number to check
+        * @return bool True if the number is inside the range; otherwise, false.
+        */
+       function isNumberWithin( $number ) {
+               return $this->isNumberIn( $number, false );
+       }
+
+       /**
+        * Add another part to this range.
+        *
+        * @param CLDRPluralRuleEvaluatorRange|int $other The part to add, either
+        *   a range object itself or a single number.
+        */
+       function add( $other ) {
+               if ( $other instanceof self ) {
+                       $this->parts = array_merge( $this->parts, $other->parts );
+               } else {
+                       $this->parts[] = $other;
+               }
+       }
+
+       /**
+        * Returns the string representation of the rule evaluator range.
+        * The purpose of this method is to help debugging.
+        *
+        * @return string The string representation of the rule evaluator range
+        */
+       function __toString() {
+               $s = 'Range(';
+               foreach ( $this->parts as $i => $part ) {
+                       if ( $i ) {
+                               $s .= ', ';
+                       }
+                       if ( is_array( $part ) ) {
+                               $s .= $part[0] . '..' . $part[1];
+                       } else {
+                               $s .= $part;
+                       }
+               }
+               $s .= ')';
+               return $s;
+       }
+
+}
diff --git a/languages/utils/CLDRPluralRuleEvaluator_Range.php b/languages/utils/CLDRPluralRuleEvaluator_Range.php
deleted file mode 100644 (file)
index 9732b8d..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-/**
- * @author Niklas Laxström, Tim Starling
- *
- * @copyright Copyright © 2010-2012, Niklas Laxström
- * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- *
- * @file
- * @since 1.20
- */
-
-/**
- * Evaluator helper class representing a range list.
- */
-class CLDRPluralRuleEvaluator_Range {
-       /**
-        * The parts
-        *
-        * @var array
-        */
-       public $parts = array();
-
-       /**
-        * Initialize a new instance of CLDRPluralRuleEvaluator_Range
-        *
-        * @param int $start The start of the range
-        * @param int|bool $end The end of the range, or false if the range is not bounded.
-        */
-       function __construct( $start, $end = false ) {
-               if ( $end === false ) {
-                       $this->parts[] = $start;
-               } else {
-                       $this->parts[] = array( $start, $end );
-               }
-       }
-
-       /**
-        * Determine if the given number is inside the range.
-        *
-        * @param int $number The number to check
-        * @param bool $integerConstraint If true, also asserts the number is an integer; otherwise, number simply has to be inside the range.
-        * @return bool True if the number is inside the range; otherwise, false.
-        */
-       function isNumberIn( $number, $integerConstraint = true ) {
-               foreach ( $this->parts as $part ) {
-                       if ( is_array( $part ) ) {
-                               if ( ( !$integerConstraint || floor( $number ) === (float)$number )
-                                       && $number >= $part[0] && $number <= $part[1]
-                               ) {
-                                       return true;
-                               }
-                       } else {
-                               if ( $number == $part ) {
-                                       return true;
-                               }
-                       }
-               }
-               return false;
-       }
-
-       /**
-        * Readable alias for isNumberIn( $number, false ), and the implementation
-        * of the "within" operator.
-        *
-        * @param int $number The number to check
-        * @return bool True if the number is inside the range; otherwise, false.
-        */
-       function isNumberWithin( $number ) {
-               return $this->isNumberIn( $number, false );
-       }
-
-       /**
-        * Add another part to this range.
-        *
-        * @param CLDRPluralRuleEvaluator_Range|int $other The part to add, either
-        *   a range object itself or a single number.
-        */
-       function add( $other ) {
-               if ( $other instanceof self ) {
-                       $this->parts = array_merge( $this->parts, $other->parts );
-               } else {
-                       $this->parts[] = $other;
-               }
-       }
-
-       /**
-        * Returns the string representation of the rule evaluator range.
-        * The purpose of this method is to help debugging.
-        *
-        * @return string The string representation of the rule evaluator range
-        */
-       function __toString() {
-               $s = 'Range(';
-               foreach ( $this->parts as $i => $part ) {
-                       if ( $i ) {
-                               $s .= ', ';
-                       }
-                       if ( is_array( $part ) ) {
-                               $s .= $part[0] . '..' . $part[1];
-                       } else {
-                               $s .= $part;
-                       }
-               }
-               $s .= ')';
-               return $s;
-       }
-
-}