MediaWiki  REL1_20
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 210 of file CLDRPluralRuleEvaluator.php.


Constructor & Destructor Documentation

CLDRPluralRuleConverter::__construct ( rule) [protected]

Private constructor.

Definition at line 261 of file CLDRPluralRuleEvaluator.php.

References $rule.


Member Function Documentation

static CLDRPluralRuleConverter::convert ( rule) [static]

Convert a rule to RPN.

This is the only public entry point.

Definition at line 253 of file CLDRPluralRuleEvaluator.php.

References $rule.

Referenced by CLDRPluralRuleEvaluator\compile().

Do the operation.

Definition at line 270 of file CLDRPluralRuleEvaluator.php.

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

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 413 of file CLDRPluralRuleEvaluator.php.

References $result.

Referenced by doConvert().

CLDRPluralRuleConverter::error ( message) [protected]

Throw an error.

Definition at line 440 of file CLDRPluralRuleEvaluator.php.

Referenced by doConvert(), and nextToken().

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

Create a numerical expression object.

Definition at line 426 of file CLDRPluralRuleEvaluator.php.

References $pos.

Referenced by nextToken().

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

Create a binary operator.

Definition at line 433 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 328 of file CLDRPluralRuleEvaluator.php.

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

Referenced by doConvert().


Member Data Documentation

CLDRPluralRuleConverter::$end

Definition at line 211 of file CLDRPluralRuleEvaluator.php.

CLDRPluralRuleConverter::$operands = array()

Definition at line 213 of file CLDRPluralRuleEvaluator.php.

CLDRPluralRuleConverter::$operators = array()

Definition at line 212 of file CLDRPluralRuleEvaluator.php.

CLDRPluralRuleConverter::$pos

Definition at line 211 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 220 of file CLDRPluralRuleEvaluator.php.

CLDRPluralRuleConverter::$rule

Definition at line 211 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 243 of file CLDRPluralRuleEvaluator.php.

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

Definition at line 237 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 248 of file CLDRPluralRuleEvaluator.php.


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