MediaWiki  REL1_21
CLDRPluralRuleConverter Class Reference

Helper class for converting rules to reverse polish notation (RPN). More...

List of all members.

Static Public Member Functions

static convert ($rule)
 Convert a rule to RPN.

Public Attributes

 $end
 $operands = array()
 $operators = array()
 $pos
 $rule
const NUMBER_CLASS = '0123456789'
 Same for digits.
const WHITESPACE_CLASS = " \t\r\n"
 A character list defining whitespace, for use in strspn() etc.
const WORD_REGEX = '/[a-zA-Z]+/A'
 An anchored regular expression which matches a word at the current offset.

Static Public Attributes

static $precedence
 Precedence levels.

Protected Member Functions

 __construct ($rule)
 Private constructor.
 doConvert ()
 Do the operation.
 doOperation ($op)
 For the binary operator $op, pop its operands off the stack and push a fragment with rpn and type members describing the result of that operation.
 error ($message)
 Throw an error.
 newNumber ($text, $pos)
 Create a numerical expression object.
 newOperator ($type, $pos, $length)
 Create a binary operator.
 nextToken ()
 Fetch the next token from the input string.

Detailed Description

Helper class for converting rules to reverse polish notation (RPN).

Definition at line 229 of file CLDRPluralRuleEvaluator.php.


Constructor & Destructor Documentation

CLDRPluralRuleConverter::__construct ( rule) [protected]

Private constructor.

Definition at line 280 of file CLDRPluralRuleEvaluator.php.

References $rule, and rule().


Member Function Documentation

static CLDRPluralRuleConverter::convert ( rule) [static]

Convert a rule to RPN.

This is the only public entry point.

Definition at line 272 of file CLDRPluralRuleEvaluator.php.

References $parser, and $rule.

Referenced by CLDRPluralRuleEvaluator\compile().

Do the operation.

Definition at line 289 of file CLDRPluralRuleEvaluator.php.

References $value, doOperation(), error(), nextToken(), and operators.

CLDRPluralRuleConverter::doOperation ( op) [protected]

For the binary operator $op, pop its operands off the stack and push a fragment with rpn and type members describing the result of that operation.

Definition at line 432 of file CLDRPluralRuleEvaluator.php.

References $result.

Referenced by doConvert().

CLDRPluralRuleConverter::error ( message) [protected]

Throw an error.

Definition at line 459 of file CLDRPluralRuleEvaluator.php.

Referenced by doConvert(), and nextToken().

CLDRPluralRuleConverter::newNumber ( text,
pos 
) [protected]

Create a numerical expression object.

Definition at line 445 of file CLDRPluralRuleEvaluator.php.

References $pos.

Referenced by nextToken().

CLDRPluralRuleConverter::newOperator ( type,
pos,
length 
) [protected]

Create a binary operator.

Definition at line 452 of file CLDRPluralRuleEvaluator.php.

References $pos.

Referenced by nextToken().

Fetch the next token from the input string.

Return it as a CLDRPluralRuleConverter_Fragment object.

Definition at line 347 of file CLDRPluralRuleEvaluator.php.

References error(), newNumber(), newOperator(), and rule().

Referenced by doConvert().


Member Data Documentation

CLDRPluralRuleConverter::$end

Definition at line 230 of file CLDRPluralRuleEvaluator.php.

CLDRPluralRuleConverter::$operands = array()

Definition at line 232 of file CLDRPluralRuleEvaluator.php.

CLDRPluralRuleConverter::$operators = array()

Definition at line 231 of file CLDRPluralRuleEvaluator.php.

CLDRPluralRuleConverter::$pos

Definition at line 230 of file CLDRPluralRuleEvaluator.php.

Referenced by newNumber(), and newOperator().

CLDRPluralRuleConverter::$precedence [static]
Initial value:
 array(
                'or' => 2,
                'and' => 3,
                'is' => 4,
                'is-not' => 4,
                'in' => 4,
                'not-in' => 4,
                'within' => 4,
                'not-within' => 4,
                'mod' => 5,
                ',' => 6,
                '..' => 7,
        )

Precedence levels.

Note that there's no need to worry about associativity for the level 4 operators, since they return boolean and don't accept boolean inputs.

Definition at line 239 of file CLDRPluralRuleEvaluator.php.

CLDRPluralRuleConverter::$rule

Definition at line 230 of file CLDRPluralRuleEvaluator.php.

Referenced by __construct(), and convert().

Same for digits.

Note that the grammar given in UTS #35 doesn't allow negative numbers or decimals.

Definition at line 262 of file CLDRPluralRuleEvaluator.php.

A character list defining whitespace, for use in strspn() etc.

Definition at line 256 of file CLDRPluralRuleEvaluator.php.

const CLDRPluralRuleConverter::WORD_REGEX = '/[a-zA-Z]+/A'

An anchored regular expression which matches a word at the current offset.

Definition at line 267 of file CLDRPluralRuleEvaluator.php.


The documentation for this class was generated from the following file: