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