Code Duplication    Length = 14-17 lines in 2 locations

src/Lexer.php 2 locations

@@ 104-120 (lines=17) @@
101
102
            // Буквы a-z, A-Z или символ подчеркивания
103
            // (могут использоваться в именах переменных и функций)
104
            } elseif (preg_match("/[a-zA-Z\_]+/i", $char)) {
105
                if (!$lastTokenType) {
106
                    $lastTokenType = Token::TYPE_FUNCTION;
107
                    $lastToken = $char;
108
                } elseif (
109
                    $lastTokenType === Token::TYPE_FUNCTION
110
                    || $lastTokenType === Token::TYPE_VARIABLE
111
                ) {
112
                    $lastToken .= $char;
113
                } else {
114
                    $stack[] = $tokenFactory->create($lastTokenType, $lastToken);
115
                    $lastTokenType = Token::TYPE_FUNCTION;
116
                    $lastToken = $char;
117
                }
118
119
            // Числа
120
            } elseif (is_numeric($char) || $char === '.') {
121
                if (!$lastTokenType) {
122
                    $lastTokenType = Token::TYPE_NUMBER;
123
                    $lastToken = $char;
@@ 121-134 (lines=14) @@
118
119
            // Числа
120
            } elseif (is_numeric($char) || $char === '.') {
121
                if (!$lastTokenType) {
122
                    $lastTokenType = Token::TYPE_NUMBER;
123
                    $lastToken = $char;
124
                } elseif (
125
                    $lastTokenType === Token::TYPE_NUMBER
126
                    || $lastTokenType === Token::TYPE_VARIABLE
127
                    || $lastTokenType === Token::TYPE_FUNCTION
128
                ) {
129
                    $lastToken .= $char;
130
                } else {
131
                    $stack[] = $tokenFactory->create($lastTokenType, $lastToken);
132
                    $lastTokenType = Token::TYPE_NUMBER;
133
                    $lastToken = $char;
134
                }
135
            }
136
        }
137