Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
Expression
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 2
42
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 isType
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
30
1<?php
2/**
3 * @author Niklas Laxström, Tim Starling
4 * @license GPL-2.0-or-later
5 * @file
6 */
7
8namespace CLDRPluralRuleParser\Converter;
9
10use CLDRPluralRuleParser\Converter;
11
12/**
13 * Helper for Converter.
14 * An expression object, representing a region of the input string (for error
15 * messages), the RPN notation used to evaluate it, and the result type for
16 * validation.
17 */
18class Expression extends Fragment {
19    /** @var string */
20    public $type;
21
22    /** @var string */
23    public $rpn;
24
25    /**
26     * @param Converter $parser
27     * @param string $type
28     * @param string $rpn
29     * @param int $pos
30     * @param int $length
31     */
32    public function __construct( Converter $parser, $type, $rpn, $pos, $length ) {
33        parent::__construct( $parser, $pos, $length );
34        $this->type = $type;
35        $this->rpn = $rpn;
36    }
37
38    /**
39     * @param string $type
40     * @return bool
41     */
42    public function isType( $type ): bool {
43        if ( $type === 'range' && ( $this->type === 'range' || $this->type === 'number' ) ) {
44            return true;
45        }
46        if ( $type === $this->type ) {
47            return true;
48        }
49
50        return false;
51    }
52}