18 private $_tokens = [];
25 private $_tokensCount;
32 private $_openBrackets;
39 private $_closeBrackets;
47 public function parse($filePath)
50 $this->_tokensCount = count($this->_tokens);
71 if (
$token->isNamespaceSeparator() && $state != 2) {
72 $classString .=
$token->getValue();
75 $classString .=
$token->getValue();
99 $this->_openBrackets = 1;
100 $this->_closeBrackets = 0;
104 if (
$token->isSemicolon()) {
107 if (
$token->isOpenBrace()) {
108 $this->_skipInnerArgumentInvoke();
111 if (
$token->isCloseBrace()) {
112 $this->_closeBrackets++;
115 if (
$token->isComma() && $this->_isInnerArgumentClosed()) {
119 if ($this->_openBrackets == $this->_closeBrackets) {
134 private function _isInnerArgumentClosed()
136 return $this->_openBrackets - 1 == $this->_closeBrackets;
144 private function _skipInnerArgumentInvoke()
146 $this->_openBrackets++;
149 $this->_closeBrackets++;
152 $this->_openBrackets++;
155 $this->_closeBrackets++;
165 return $this->_createToken(current($this->_tokens));
175 return (
$token = next($this->_tokens)) ? $this->_createToken(
$token) :
false;
198 return key($this->_tokens) ===
null;
207 private function _createToken($tokenData)
209 if (is_array($tokenData)) {
210 return new Tokenizer\Token($tokenData[0], $tokenData[1], $tokenData[2]);
212 return new Tokenizer\Token($tokenData, $tokenData);
elseif(isset( $params[ 'redirect_parent']))
isMatchingClass($className)
getFunctionArgumentsTokens()